如何将Javascript附加到PDF超链接
How to attach Javascript to a PDF Hyperlink
我得到了一个大的PDF嵌入在一个主页,应该有自定义的javascript命令在它的交互链接。
这个文档应该由一些学生维护,他们不可能在原始word文件更改后遍历所有站点并设置javascript命令。所以我想让他们在word中设置一个超链接,动作应该发生。
之后,我想用iTextSharp删除超链接,并设置一个javascript动作代替。
我可以与HTML沟通,找到正确的超链接,可以改变他们的url,就像这篇文章
还尝试将此添加到注释操作:
string destination = AnnotationAction.GetAsString(PdfName.URI).ToString();
AnnotationAction.Put(PdfName.JAVASCRIPT, new PdfString("this.hostContainer.postMessage('"" + destination + "'");"));
但是它总是在执行javascript之前调用原始的超链接。那么,我如何删除超链接而不丢失文档中文本的结构呢?
您只需将/S
的值更改为/JAVASCRIPT
,并将JavaScript命令的值设置为/JS
。然而,我不打算改变任何东西,而是打算抛弃原来的动作,创建一个新的动作,以确保没有任何包袱。
下面的前三行是来自我的原始答案,你链接到,之后我已经杀死了URL更改代码,并代之以JavaScript代码。既然你理解了我的其他帖子,希望这篇文章也能说得通。
//Make sure this annotation has an ACTION
if (AnnotationDictionary.Get(PdfName.A) == null)
continue;
//Remove our old action entry just so nothing weird hangs around
AnnotationDictionary.Remove(PdfName.A);
//Create a new action entry
var a = new PdfDictionary(PdfName.A);
//Set it as an action
a.Put(PdfName.TYPE, PdfName.ACTION);
//Set it as JavaScript
a.Put(PdfName.S, PdfName.JAVASCRIPT);
//Set the JavaScript
a.Put(PdfName.JS, new PdfString(@"app.alert('Hello World');"));
//Add it back to the annotation
AnnotationDictionary.Put(PdfName.A, a);
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 用超链接替换URLS
- 使用JavaScript从超链接加载时的默认下拉值
- Hammer.js阻止在Android Webview中点击超链接
- 将超链接添加到“;标题“;标记文本
- 文本建议的超链接
- 用Javascript按钮替换Javascript超链接
- 删除默认的ui超链接行为
- 谷歌将广告超链接映射到国家标记
- 如何在点击超链接时调用fullcalendar回调
- 单击“禁用其他超链接”
- 为Angularjs制作超链接
- 指向的超链接刚刚赢得'不起作用
- 如何将超链接添加到通过传单创建的传单多段线.Draw
- 如何禁用鼠标中键单击超链接以在新选项卡或新窗口中打开
- Chrome 原生 PDF 阅读器在新标签页中打开超链接
- 如何使用jsPDFjs库在PDF中创建超链接
- 如何将Javascript附加到PDF超链接
- 用于更改父窗口 URI 的 PDF 文档超链接 JavaScript