我在ASP.net的网页中嵌入了一个pdf文档,并希望使用Javascript获取pdf文档中的特定字段...普通Javascript ...
答案 0 :(得分:2)
PDF中的JavaScript可以在网页中调用JS,反之亦然,如果为它设置了两个。您可以看到Acrobat的documentation here。
查看HostContainer
规范,从第486页开始。在PDF中,您需要脚本如下:
var document = this; // hurray for closures.
this.hostContainer.messageHandler = { onDisclose: function() {return true;},
onMessage: function(msgArrayIgnored) {
// build a JSON string of field/value pairs
var outgoingMessage = "{ ";
for (var i = 0; i < this.numFields; ++i) {
var fldName = document.getNthFieldName(i);
var fld = document.getField(fld);
var val = fld.value;
// you'll probably need to escape 'val' to be legal JSON
outgoingMessage += fldName + ": \"" + val + "\";
// stick in a comma unless this is the last field
if (i != this.numFields-1) {
outgoingMessage += ", ";
}
}
outgoingMessage += "};";
this.hostContainer.postMessage( [outgoingMessage] );
};
在HTML中,您需要设置类似的内容。让我们假设你的pdf嵌入在一个object标签中,那个元素的id是“pdfElem”。您的HTML脚本可能类似于:
var pdf = document.getElementById("pdfElem");
pdf.messageHandler = function(message) {
var fldValPairs = eval(message);
doStuffWithFieldInfo(fldValPairs);
};
稍后,每当您想要检查PDF的字段信息时,您都会发布一条消息,而PDF将回调到pdf.messageHandler,并将其JSON字符串包装在一个数组中:
pdf.postMessage(["this string is ignored"]);
某处可能存在一两个潜伏着的错误,但这会让你走上正轨。
答案 1 :(得分:0)
网页JavaScript无法与PDF表单字段进行交互。但是,您可以将PDF表单发布到网页表单处理器,然后在表单字段中获取值。