用JS检索和操作交互式PDF文档
Retrieving and manipulating interactive PDF document with JS
我在为一个朋友工作,他需要操作一个具有以下需求的交互式PDF:有2个主要的"层"和2个按钮。当我按下button1时,只有layer1是可见的,当我按下button2时,layer2是唯一可见的。
他可以为每个按钮上传一个javascript,动作必须在点击时开始,这是我为他写的代码。
var layerToHideLabel = "testlayer1";
var layerToShowLabel = "testlayer2";
showField(layerToShowLabel);
hideField(layerToHideLabel);
function showField(fieldName){
var field = null;
field = FindOCG(fieldName);
if(field != null){
setVisibility(field,true);
}
}
function hideField(fieldName){
var field = null;
field = FindOCG(fieldName);
if(field != null){
setVisibility(field,false);
}
}
function setVisibility(field, status){
field.state=status;
}
function FindOCG(cName) {
var aOCGs = this.getOCGs();
for(var i=0; aOCGs && i<aOCGs.length;i++) {
if(aOCGs[i].name == cName) return aOCGs[i];
}
return null;
}
getOCGs
函数是文档的内置功能,当然,当我启动该方法时,我得到以下错误:
this.getOCGs is not a function
我认为这个问题与上下文相关,因为脚本是在点击按钮时启动的,所以this
可能指的是按钮而不是文档。
我尝试了很多组合从OCG检索文档,没有运气。我尝试了document, $doc, doc, document,但是没有。恐怕这是不可能的,也许我应该尝试在文档级别上传一些代码,但我不知道我是否可以添加一些onchange
功能。
这是我到目前为止一直遵循的指南:https://acrobatusers.com/tutorials/create_use_layers
Thanks in advance
尝试调用'event.target.doc.getOCGs()',而不是'this.getOCGs()'。
在某个文件夹级javascript文件中定义的函数中,'this'是未定义的。调用函数应该将Doc传递给该级别的任何需要它的函数。
Doc对象通常可以通过事件对象访问,事件对象是为执行JavaScript的每个事件创建的:●对于鼠标,聚焦,模糊,计算,验证和格式化事件,事件。target返回启动事件的Field对象。然后可以通过Field对象的Doc方法访问Doc对象。
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- 如何将PDF作为二进制文件传递到window.open()
- RubyonRails——构建交互式接口应该朝哪个方向发展
- javascript.点击显示嵌入的pdf
- Javascript/Jquery Blob not showing Chrome PDF
- 在提交时打开thankyou.html+下载PDF
- 生成pdf或其他非html文件时的错误处理
- how to convert html <div> to pdf
- 将画布转换为pdf:黑色背景
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- 以PDF附件的形式通过电子邮件发送谷歌文档
- 将Meteor中的base64 PDF作为电子邮件附件
- 无法执行文件.退出Acrobat PDF中的操作
- 在浏览器中检测本机或第三方PDF插件
- 下载HTML5/Javascript MOBILE应用程序中的PDF文件
- 如何使用angularjs构建交互式滚动着陆页
- 下载所选语言的pdf文件
- 将网页转换为具有样式的pdf
- 在Internet Explorer中从二进制文件打开PDF
- 用JS检索和操作交互式PDF文档