我需要找到一种方法在 PDF 文档的一个很小的空间中添加一个很长的字符串。
我正在使用iTextSharp。我已经尝试过添加评论注释(气球),PdfAnnotation.CreateText()
但我不喜欢它们的外观/工作方式。它使页面太重(我每页有很多评论)并且他们的行为在很多方面都很奇怪(感谢 Adobe)。
现在我正在考虑在页面中的“块”上添加一些简单的工具提示,或者使用 javascript 弹出消息框(如图所示:http: //www.codehacker.com/ITEXTSHARP/chap15.aspx#)。然而,令我非常失望的是,在这些情况下,Acrobat (?) 似乎不支持 Unicode 字符。例如我这样做:
var javascript = new PdfAnnotation(
w, 200f, 550f, 300f, 650f,
PdfAction.JavaScript("app.alert('" + "Αρνάκι άσπρο και παχύ!" + "');\r", w));
chunk.SetAnnotation(javascript);
...并且,在最好的情况下,当用户单击该块时,会弹出一个带有乱码的消息框。
是否有任何设置可以使上面的代码可以接受 Unicode 或其他方式来做我想做的事情?
编辑:
我现在已经看到了这个:https ://stackoverflow.com/a/163065/964053 我已经尝试像这样修改我的代码:
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() 应该创建什么,但是我在页面上看到一个小标记,当您将鼠标悬停在它上面时会显示一个弹出窗口。