我需要找到一种方法,在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);...and,在最好的情况下,当用户单击该块时,会弹出一个带有胡言乱语的消息框。
是否有任何设置使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(),但我在页面上看到一个小标记,当鼠标悬停在页面上时,会显示一个弹出窗口。
发布于 2013-05-25 08:19:41
我有点迷失在您的编辑中,不清楚什么对您起作用,什么不起作用,但是关于javaScript中的unicode问题:您知道javaScript()方法有两个版本吗?
请参阅javaScript(java.lang.String, com.itextpdf.text.pdf.PdfWriter, boolean)
如果添加boolean值true,则应将JavaScript字符串解释为Unicode。如果这不能解决你的问题,我会删除这个答案,如果你澄清你的问题(去掉不相关的部分),我会再做一次尝试。
https://stackoverflow.com/questions/16741716
复制相似问题