2010-01-26 129 views
11

我有一個要求,能夠在我們的(ASP.net)應用程序中生成PDF。我們需要滿足以下要求:從模板動態生成PDF

  1. 該文本將基本上是動態的,必須以編程方式添加。

  2. 理想情況下,我們希望將這些生成的文檔基於我們的設計人員提供的PDF模板。

  3. 根據特定條件,某些部分/頁面可能會或可能不可見 - 理想情況下,我們希望內容在向上「流動」時填充空間,以便刪除某些內容。

  4. 某些頁面可能需要重複,具體取決於特定條件。

  5. 某些PDF模板將不在我們的控制範圍之內(我們正在填充由第三方提供的應用程序表單),因此能夠讀取空白PDF並填充它將會很好。

我看iTextSharp的,似乎做大部分的這些東西(即我可以帶一個PDF,編輯它,包括我們需要填寫數據,然後使用iTextSharp的閱讀,在表單字段作爲模板並填充數據),但是,我不確定如何去隱藏整個部分和/或重複頁面。

我在這裏尋找的是來自任何處於類似情況的人的一點建議。


小更新在這裏,我們就用iTextSharp的 - 它是一個強大的工具,但它需要一些學習的,但它的快速,重量輕,不正是我們想要做的事。

但是......

我想指出的是,最新的版本是不再真的是免費的(如啤酒) - 該許可證不允許商業用途。因此,我們現在有一個行貨版本,但它並不令人震驚地便宜(並且他們不公佈價目表)。

+0

關於基於模板的報告,請參閱此文章(http://www.nopcommerce.com/boards/t/15568/feature-request-template-based-reporting-system.aspx)。這是他們正在討論的[html to pdf converter](http://www.hiqpdf.com)。 – 2012-03-09 09:24:04

回答

5

我會使用iTextSharp。我根據不同的模板創建各種PDF文件,iText爲我效力最好。它是一個非常強大的控件,可以以任何方式處理PDF文件。

我不確定iText能否處理您的第三項要求。我知道它可以從HTML文件創建一個PDF。也許使用Tomas發佈的內容並用iText創建PDF。

+0

iTextSharp不適用CSS ...我想用邊框製作表格,但它不起作用....同樣背景色,不起作用... – 2016-04-22 04:53:29

5

有這樣做的各種商業組件。看看:PDFLib(http://www.pdflib.com/),高組件(http://www.tallcomponents.com/)等

我已經使用高組件的產品,並可以推薦他們。

其他一些是更昂貴的。

如上所述,ITextSharp非常好,可以用來添加/刪除外部頁面,在這種情況下,您可以通過忽略整個頁面或用佔位符頁面替換它們來隱藏整個頁面。 iText可以使用現有的PDF文件或創建空白頁面。

根據我個人的經驗,我只是將圖像和文本放入現有頁面,並在需要表格數據時添加由報告工具生成的頁面。

HTH

+0

嗯。但是,如果要隱藏的內容是頁面內的某個部分,則會變得更加困難。 – Paddy 2010-01-26 16:55:22

+0

您可以添加一個不包含該部分的頁面,然後以編程方式調整另一個頁面(或兩者),然後在需要時替換它。 – 2010-01-26 17:18:06

0

我會考慮使用從模板創建HTML文件,並把它們轉換成PDF與Prince。王子非常靈活,從模板創建HTML文件比直接創建PDF文件容易得多。

+1

我們目前正在做這樣的事情(使用activePDF),它有點慢。 – Paddy 2010-01-26 15:56:37

+0

'我們提供Prince的非商業用途的免費許可證。此許可證爲生成的PDF文件的第一頁添加了一個小徽標.' – Thomas 2016-07-05 13:58:59

2

爲什麼需要PDF格式的模板文件?使用你想要的動態報告模板是一種不好的格式。使用也可輸出爲pdf的報告軟件。您的設計師可以使用GUI輕鬆創建模板。你會在stackoverflow上找到很多報告解決方案。

1

我們已經使用http://www.dynamicpdf.com/,對於這樣的項目並且對結果感到滿意。他們有一個PDF WYSIWYG設計器工具,您可以使用它來構建PDF的佈局模板,以及基於字段到列映射將模板與數據合併的工具。這樣可以節省數小時手動編碼給定PDF的每個元素。它支持頁面頁眉和頁腳,並處理分頁複雜性。

+0

這不是免費軟件 – luka 2017-10-16 11:32:56