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