我目前正在努力处理从LibreOffice文档创建的PDF表单.
我按照"iText in Action"一书中的建议创建了它,现在我试图用一些可以包含Unicode字符的值预先填充嵌入的表单.
这包括一个由base char组成的字符,另外还有一个char(eG M)组合.
我在stackoverflow 和本书中尝试了几个不同的提示 ,但是我从来没有得到一个可以在所有平台上运行的表单的PDF文档:Linux(Okular,Evince,Acrobat DC,macOS Previewer等)
我知道我需要一个字体,覆盖字符并完全嵌入字体.下面是我用来存档PDF文档和PDF文件的代码.
我的问题是:
填写表格的代码:
BaseFont uniFont = BaseFont.createFont("./src/main/resources/UnicodeDoc.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, false, null, null, false);
uniFont.setSubset(false);
// Debugging code...
for (String codepage : uniFont.getCodePagesSupported()) {
System.out.println("Codepage = " + codepage);
}
FileInputStream fis = new FileInputStream(src);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfReader reader = new PdfReader(fis);
PdfStamper stamper = new PdfStamper(reader, baos);
// Fill all fields in PDF form
String text = "aM\u0302a"; // …
Run Code Online (Sandbox Code Playgroud)