提问人:Peter N 提问时间:10/13/2023 更新时间:10/13/2023 访问量:28
使用 itext7 而不是 itext5 填写 XFA 表单时的额外边距
Additional margin when filling XFA forms with itext7 instead of itext5
问:
我正在升级一个简单的工具,用itext填写XFA PDF表单。这个想法很简单,所有与格式相关的信息(字体名称/字体大小/对齐/边距/等)都存储在表单中。我只把纯文本放在他的形式中。
在 itext5 中
String fieldname = "myField";
PdfReader pdfReader = new PdfReader(templatePath);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream(outputPath));
pdfStamper.getAcroFields().setField(fieldname, "This is the field filled with iText5");
acroFields.setFieldProperty(fieldname , "bordercolor", BaseColor.RED, null);
pdfStamper.setFormFlattening(true);
在 itext7 (8.0.2) 中
String fieldname = "myField";
try (final PdfReader reader = new PdfReader(new FileInputStream(new File(templatePath)));
final PdfDocument stamper = new PdfDocument(reader, new PdfWriter(new File(outputPath)))) {
final PdfAcroForm arcoform = PdfAcroForm.getAcroForm(stamper, true);
final PdfFormField pdfField = arcoform.getField(fieldname);
pdfField.setValue("This is the field filled with iText7");
pdfField .getFirstFormAnnotation().setBorderWidth(1).setBorderColor(ColorConstants.RED);
arcoform.flattenFields();
由于某种原因,itext7 版本中存在偏移量。它只发生在多行字段上,对于“正常”字段,没有额外的偏移量。有没有办法解决这个问题?
答: 暂无答案
评论