2009-12-30 326 views
8

編輯:我使用ABCpdf完成了這個項目。對於任何有興趣的人,我喜歡這款產品,他們的支持是A +。所有我列爲HTML的「Con」 - > PDF解決方案在ABCpdf中都很容易實現。 PDF報告生成


我已經負責創建一個數據驅動的pdf報告。在回顧了過多的選項之後,我將它縮小到了2.我需要你們全部來幫助我決定,或者提供我沒有考慮過的替代方案。這裏的要求是:從動

  1. 100%數據
  2. 最終PDF(在HTML的止擋是細的,只要它被轉換)
  3. 可與多組數據(佈局運行總是相同的,該數據是可變的)
  4. 包含正常分析式複製(保存在DB與HTML標記)
  5. 包含表(表中的數據在運行時產生)
  6. 頁眉/頁#上每頁
  7. 目錄
  8. .NET(VB或C#)
  9. 快速完成現在

,因爲事實上,該報告是要與多組數據,我不來產生我不認爲一個加蓋的pdf模板可以工作,因爲我不知道某個報告可能需要多長時間或多少頁。

所以,我覺得我最好的選擇是:使用iText的樣液

  1. 編程方式創建。
  2. 生成HTML和使用第三方應用程序轉換爲PDF(ABCPdf是我與迄今所發揮的工具)

這兩種解決方案都有自己的親的和反對的。

編程解決方案:

優點:

  1. 靈活
  2. 易頁碼/頁的頁眉/目錄
  3. 免費

個缺點:

  1. 耗時由於副本已存儲在與HTML標記的DB(寫在iText的頂上一層做什麼,我需要和不斷維護)
  2. ,我將不得不在將數據放入pdf之前先對數據進行解析,確保我不必將段落分解爲塊,以便可以將粗體,斜體,下劃線等應用於特定短語。這看起來像是一個巨大的PITA,我希望我對這個假設是錯誤的。

HTML - > PDF

優點:

  1. 容易從數據庫生成(不解析需要)
  2. 許多轉換
  3. 工具使用的技術我已熟悉
  4. 內置「P RINT預覽」 - 不是一個REQ,但不錯

缺點:

(項目完成後可進行編輯。我所有的假設是不正確的,ABCpdf是真棒)

1.幾乎不可能產生頁頭 - 不是真的
2.很難產生頁碼 不是真的
3.幾乎不可能生成目錄 不是真
4.(跨瀏覽器支持不是一個騙局;因爲它的內部,我可以決定使用什麼瀏覽器)
5.轉換工具怪癖 - 可能不完全轉換爲在瀏覽器中呈現 不是真的
6.總體來說,我認爲這將是很難確切地格式化HTML,因爲我希望它出現/轉換以PDF格式。 不是真

就是這樣 - 我需要社區幫助決定我該走哪條路。我可能在我的一些Pro/Con假設上錯了。如果我是,請告訴我。歡迎和欣賞所有的想法和建議。

感謝

+0

數據來自哪種語言?如果它的Java然後賈斯珀也是你的選擇。 – Zoidberg 2009-12-30 16:01:48

+0

.Net(VB或C#),我將其添加到文章 – IniTech 2009-12-30 16:03:43

+0

您的數據來自哪裏?數據庫/版本?報告作者有時會使用它們;這表示我們剛剛爲一個項目使用了HTML-> PDF轉換器完成了大量工作。如果您正在查看此路線,請確保您選擇支持/更新其對CSS的支持> 使用CSS打印樣式表,您可以編寫大量繁重的工作,如格式/頁碼。 @page {@ top-right {content:「counter(pages)」的頁面「counter(page)」; }} – u07ch 2009-12-30 16:06:17

回答

3

決定使用一個類似於在 http://alistapart.com/articles/boom

使用使用ABCPdf而不是王子,爲最終HTML的方法 - > PDF生成。

任何對同一事物感興趣的人都可以隨時向我發送有關此方法的信息。

+0

嗨,我對PDF報告的複雜程度感興趣,是否有可能獲得更多信息並查看PDF報告和/或代碼的示例?我的電子郵件地址在我的個人資料上(不確定在這裏如何聯繫其他用戶) – 2010-08-11 12:46:10

1

根據您的使用和定位的平臺,你可能要考慮一個報告解決方案。這些並不完美,但他們給你的一件事是能夠編寫一次報告,然後以HTML,PDF或甚至Excel的形式進行渲染。

通常他們還會提供一個編輯器,幫助您設計報告並使其看起來恰到好處。它們提供諸如分頁,頁眉,頁腳,圖表等等的東西。它們還提供了一個API,您可以使用它以編程方式創建和運行報表。

我在MS環境中使用了Reporting Services,在Java環境中使用了Jasper Reports,在這兩種環境中都有很好的結果。我相信還有其他的選擇,但這些都是我能夠成功使用的。

2

我認爲如果您有Adobe Acrobat Pro的完整版本,它將隨Adobe Live Cycle一起提供。您應該能夠生成從數據庫中生成的報告。它將爲您提供格式化所需的一切,因爲您將從頭開始創建報告。

您可以創建數據庫連接到OLE數據庫,該數據庫將數據提供給您的表單域。您可以選擇要使用的表格,任何將運行的存儲過程以及任何查詢,然後數據將顯示在設計器的其中一個托盤上。

您還可以使用Web服務(WDSL)來接收和處理命令並將結果返回給表單。

無論採用哪種方式,您都會將字段綁定到數據源,然後數據將顯示在您的表單中。

如果你願意做一些.NET的工作有這樣的:

http://www.dotnetvj.com/2009/05/populating-pdf-from-aspnet-using.html

+0

我認爲你的解決方案對於預先確定的字段(有點像稅單或發票)有效。對於我想要做的是生成一個報告,我不知道我正在處理多少內容在任何給定的報告中運行。我不認爲PDF模板方法可行 - 但是,我會再次研究這一點。 – IniTech 2009-12-30 16:33:48

+0

我想你仍然可以使用存儲過程將其格式化,並可能是一個頁面範圍的文本字段?從空中拉動東西。你知道你要從數據庫中提取數據嗎? – tahdhaze09 2009-12-30 17:06:32

+0

是的,我知道所有適用的領域和表格。我想我要去HTML - > PDF路線。我會回覆我的結果。謝謝您的幫助。 – IniTech 2009-12-31 02:35:08

0

我的建議是使用SQL Reporting Services。

  • 可以設計報表的每個&頁表
  • 包括頁眉和頁腳
  • 包括頁碼的內容
  • 可通過多頁跨越
  • 支持圖片&圖表
  • 可以呈現爲PDF而不需要任何第三方PDF轉換器