gpt4 book ai didi

pdf - iText 嵌入的 ttf 字体在 Adob​​e Reader 中不可见

转载 作者:行者123 更新时间:2023-12-04 19:12:28 24 4
gpt4 key购买 nike

我正在使用 iText 库为现有的 PDF 文件添加额外信息。
额外信息是应该以自定义 TTF 字体呈现的文本。

问题是文本仅在 Adob​​e 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();

最佳答案

你有语法问题。 PDF 中的文本状态标记为 BTET .这些运算符是使用 beginText() 添加的和 endText()方法。您有一个 BT ,但没有 ET . Adobe Reader 比其他查看器更严格(这就是为什么我更喜欢 Adob​​e Reader 而不是所有其他查看器:人们在编写代码时应该尊重语法)。

pdfStamper.close(); 之前添加以下行

canvas.endText();

更好的是,阅读我的 book你会发现你可以通过使用 ColumnText.showTextAligned() 来降低代码的复杂性。 .

关于pdf - iText 嵌入的 ttf 字体在 Adob​​e Reader 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13494738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com