[英]Different position of text by flatten pdf with iText
我對iText和pdf中的展平表單字段有疑問。
我將包含在Acrobat中創建的表單字段的pdf提交給我的java方法。 在一個網站上,我創建了一個表格來填寫pdf中的表格字段。 表單字段已正確填寫,但是一旦我展平文檔,文本就會移到稍有不同的位置。 最大的區別在於多行表單字段。 文本在左上方字段的邊界處。 在Acrobat中,在展平之前,文本頂部有填充。
這是我的Java代碼,用於調用iText的方法:
PdfReader template = new PdfReader(templ);
XfdfReader xfdfReader = new XfdfReader(xfdf);
OutputStream outputStream = new FileOutputStream(output);
PdfStamper stamper = new PdfStamper(template, outputStream, '\0');
AcroFields form = stamper.getAcroFields();
Set<String> fields = form.getFields().keySet();
form.setFields(xfdfReader);
stamper.setFreeTextFlattening(true);
stamper.setFormFlattening(true);
stamper.close();
template.close();
有人知道為什么我將pdf展平時文本會移動嗎? 如何避免這種情況?
我已經嘗試過使用iText的不同版本。 從4.X版本到5.X。 差異出現在所有版本中。
盡管我嘗試移動iText代碼中的表單字段,但隨后整個字段都在移動並且位置的差異更大且無法預測。
在我的項目中,文本必須與Acrobat中的位置完全相同,因此我必須找到解決此錯誤行為的方法。 我希望有人能幫助我。
感謝您的幫助。
多年來,PDF文件中字段基線的位置已更改。 您甚至會看到差異,具體取決於所使用的Acrobat版本。
除非您知道確切的偏移量,否則無法解決您的問題。 如果這樣做,則可以在setExtraMargin()
平文檔時使用setExtraMargin()
方法更改所有字段的偏移量。
我們創建了此方法來處理基線與預期不同的特定表格。 對於不同的形式,選擇的值可以不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.