gpt4 book ai didi

java - PDFTable Itext 阿拉伯语

转载 作者:行者123 更新时间:2023-12-01 12:16:50 27 4
gpt4 key购买 nike

我已经编写了 java 代码,我希望在 PdfPTable 上显示阿拉伯文字,该 PdfPTable 被用于 itext 文档以创建 PDF 文档

如附图“???”是阿拉伯代码'

PdfPTable header = new PdfPTable(6);
PdfPTable tbame = new PdfPTable(1);
tbame.addCell(" >>>>>> " + install.getCustId().getFullName() + " <<<<<<");
tbame.setHorizontalAlignment(PdfPTable.ALIGN_CENTER);
tbame.setLockedWidth(false);
tbame.setExtendLastRow(false);
tbame.setWidthPercentage(100);
header.addCell("End");
header.addCell("Start");

最佳答案

请阅读文档,您会发现 addCell(String content) 方法不能用于添加阿拉伯文本,原因有两个:

  1. 使用此方法时,将使用默认字体 Helvetica。您需要使用知道如何绘制阿拉伯形状的字体。这个问题的答案对此进行了解释:Itext Arabic Font coming as question marks
  2. 阿拉伯语是从右向左书写的,这意味着您需要更改单元格内容的运行方向,如我对此问题的回答中所述:RTL not working in pdf generation with itext 5.5 for Arabic text

代码片段:

BaseFont bf  = BaseFont.createFont("c:/WINDOWS/Fonts/arialuni.ttf",
BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font font = new Font(bf, 12);
Phrase phrase = new Phrase(
"\u0644\u0648\u0631\u0627\u0646\u0633 \u0627\u0644\u0639\u0631\u0628", font);
PdfPCell cell = new PdfPCell(phrase);
cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
table.addCell(cell);

如果您无法使用arialuni.ttf字体,则必须找到另一种包含阿拉伯字形的字体。

关于java - PDFTable Itext 阿拉伯语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26946969/

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