带有iTextSharp的Unicode和PDF工具提示/消息框

带有iTextSharp的Unicode和PDF工具提示/消息框,unicode,annotations,tooltip,itextsharp,messagebox,Unicode,Annotations,Tooltip,Itextsharp,Messagebox,我需要找到一种方法,在PDF文档中的一个很小的空间中添加一个很长的字符串 我正在使用iTextSharp。我已经尝试过使用pdfantotation.CreateText()添加注释注释(气球),但我不喜欢它们的外观/工作方式。这使得页面太重(我每页都有很多评论),他们的行为在很多方面都很奇怪(感谢Adobe) 现在我正在考虑在页面中的“块”上添加一些简单的工具提示,或者用javascript弹出消息框(如图所示:)。然而,令我非常失望的是,Acrobat(?)在这些情况下似乎不支持Unicod

我需要找到一种方法,在PDF文档中的一个很小的空间中添加一个很长的字符串

我正在使用iTextSharp。我已经尝试过使用
pdfantotation.CreateText()
添加注释注释(气球),但我不喜欢它们的外观/工作方式。这使得页面太重(我每页都有很多评论),他们的行为在很多方面都很奇怪(感谢Adobe)

现在我正在考虑在页面中的“块”上添加一些简单的工具提示,或者用javascript弹出消息框(如图所示:)。然而,令我非常失望的是,Acrobat(?)在这些情况下似乎不支持Unicode字符。例如,我这样做:

var javascript = new PdfAnnotation(
    w, 200f, 550f, 300f, 650f,
    PdfAction.JavaScript("app.alert('" + "Αρνάκι άσπρο και παχύ!" + "');\r", w));
chunk.SetAnnotation(javascript);
…在最好的情况下,当用户单击块时,会弹出一个带有胡言乱语的messagebox

有没有设置让上面的代码可以接受Unicode,或者用其他方法来实现我想要的


编辑:

我现在看到了这一点: 我尝试过这样修改我的代码:

var javascript = new PdfAnnotation(
    w, 200f, 550f, 300f, 650f,
    PdfAction.JavaScript((char)0xFEFF + "app.alert('" + "Αρνάκι άσπρο και παχύ!" + "');\r", w));
chunk.SetAnnotation(javascript);
但似乎什么都没有改变


EDIT2: 使用八进制表示法,例如
(\141)
,似乎也没有帮助


EDIT3: 在您双击它之前,这似乎效果不错,但我需要根据内容大小自行设置工具提示大小:

var lToolTip = PdfFormField.CreatePopup(
    w, new Rectangle(tc.Left, tc.Bottom, tc.Right, tc.Top), val, true);
chunk.SetAnnotation(lToolTip);
提供的矩形似乎没有以任何方式使用。。。 有什么想法吗?
我不知道PdfFormField.CreatePopup()应该创建什么,但我在我的页面上看到一个小标记,当你将鼠标悬停在它上面时,它会显示一个弹出窗口。

我有点迷失在你的编辑中,不清楚什么适合你,什么不适合你,但是关于JavaScript中的unicode问题:您知道JavaScript()方法有两个版本吗


如果添加
boolean
true
,则JavaScript字符串应解释为Unicode。如果这不能解决您的问题,我将删除此答案,如果您澄清您的问题(删除不相关的部分),我将再次尝试。

我甚至没有看到其他过载!谢谢现在我有另一个小问题:当警报函数中的文本包含“\r\n”时,messagebox根本不会出现。我已尝试仅删除“\n”或“\r”,但无效。仅当我删除整个“\r\n”时,它才起作用:(啊!在字符串上使用val=val.Replace(“\r\n”,“\\r\\n”)可以修复所有问题!现在有意义了…非常感谢Bruno.:)顺便问一下,你知道在块上放置工具提示(像所有Windows应用程序中使用的工具提示,而不是Acrobat的注释)的方法吗?我见过acrobat在您将鼠标悬停在注释或链接上时显示工具提示,但我不想使用第一个,第二个工具提示只能在工具提示中显示URL。您是指本PDF中演示的弹出式批注吗?代码可以在这里找到:(参见C#版本)我所知道的唯一其他选择(类似于URL),是字段字典中的TU条目。但是,这涉及到引入表单字段…它使用弹出式注释。你可以或多或少地塑造它们的表现方式,但这需要大量的工作。想到的另一个选项是“可选内容”(ISO语言中的OCG)。您可以在不可见层中添加内容,并在有人将鼠标悬停在特定区域上时使该层可见。