gpt4 book ai didi

java - Itext Arabic Font 以问号形式出现

转载 作者:行者123 更新时间:2023-12-01 14:24:43 25 4
gpt4 key购买 nike

我是 iText 库的新手。我有一个要求,我需要提供 PDF 格式的输出。 pdf 中有阿拉伯字符。我创建了一个测试 servlet,如下所示。

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType ("application/pdf;charset=UTF-8");
Document document = new Document();
try{
PdfWriter.getInstance(document,
response.getOutputStream()); // Code 2
document.open();

Font f1;
BaseFont bf = BaseFont.createFont("C:\\WINDOWS\\Fonts\\ARIALUNI.ttf", BaseFont.CP1252, true);
f1 = new Font(bf, 10);

PdfPTable table = new PdfPTable(2);
table.addCell("hellooooo1");
table.addCell("world2");
table.addCell("1113");
table.addCell("422");

// String a = "يبسبيبيبيسسسيبيببيسبيسيببي";
String a = "سش";
PdfPCell cell = new PdfPCell (new Paragraph (a,f1));
table.addCell (cell);
cell = new PdfPCell (new Paragraph ("Road",f1));
table.addCell (cell);

document.add(table);
document.close();
}catch(DocumentException e){
e.printStackTrace();
}
}

我们使用阿拉伯字符的输出显示为 ?????? .如何纠正这个问题?我在哪里犯了错误?

最佳答案

您的问题是您使用 Windows CP1252 字符集创建 BaseFont,它只适用于拉丁字符。尝试使用 Unicode 编码:

 BaseFont bf  = BaseFont.createFont("C:\\WINDOWS\\Fonts\\ARIALUNI.ttf", BaseFont.IDENTITY_H, true);

关于java - Itext Arabic Font 以问号形式出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014211/

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