Others

Что происходит со сценариями JavaScript на уровне PDF-документа, когда файл преобразуется в формат изображения или плоский формат, который не поддерживает сценарии

What Happens to PDF Document-Level JavaScript Scripts When the File Is Converted to an Image-Based or Flat Format That Does Not Support Scripting

Как работает PDF JavaScript и чем он управляет

Файлы PDF могут содержать код JavaScript, который выполняется при возникновении определенных событий во время просмотра документа. Открытие страницы, закрытие страницы, изменение значения поля формы, щелчок мышью по кнопке и сохранение документа — все это события, которые могут запускать встроенные сценарии. Эта возможность создания сценариев обеспечивает интерактивные функции, которые выходят далеко за рамки статического текста и изображений: проверка полей формы, автоматическая отметка даты, расчет итогов на основе входных значений, динамическое скрытие и отображение слоев документа, а также интеграция с внешними источниками данных посредством вызовов веб-служб.

Обнаружение сценария занимает миллисекунды и предотвращает многочасовую переработку.

Знание того, что вы теряете, помогает сделать правильный выбор конверсии.

Механизм JavaScript в программе чтения PDF-файлов не является полноценной средой JavaScript браузера. Он реализует подмножество спецификации ECMAScript, а также специальные расширения Adobe для манипулирования PDF-документами. Доступные API позволяют сценариям читать и изменять значения полей формы, изменять видимость страниц, управлять мультимедийными элементами и отправлять данные формы по URL-адресам. Но движку не хватает возможностей манипулирования DOM, полного сетевого стека и управления рендерингом, которые предоставляет браузерный JavaScript. Формат PDF со встроенными скриптами представляет собой гораздо более ограниченную среду, чем веб-страница с JavaScript.

Несмотря на эти ограничения, PDF JavaScript достаточно мощный для создания по-настоящему интерактивных документов. PDF-файл заявки на кредит может рассчитывать ежемесячные платежи в режиме реального времени, когда заявитель вводит сумму кредита и процентную ставку. PDF-файл сертификата обучения может подтвердить, что имя получателя соответствует базе данных на стороне сервера, прежде чем отображать сертификат. Форма заказа может отправлять заполненные данные непосредственно в API системы выполнения. Благодаря этим интерактивным возможностям JavaScript остается частью спецификации PDF, несмотря на периодические проблемы безопасности при выполнении сценариев в файлах документов.

WukongPDF

Попробуйте PDF в изображение

Никакой установки не требуется. Работает прямо в вашем браузере.

Начать →

Что происходит с JavaScript при преобразовании PDF-файла в формат плоского изображения

Преобразование PDF-файла в формат изображения, будь то PNG, JPEG, TIFF или PDF-файл, содержащий только изображения, созданный путем растеризации каждой страницы, фундаментально меняет характер документа с интерактивного на статический. Процесс преобразования отображает каждую страницу в виде пиксельной сетки, точно отображая, как страница выглядит в момент преобразования. Каждый интерактивный элемент, включая сценарии JavaScript, поля форм, кнопки, гиперссылки, встроенное видео и 3D-модели, сглаживается в визуализированном изображении и перестает существовать как интерактивный объект.

Сам код JavaScript не преобразуется и не транслируется. Он просто отбрасывается вместе со всеми другими невизуальными элементами документа в процессе растеризации. Результирующий файл изображения не содержит ни исполняемого кода, ни обработчиков событий, ни какой-либо интерактивной логики. Какое бы поведение ни обеспечивал JavaScript, будь то вычисления форм, правила проверки или динамические обновления контента, полностью отсутствует в выводе изображения. Вывод показывает снимок того состояния, в котором находился документ на момент преобразования, замороженного во времени без возможности изменения.

При преобразовании PDF в Image удаление JavaScript обычно является намеренным. Документы в формате изображения используются, когда интерактивность не требуется или нежелательна, например, для архивных снимков, обмена в социальных сетях или встраивания в презентации. Отсутствие JavaScript является особенностью в этих контекстах, поскольку оно устраняет проблемы безопасности, связанные с выполнением сценариев из неизвестных источников, и гарантирует одинаковое отображение документа на каждом устройстве и в любом приложении просмотра.

Сценарии, в которых потеря функциональности JavaScript вызывает проблемы

Не каждое преобразование PDF в изображение выполняется с учетом потери функциональности JavaScript. Конвейеры автоматического преобразования, которые обрабатывают пакеты PDF-файлов в изображения для оптимизации хранения или стандартизации формата, могут автоматически удалять сценарии и интерактивные элементы, не предупреждая оператора. Пакетное преобразование сотен PDF-форм в PDF-файлы на основе изображений для архивирования может разрушить функциональность формы каждого файла, не выдав ни единого предупреждения.

Самый опасный сценарий касается документов, в которых JavaScript предоставляет важную информацию, не видимую в статическом представлении. PDF-файл со сценарием, который условно отображает содержимое на основе пользовательского ввода, может отображать неправильное состояние содержимого в преобразованном изображении, если сценарий не был выполнен для создания правильного видимого состояния перед преобразованием. PDF-файл с раскрытием финансовой информации, в котором используется JavaScript для отображения различных таблиц тарифов в зависимости от выбранного пользователем местоположения, в преобразованном изображении будет отображать только таблицу тарифов по умолчанию или, что еще хуже, вообще не показывать таблицу тарифов.

PDF-документы, в которых для управления цифровыми правами используется JavaScript, особенно страдают от преобразования формата. PDF-файл, который ограничивает печать, копирование или редактирование с помощью разрешений JavaScript, полностью теряет эту защиту при преобразовании в изображение. Версию изображения можно распечатывать, копировать и редактировать без ограничений, поскольку JavaScript, обеспечивающий соблюдение ограничений, больше не существует. Организации, использующие DRM на основе JavaScript, должны знать, что преобразование формата фактически лишает их защиты документов.

Сохранение интерактивных функций при необходимости преобразования формата

Если PDF-файл необходимо преобразовать в другой формат, но при этом необходимо сохранить его интерактивные функции, необходим другой подход к преобразованию. Цель смещается от визуализации внешнего вида каждой страницы к переносу интерактивного поведения в формат, поддерживающий эквивалентную функциональность.

Преобразование в HTML с помощью встроенного JavaScript — самый прямой путь перехода к интерактивным PDF-файлам. Поля формы PDF становятся элементами формы HTML, а их сценарии проверки и расчета переведены в JavaScript браузера. Макет документа становится HTML и CSS. Интерактивное поведение сохраняется при изменении формата, поскольку и исходный, и целевой форматы поддерживают выполнение JavaScript. Это преобразование сложное и редко бывает идеальным, но оно сохраняет функциональность, которую разрушает растровое преобразование.

Документы, в которых гибридный подход должен сохранить только определенные интерактивные элементы, сохраняют эти элементы, выравнивая остальные. Извлеките поля формы, их сценарии и их визуальный контекст в веб-форму, которая передается в ту же серверную систему, которая обрабатывает исходные отправки форм PDF. Сам PDF-файл архивируется как изображение, а рабочий процесс сбора данных продолжается через веб-форму. Этот подход допускает потерю встроенной интерактивности в архивном документе, гарантируя при этом непрерывность бизнес-процесса, поддерживаемого интерактивностью.

Как проверить, содержит ли PDF-файл JavaScript перед его преобразованием

Предотвращение случайной потери JavaScript начинается с определения того, содержит ли документ скрипты, прежде чем начинать преобразование. Большинство программ просмотра PDF позволяют просматривать встроенные скрипты. В Adobe Acrobat на панели JavaScript в меню «Инструменты» отображаются все сценарии в документе, упорядоченные по событиям-триггерам. Сторонние инструменты анализа PDF-файлов также могут перечислять встроенный JavaScript и сообщать, к каким событиям документа прикреплены сценарии.

Также помогает быстрая проверка вручную общих функций JavaScript. Если в PDF-файле есть поля формы, автоматически вычисляющие значения, раскрывающиеся списки, изменяющие содержимое в других частях страницы, или кнопки, выполняющие действия, выходящие за рамки простой навигации, он почти наверняка содержит JavaScript. Документы с этими функциями должны быть помечены для осторожного обращения перед любой операцией пакетного преобразования.

Для организаций, которые обрабатывают большие объемы PDF-файлов через автоматизированные конвейеры, добавление этапа обнаружения JavaScript перед этапом преобразования предотвращает бесшумную потерю функциональности. Сценарий предварительной проверки может сканировать каждый входящий PDF-файл на наличие встроенных объектов JavaScript и направлять документы, содержащие сценарии, в очередь ручного просмотра вместо автоматического конвейера растеризации. Этот этап обнаружения практически не требует затрат времени на обработку и предотвращает необратимую потерю интерактивной функциональности.

Инструменты преобразования WukongPDF включают предполетную проверку, которая определяет встроенный JavaScript перед началом преобразования формата и предупреждает вас об интерактивном контенте, который будет потерян, чтобы вы могли принять обоснованное решение о том, следует ли продолжить растеризацию или выбрать альтернативный путь преобразования.

Последствия для безопасности удаления JavaScript во время преобразования формата заслуживают рассмотрения с обеих сторон. Преобразование PDF-файла со встроенным JavaScript в статическое изображение исключает риск использования вредоносных сценариев, а также сохраняет любые законные интерактивные функции. Организации, заботящиеся о безопасности, иногда намеренно растрируют входящие PDF-файлы из внешних источников специально для того, чтобы удалить JavaScript и другой активный контент до того, как документ попадет во внутреннюю сеть. С точки зрения безопасности преобразование формата, удаляющее JavaScript, является элементом управления, а не ошибкой. Ключевым моментом является понимание того, когда это происходит, чтобы документы, интерактивность которых важна, можно было направить на другой путь обработки.

При долгосрочном архивировании интерактивных PDF-файлов рекомендуется хранить как исходную интерактивную версию, так и сжатую архивную версию. В оригинале сохранена полная интерактивная функциональность для будущих пользователей, которым она понадобится. Архивная версия предоставляет эталонную копию стабильного формата, которая будет одинаково отображаться на любой будущей платформе просмотра, независимо от того, поддерживает ли эта платформа PDF JavaScript. Архивирование в двух форматах обеспечивает как сохранение, так и доступ в будущем, когда среда выполнения интерактивного PDF-контента может отсутствовать.

Для организаций, создающих автоматизированные конвейеры обработки документов, которые обрабатывают различные входящие форматы PDF, включение этапа обнаружения и маршрутизации JavaScript перед преобразованием формата предотвращает тихую потерю данных, которая происходит, когда интерактивные документы растрируются без проверки. Этап обнаружения требует миллисекунд времени обработки. Ручное восстановление утраченной интерактивной функциональности, которую оно предотвращает, требует часов или дней.

Преобразование PDF-файлов с поддержкой сценариев в статические форматы изображений — это необратимая операция, которую следует выполнять намеренно, а не как непреднамеренный побочный эффект конвейера пакетного преобразования. Когда JavaScript в PDF-файле обеспечивает функциональность, от которой зависят пользователи документа, преобразование формата без предварительной проверки функционально эквивалентно потере данных и к нему следует относиться с той же серьезностью, что и к любому другому необратимому преобразованию данных в рабочем процессе обработки документа.

WukongPDF

Попробуйте PDF в изображение

Никакой установки не требуется. Работает прямо в вашем браузере.

Начать →