gpt4 book ai didi

java - 如何在 PDF 上打印不常见的字符(使用 pdfbox)

转载 作者:行者123 更新时间:2023-11-30 03:37:07 26 4
gpt4 key购买 nike

我正在尝试从头开始创建一个新的 pdf,但我似乎无法正确打印特殊字符,例如我尝试在 PDF 中打印以下字符串:

『I like 《this string》 yeah.』

并得到

þÿ0I like 0this string0 yeah.0

通过记录器和 println 正确打印结果,有人知道怎么做吗,已经尝试过像\u008A 这样的 ascii 编码。

有什么想法吗?

最佳答案

现在可以使用 PDFBOX 打印 utf-8 字符。您需要下载( https://github.com/apache/pdfbox )最新的 trunk 版本并编译它(您可以使用 maven 编译它,相信我,这是最好的选择)。您需要的第二件事是一个 ttf 字体,其中包含您正在使用的 glphys。

适合我的代码:

package utftext;

import java.io.File;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType0Font;

public class utftext {

public static void main(String[] args) throws Exception {
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
PDType0Font font = PDType0Font.load(document, new File("E:\\arialuni.ttf"));
PDPageContentStream stream = new PDPageContentStream(document, page);
String text = "ssdfg #$%&&English 012 čćžšđ ČĆŽŠĐ as äöüÖÜÄ";
stream.beginText();
stream.setFont(font, 12);
stream.moveTextPositionByAmount(50, 600);
stream.drawString(text);
stream.endText();
stream.close();
document.save("type0.pdf");
document.close();
}

}

关于java - 如何在 PDF 上打印不常见的字符(使用 pdfbox),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27594855/

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