我正在从另一个包含acrofields并获得以下问题的PDF创建PDF:
-
acrofields表现奇怪,因为在放置光标并在表单字段中单击以编辑文本后,文本向下移动(有时向上)到其在创建的PDF中的位置 . 原始PDF文档中不会发生此问题 .
-
现在,如果我们通过设置压模
.setFormFlattening(true)
来制作平面PDF,那么如果两个acrofield彼此非常接近,则acrofields的文本不会写入少量的精确位置,导致文本重叠 .
我正在使用的代码是
import com.lowagie.text.pdf.AcroFields;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
String pdfName = "pdfName.pdf";
PdfStamper stamper = null;
FileOutputStream fout = null;
PdfReader reader = new PdfReader(pdfName);
fout = new FileOutputStream("outputpdf.pdf");
stamper = new PdfStamper(reader, fout);
AcroFields acroFields = stamper.getAcroFields();
Map fieldMap = acroFields.getFields();
Set keys = fieldMap.keySet();
for (Iterator it = keys.iterator(); it.hasNext();) {
String fieldName = (String) it.next();
acroFields.setField(fieldName,acroFields.getField(fieldName));
}
stamper.setFormFlattening(false);
stamper.close();
我尝试了与最新版本的itext(itext5)相同的代码,但它给出了相同的结果 .
我正在使用的PDF是
http://www.herosh.com/download/11083031/sample-font.pdf.html