我想在這裏創建一段代碼,它將用空控件打開一個現有的PDF表單(以前用Open Office創建)並使用iTextSharp()設置值。我仍然在測試iTextSharp,看看它是否做了我需要做的事情,到目前爲止答案是否定的。用動態控件修改PDF表格模板
請看看我根據我在網上找到如下進行:
string fileNameExisting = @"PdfTemplate.pdf";
string fileNameNew = @"new.pdf";
using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
using (var newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
// Open existing PDF
var pdfReader = new PdfReader(existingFileStream);
// PdfStamper, which will create
var stamper = new PdfStamper(pdfReader, newFileStream);
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
bool result = form.SetField(fieldKey, "A lot of text here.");
}
stamper.Close();
pdfReader.Close();
}
1期
iTextSharp的唯一識別來自開放式辦公「控制」元素(文本框例如)。我試圖添加一個表格到PDF模板,但它沒有出現在字段中。這意味着我在使用什麼方面真的很有限。
第2期
當我設置字段中的文本,沒有文字的包木窗,和控件的大小不是動態的,這意味着如果文本太長,這不是」都出現了。我無法使用滾動條作爲PDF打印。
我試圖
對於第一個問題,我創建了一個PDF表格與Word,而不是開放式辦公作家。但是,iTextSharp不能識別Word中的任何控件,我的字段集合是空的。
對於第二個問題,我嘗試修改Open Office中控件的每個屬性,查看互聯網上是否有人有一個解決方案。但根據我的理解,尺寸是固定的,因爲它是AcroFields,所以我無法使控件動態化,並且不能隨後使用iTextSharp更改尺寸。
我希望有人經歷過相同的情況,並能夠用iTextSharp或其他庫免費或不用指導我。雖然我經營自己的公司,但我無法承受2000英鎊的許可證,但我願意提供建議,因爲我需要提供。 最後一個選擇是使用iTextSharp從頭開始創建PDF,但它不像修改那樣快速且簡單,而且這意味着對於PDF的每次更新,公司都需要我更改代碼。我對這個解決方案並不滿意。
嗯,我想我將不得不從頭開始創建PDF即可。謝謝你的回答布魯諾。 – nanonymous
是的,有些人使用HTML/CSS和iText的XML Worker的組合來避免編碼PDF。 –
如果我買LiveCycle Designer中的許可證(不太貴)生產我的模板,將我能夠做什麼,我需要與iTextSharp的?我使用的版本5.5.9 – nanonymous