PDF JavaScript не работает в Adobe Reader DC, но во всех других программах чтения
Я не могу заставить мой pdf работать в Интернете с Adobe Reader DC.
http://www.okeechobeecountytaxcollector.com/Documents/FeeCalculatorRev0909.pdf
Ни одна из кнопок или функциональность не работает. (Например, когда вы нажимаете "Автомобили", "Мобильные дома" или любую из этих кнопок в верхней части, должен появиться выпадающий список). Но если я открою в любом другом считывателе, он будет работать нормально. Кто-нибудь знает, как я могу редактировать документ для правильной работы в Adobe Reader DC? Есть ли в документе какие-либо настройки или что-то, что вы должны изменить для работы в DC?
Я попытался изменить настройки в разделе безопасности на Acrobat X и более поздние версии, но это тоже не помогло.
1 ответ
После проверки вашего PDF-документа в отладчике Adobe DC JavaScript, я боюсь, что выдается только целая куча синтаксических ошибок. Когда вы исправляете один набор синтаксических ошибок, появляется новый набор синтаксических ошибок. Из того, что я могу сказать (кто-то может надеяться подтвердить это), является то, что интерпретаторы JavaScript в более старых версиях Adobe менее строги в том, как они интерпретируют язык, поэтому ваши формы работают в более старых версиях, но их останавливает последние переводчики в Acrobat DC.
Когда я проверяю JavaScript, который выдает ошибки, я не только замечаю, что Adrobat DC действительно хочет, чтобы вы заканчивали свои операторы JavaScript точками с запятой (что ваш код делает некоторое время), но я также нахожу очень странные конструкции, некоторые заставили бы меня поверить, что даже если ваши формы технически не выдают никаких ошибок в более старых версиях Acrobat, вы можете обнаружить, что формы на самом деле не работают должным образом в более старых версиях.
Итак, чтобы исправить эти ошибки и заставить ваши формы работать в Adobe Acrobat DC, вам нужно будет очистить все возникающие ошибки, что означает перенос (обновление) вашего стиля кодирования в соответствии с новым уровнем строгости в Acrobat. Время выполнения DC.
Например, когда я впервые открываю вашу форму с помощью отладчика JavaScript в Acrobat DC, я получаю следующие перечисленные ошибки:
Ошибка синтаксиса: отсутствует; до заявления 121: Уровень документа:CreditCalcException в строке 5 функции top_level, скрипт Page-Actions:Page1: Открытие страницы:Action4 ReferenceError: Loaded не определено 5: Действия страницы: Страница 1: Открытие страницы: Исключение Action4 в строке 2 функции top_level, скрипт AcroForm:LoadCountyLock:Annot1:OnBlur:Action1 ReferenceError: FormNumber не определен 2:AcroForm:LoadCountyLock:Annot1:OnBlur:Action1Exception в строке 10 функции top_level, сценарий AcroForm:ButtonMonth1.3.0:Annot1:MouseUp:Action2 ReferenceError: MonthsNumber не определен 10:AcroForm:ButtonMonth1.3.0:Annot1:MouseUp:Action2Exception в строке 10 функции top_level, сценарий AcroForm:ButtonMonth1.0.0:Annot1:MouseUp:Action2 Исключение в строке 10 функции top_level, скрипт AcroForm:ButtonMonth1.1.0:Annot1:MouseUp:Action2 ReferenceError: MonthsNumber не определен 10:AcroForm:ButtonMonth1.0.0:Annot1:MouseUp: Мотор2 Ошибка синтаксиса: отсутствует; до заявления 121: Документ-Level:CreditCalc Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: Ошибка синтаксиса: отсутствует; до заявления 121: SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 77:AcroForm:DynolistHS:Annot1:MouseUp: Мотор2 SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: SyntaxError: класс является зарезервированным идентификатором 56: SyntaxError: класс является зарезервированным идентификатором 56: SyntaxError: класс является зарезервированным идентификатором 56: SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа: SVCFees Ошибка синтаксиса: отсутствует; до заявления 121: SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 56: на уровне документа:SVCFees SyntaxError: класс является зарезервированным идентификатором 138:AcroForm:DynolistVehicle:Annot1:MouseUp:Action1
Обратите внимание, что у вас есть все эти ошибки, такие как:
SyntaxError: класс является зарезервированным идентификатором Ошибка синтаксиса: отсутствует; до заявления
Это хорошие показатели того, что новый интерпретатор JavaScript в DC поддерживает JS на более высоком уровне и использует новые языковые функции, такие как class
ключевое слово, и навязывая соглашение, что точки с запятой должны использоваться для завершения операторов.
Когда вы продолжаете щелкать по PDF-файлу, отладчик JavaScript начинает жаловаться на еще большее количество ошибок тем же способом (пропущенные точки с запятой, функции, которые не определены и т. Д.), Поэтому исправление одной проблемы только открывает дыру другого кролика в дополнительных, но идентичных проблемах.
Поэтому я бы сказал, что самый быстрый путь к обновлению и подготовке этой формы для последней версии DC - это пройтись по вашим сценариям и применить некоторые соглашения или ограничения, чтобы начать очистку синтаксиса (завершение всех операторов точкой с запятой и т. Д.). После того, как вы очистите синтаксис, интерпретатор JavaScript, вероятно, начнет находить объявления функций, которые он не мог найти раньше (из-за того, что рассматривал неверный синтаксис), что (надеюсь) прояснит "функцию не определена". "ошибки.
Кроме того, я бы просто сделал несколько общих тестов, чтобы ваши формы работали так, как вы хотите, потому что я вижу странный JavaScript, такой как этот пример, взятый из CreditCalc
функция:
Обратите внимание, что разрыв между строками 123
а также 125
? Это странный на мой взгляд JavaScript, и из того, что я вижу, код, который находится в этом "плавающем" объекте в строке 125, никогда не попадет в цель, он просто существует, но никогда не будет служить цели, это должно быть страшно для вас.
Странные конструкции, подобные этой, плавают по всем вашим сценариям, наряду с другими ошибками, которые потенциально могут привести к непредвиденным поведениям, таким как использование != 0
вместо !== 0
,
Поэтому я боюсь, что здесь нет простого ответа, вам, вероятно, придется провести большую очистку, прежде чем Acrobat DC позволит вам запустить эту форму.