2011-07-21 214 views
1

我有幾個來自不同客戶/供應商的PDF。我的目標是構建一個Web應用程序,讓潛在客戶填寫單一形式的數據,然後生成所有PDF以進行打印和簽名。填寫PDF字段

PDF中的字段中,在Adobe Reader中您可以單擊並鍵入數據。但是,這是敏感的財務數據,PDF不會讓您保存到桌面。實際上,當您打開PDF文件時,Adobe Reader中會有警告,並且會阻止您保存完整的表單。我不關心這個功能。我的用戶可以保存它,如果他們想要承擔風險,如果我自己生成完成的PDF時開放了。

問題是,我需要生成這些pdf與我的數據注入到他們而不改變風格。我想避免手動構建它們,但是如果必須的話,我會。我怎樣才能生成他們提供給我的確切PDF格式的數據?

回答

4

你可以看看iTextSharp的和PdfStamper類 - 它可以讓你加載現有的PDF,「郵票」的數據到字段,然後變平可被髮送到用戶的PDF:

http://sourceforge.net/projects/itextsharp/

請注意,iTextSharp是爲商業產品付費 - 但也可能有其他開放源代碼的圖書館可以做到這一點。

+0

謝謝帕迪!我會看看。考慮到這一代pdf的重要性,我認爲他們不會有購買許可證的問題。免費是更好的,但我會告訴他們付出什麼工作。 – Josh

+0

@Josh - 我們一直在使用它。輕微的學習曲線,但速度很快,完全符合我們的需求。 – Paddy

+1

有趣的閱讀:[itextsharp-license](http://stackoverflow.com/questions/8517776/itextsharp-license) –

1

您可以嘗試Aspose.Pdf for .NET來實現您的目標。您可以使用此組件使用fill the form fields。如果您不希望允許用戶在填寫PDF後編輯此數據,則也可以使用flatten the fields。這不會改變您PDF的現有佈局。該API非常簡單,並提供完整的文檔和支持。

披露:我在Aspose擔任開發者傳道人。

+0

我試過Aspose,但它暴發了'Aspose.Pdf.Facades.Form pdfForm = new Aspose.Pdf.Facades.Form(「input.pdf」,「output.pdf 「);'帶有NullReferenceException。 ITextSharp的作品。 – Josh