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

时间:2012-10-15 11:23:14

标签: java itext

当我使用:

添加注释时
PdfAnnotation.createFileAttachment(writer,null,null , null,  , "שם קובץ", "שם קובץ");

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

有没有办法解决它?

1 个答案:

答案 0 :(得分:1)

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