簡體   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