繁体   English   中英

PDF JavaScript在Adobe Reader DC中不起作用,但在所有其他Reader中起作用

[英]PDF JavaScript does not work in Adobe Reader DC but all other Readers

我无法获取pdf与Adobe Reader DC联机工作。

http://www.okeechobeecountytaxcollector.com/Documents/FeeCalculatorRev0909.pdf

所有按钮或功能均不起作用。 (就像您单击汽车,“移动房屋”或顶部的那些按钮中的任何一个一样,应该会出现一个下拉菜单。)但是,如果我在其他任何阅读器中打开它,都可以正常工作。 有谁知道我如何能够编辑文档以使其在Adobe Reader DC中也能正常工作? 文档中是否有任何设置,或者您需要更改才能在DC中工作?

我尝试将安全性部分中的设置更改为Acrobat X及更高版本,但这并不能解决。

恐怕在Adobe DC JavaScript调试器中检查PDF文档后,恐怕只会抛出一堆语法错误。 修复一组语法错误时,会弹出一组全新的语法错误。 据我所知(希望有人可以证实这一点)是,旧版本的Adobe中的JavaScript解释器对语言的解释方式没有那么严格,这就是为什么您的表单在旧版本中可用,但是却被停止的原因Acrobat DC中最新的口译员。

当我检查引发错误的JavaScript时,我不仅注意到Adrobat DC确实希望您用分号终止JavaScript语句(您的代码有时会这样做),而且我还发现了非常奇怪的结构,有些使我相信,即使您的表单在技术上没有在较旧版本的Acrobat中引发任何错误,您仍可能会发现这些表单在较旧版本中实际上并没有正确地表现。

因此,要修复这些错误并使表格在Adobe Acrobat DC中工作,您将必须清理所有引发的错误,这意味着必须迁移(更新)编码样式以符合Acrobat中新的严格程度。 DC的运行时。

例如,当我第一次在Acrobat DC中使用JavaScript调试器打开表单时,列出了以下错误:

SyntaxError: missing ; before statement
121:Document-Level:CreditCalcException in line 5 of function top_level, script Page-Actions:Page1:Page Open:Action4
ReferenceError: Loaded is not defined
5:Page-Actions:Page1:Page Open:Action4Exception in line 2 of function top_level, script AcroForm:LoadCountyLock:Annot1:OnBlur:Action1
ReferenceError: FormNumber is not defined
2:AcroForm:LoadCountyLock:Annot1:OnBlur:Action1Exception in line 10 of function top_level, script AcroForm:ButtonMonth1.3.0:Annot1:MouseUp:Action2
ReferenceError: MonthsNumber is not defined
10:AcroForm:ButtonMonth1.3.0:Annot1:MouseUp:Action2Exception in line 10 of function top_level, script AcroForm:ButtonMonth1.0.0:Annot1:MouseUp:Action2
Exception in line 10 of function top_level, script AcroForm:ButtonMonth1.1.0:Annot1:MouseUp:Action2
ReferenceError: MonthsNumber is not defined
10:AcroForm:ButtonMonth1.0.0:Annot1:MouseUp:Action2
SyntaxError: missing ; before statement
121:Document-Level:CreditCalc
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: missing ; before statement
121:
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
77:AcroForm:DynolistHS:Annot1:MouseUp:Action2
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:
SyntaxError: class is a reserved identifier
56:
SyntaxError: class is a reserved identifier
56:
SyntaxError: class is a reserved identifier
56:
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: missing ; before statement
121:
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
56:Document-Level:SVCFees
SyntaxError: class is a reserved identifier
138:AcroForm:DynolistVehicle:Annot1:MouseUp:Action1

在此处输入图片说明

请注意您如何遇到所有这些错误,例如:

SyntaxError: class is a reserved identifier
    SyntaxError: missing ; before statement

这些都是很好的指示,表明DC中的新JavaScript解释器正在将JS保持在更高的标准,并使用了更新的语言功能(例如class关键字),并强加了必须使用分号来终止语句的约定。

当您继续单击PDF时,JavaScript调试器开始以相同的方式抱怨更多错误(缺少分号,未定义的函数等),因此解决一个问题仅揭示了另一只兔子的其他但相同的问题。

因此,我要说的是,更新此表单并准备好使用最新版本的DC的最快方法是遍历脚本并应用一些约定或启动以清除语法(以分号终止所有语句,等等)。 清理语法后,JavaScript解释器很可能会开始查找以前找不到的函数声明(由于它认为语法无效),这将(希望)清除“未定义的函数”错误。

另外,我将做一些常规测试以确保您的表单按预期的方式工作,因为我看到了奇怪的JavaScript,例如从CreditCalc函数中获取的以下示例:

在此处输入图片说明

注意在123125行之间中断吗? 在我看来,这是一种看起来很奇怪的JavaScript,从我看到的125行“浮动”对象中的代码永远不会受到打击,它只是存在,但永远不会达到目的,这应该让你感到恐惧

像这样的奇怪构造会在您的脚本中浮动,以及可能潜在地导致意外行为的其他陷阱,例如使用!= 0而不是!== 0

因此,恐怕这里没有简单的答案,在Acrobat DC允许您运行此表单之前,您可能必须进行大量清理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM