java - 在 Itext 中添加希伯来字母注释

标签 java itext

当我使用以下方式添加注释时:

PdfAnnotation.createFileAttachment(writer,null,null , null,  , "שם קובץ", "שם קובץ");

注释中的希伯来字母未显示。

有办法解决吗?

最佳答案

  1. 您在代码中使用希伯来字符。那不安全。请将它们替换为 unicode 表示法(您需要知道它们的 unicode 值;例如 \u00a0 是不间断空格的值)。如果您不这样做,编译器可能会错误地解释字符(请参阅给出的注释)。
  2. 在我看来,您的方法中的参数数量不正确。我假设您正在使用 this method .
  3. 您使用的“快捷方式”方法假定字符不是 Unicode 字符。请不要。使用创建 PdfFileSpecification 对象的方法,并使用 setUnicodeFileName() 等方法,并将 unicode 参数设置为 true。这样,iText 就知道这些字符应该被解释为 Unicode 字符。
  4. 您可能希望字符从右到左显示。不知道PDF是否支持。我浏览了 ISO-32000-1 并查看了表 44(文件规范字典中的条目),但我看到的只是:提供 7.11.2“文件规范字符串”中描述的形式的文件规范的 Unicode 文本字符串。这是使用 PDFDocEncoding 或 UTF-16BE 编码的文本字符串,带有前导字节顺序标记(如 7.9.2.2“文本字符串类型”中定义)。如果您想了解更多信息,则必须深入研究这些部分。
  5. 您将 null 作为 Rectangle 的值传递。这没有道理。您确定要添加文件附件注释吗?根据您的代码,我假设您想要添加文档级附件。这样做的方式如下:writer.addFileAttachment(fs);,其中 fsFileSpecification 类的实例。

关于java - 在 Itext 中添加希伯来字母注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894581/

相关文章:

java - 如何防止在 Spring 执行第二个查询?

java - 当 java 中已存在电子邮件时,如何在 INBOX 文件夹的复制操作中跳过电子邮件?

java - Itext 7 分割段落

java - iText pdfReader 未在 ColdFusion 2018 中发布文件

itext - 在 columntext 走后获取 y 位置

java - Gson 实现 no.of classes 取决于花括号?

java - 为什么在使用 boolean 语句时内容不在 system.out.println 语句中打印

java - 将 JTextField 输入转换为整数

c# - ItextSharp-如何为段落赋予颜色和粗体

java - 可填写表单中的 itext 图像字段