java - 打印 PDF 时反转阿拉伯语

标签 java unicode pdf-generation arabic

我正在尝试使用此处找到的 Java 代码在某些 PDF 文档中打印阿拉伯语: http://www.java2s.com/Code/Java/PDF-RTF/ArabicTextinPDF.htm

这个例子效果很好,除了文本是倒过来的。例如,稍微更改示例:

String txt = "\u0623\u0628\u062c\u062f\u064a\u0629 \u0639\u0631\u0628\u064a\u0629";
System.out.println(txt);
g2.drawString(txt, 100, 30);

与 PDF 相比,屏幕上打印的字符相同,但方向相反。控制台输出正确,PDF 不正确。

我不想简单地反转字符,否则我将失去双向支持......

非常感谢

最佳答案

IIRC,iText 支持比 drawString 更高级别的阿拉伯语整形。让我们看看这里...

啊! ColumnText.showTextAligned(PdfContentByte canvas,int alignment,Phrase phrase,float x,float y,float rotation,int runDirection,int arabicOptions)

对齐是 Element.ALIGN_* 之一。运行方向是 PdfWriter.RUN_DIRECTION_* 之一。阿拉伯语选项是位标志,ColumnText.AR_*

这应该可以解决问题,但有一个警告:我不确定它是否会处理同一个短语中的多个方向。您的测试字符串包含 CJKV、阿拉伯语和拉丁字符,因此应该有两个方向变化。

祝你好运。

关于java - 打印 PDF 时反转阿拉伯语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5188812/

相关文章:

java - 为什么向 gradle 任务添加类型会影响下面示例中的 println 语句?

java - 如何使用 Mapstruct 从具有对象列表和另一个对象的模型实体映射到单个域实体

c++ - 游戏中的 Unicode 输入处理

python - Python 3.2 上的 PDF 生成

vba - PDF生成期间运行时错误-2147467259

css - DOMPDF - 如何将 PDF 呈现为完全没有边距?

java - 在 JPanel 上显示 jpg 图像

java - 在华为 Android 7-10 上崩溃

macos - 在MacOS上打开INI文件时出现Unicode映射错误

php - 文件大小统计失败