我正在使用 iText 库为现有的 PDF 文件添加额外的信息。额外信息是应该以自定义 TTF 字体呈现的文本。
问题是文本仅在 Adobe Reader 中不可见。其他 PDF 查看器,例如 Ubuntu 中的默认 eVince 阅读器和 Google 在线 PDF 阅读器,可以很好地呈现自定义嵌入字体中的标记文本。
我尝试了多种编码,例如 Cp1251、BaseFont.Identity_H、...
魔术发生的代码:
PdfReader pdfReader = new PdfReader(new FileInputStream(inputPdf));
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream("stamped.pdf"));
PdfContentByte canvas = pdfStamper.getOverContent(1);
String text = "The stamp";
BaseFont bf = BaseFont.createFont("assign.ttf", "Cp1251",BaseFont.EMBEDDED);
canvas.beginText();
canvas.setColorFill(BaseColor.BLUE);
canvas.setFontAndSize(bf, 13);
canvas.moveText(310, 600);
canvas.showText(text);
pdfStamper.close();