Portable Document Format ( PDF ), стандартизированный как ISO 32000 , — это формат файла , разработанный Adobe в 1992 году для представления документов , включая форматирование текста и изображения, способом, независимым от прикладного программного обеспечения , оборудования и операционных систем . [2] [3] Основанный на языке PostScript , каждый файл PDF инкапсулирует полное описание плоского документа с фиксированным макетом, включая текст, шрифты , векторную графику , растровые изображения и другую информацию, необходимую для его отображения. PDF берет свое начало в «Проекте Камелот», инициированном соучредителем Adobe Джоном Уорноком в 1991 году. [4] PDF был стандартизирован как ISO 32000 в 2008 году. [5] Последняя редакция как ISO 32000-2:2020 была опубликована в декабре 2020 года.
Файлы PDF могут содержать разнообразный контент, помимо простого текста и графики, включая логические структурные элементы, интерактивные элементы, такие как аннотации и поля форм, слои, богатый медиаконтент (включая видеоконтент), трехмерные объекты с использованием U3D или PRC и различные другие форматы данных . Спецификация PDF также предусматривает шифрование и цифровые подписи , вложения файлов и метаданные для включения рабочих процессов, требующих этих функций.
Разработка PDF началась в 1991 году, когда Джон Уорнок написал статью для проекта под кодовым названием Camelot, в которой он предложил создать упрощенную версию PostScript под названием Interchange PostScript (IPS). [6] В отличие от традиционного PostScript, который был тесно связан с рендерингом заданий печати на устройствах вывода, IPS был оптимизирован для отображения страниц на любом экране и любой платформе. [6]
В 1993 году компания Adobe Systems сделала спецификацию PDF доступной бесплатно. В первые годы PDF был популярен в основном в рабочих процессах настольных издательских систем и конкурировал с несколькими другими форматами, включая DjVu , Envoy , Common Ground Digital Paper, Farallon Replica и даже собственный формат Adobe PostScript.
PDF был запатентованным форматом , контролируемым Adobe, пока он не был выпущен в качестве открытого стандарта 1 июля 2008 года и опубликован Международной организацией по стандартизации как ISO 32000-1:2008, [7] [8] после чего контроль над спецификацией перешел к Комитету ISO, состоящему из добровольных отраслевых экспертов. В 2008 году Adobe опубликовала Публичную патентную лицензию на ISO 32000-1, предоставляющую безвозмездные права на все патенты, принадлежащие Adobe, необходимые для создания, использования, продажи и распространения реализаций, совместимых с PDF. [9]
PDF 1.7, шестое издание спецификации PDF, которая стала ISO 32000-1, включает в себя некоторые фирменные технологии, определенные только Adobe, такие как Adobe XML Forms Architecture (XFA) и расширение JavaScript для Acrobat, которые упоминаются в ISO 32000-1 как нормативные и необходимые для полной реализации спецификации ISO 32000-1. [10] Эти фирменные технологии не стандартизированы, и их спецификация опубликована только на веб-сайте Adobe. [11] [12] [13] Многие из них не поддерживаются популярными сторонними реализациями PDF.
ISO опубликовала версию 2.0 PDF, ISO 32000-2 в 2017 году, доступную для покупки, заменив бесплатную спецификацию, предоставленную Adobe. [14] В декабре 2020 года было опубликовано второе издание PDF 2.0, ISO 32000-2:2020, с разъяснениями, исправлениями и критическими обновлениями нормативных ссылок [15] (ISO 32000-2 не включает никаких запатентованных технологий в качестве нормативных ссылок). [16] В апреле 2023 года PDF Association сделала ISO 32000-2 доступным для бесплатной загрузки. [14]
Файл PDF часто представляет собой комбинацию векторной графики , текста и растровой графики . Основные типы контента в PDF:
В более поздних версиях PDF-документ также может поддерживать ссылки (внутри документа или веб-страницы), формы, JavaScript (первоначально был доступен как плагин для Acrobat 3.0) или любые другие типы встроенного содержимого, которые можно обрабатывать с помощью плагинов.
PDF объединяет три технологии:
PostScript — это язык описания страниц , работающий в интерпретаторе для генерации изображения. [6] Он может обрабатывать графику и имеет стандартные функции языков программирования, такие как ветвление и циклирование . [6] PDF — это подмножество PostScript, упрощенное для удаления таких функций потока управления , в то время как графические команды остались. [6]
PostScript изначально был разработан для совершенно иного варианта использования : передача односторонних линейных заданий на печать, в которых интерпретатор PostScript собирал ряд команд, пока не встречал showpage
команду, а затем выполнял все команды для отображения страницы в виде растрового изображения на печатающем устройстве. [17] PostScript не был предназначен для долговременного хранения и интерактивного отображения электронных документов на компьютерных мониторах в реальном времени , поэтому не было необходимости поддерживать что-либо, кроме последовательного отображения страниц. [17] Если в конечном печатном выводе была ошибка, пользователь исправлял ее на уровне приложения и отправлял новое задание на печать в виде совершенно нового файла PostScript. Таким образом, любая заданная страница в файле PostScript могла быть точно отображена только как совокупный результат выполнения всех предыдущих команд для отображения всех предыдущих страниц — любая из которых могла повлиять на последующие страницы — плюс команд для отображения этой конкретной страницы, и не было простого способа обойти этот процесс, чтобы перейти к другим страницам. [17]
Традиционно для перехода от PostScript к PDF исходный файл PostScript (то есть исполняемая программа) используется в качестве основы для генерации кода PDF, похожего на PostScript (см., например, Adobe Distiller ). Это делается путем применения стандартных методов компиляции, таких как разворачивание цикла , встраивание и удаление неиспользуемых ветвей, что приводит к получению чисто декларативного и статического кода. [17] Затем конечный результат упаковывается в формат контейнера вместе со всеми необходимыми зависимостями для корректного рендеринга (внешние файлы, графика или шрифты, на которые ссылается документ) и сжимается . Современные приложения пишут в драйверы принтеров, которые напрямую генерируют PDF, а не проходят сначала через PostScript.
Как формат документа PDF имеет ряд преимуществ перед PostScript:
Его недостатки:
PDF начиная с версии 1.6 поддерживает встраивание интерактивных 3D-документов: 3D-чертежи могут быть вставлены с использованием U3D или PRC и различных других форматов данных. [20] [21] [22]
Файл PDF организован с использованием символов ASCII , за исключением некоторых элементов, которые могут иметь двоичное содержимое. Файл начинается с заголовка, содержащего магическое число (в виде читаемой строки) и версию формата, например %PDF-1.7
. Формат является подмножеством формата COS (структура объектов "Карусель"). [23] Файл дерева COS состоит в основном из объектов , которых существует девять типов: [16]
(...)
) или представленные в шестнадцатеричном виде в одинарных угловых скобках ( <...>
). Строки могут содержать 8-битные символы./
)[...]
)<<...>>
)stream
и endstream
.%
Можно вставлять комментарии, использующие 8-битные символы с префиксом в виде знака процента ( ).
Объекты могут быть либо прямыми (встроенными в другой объект), либо косвенными . Косвенные объекты нумеруются с помощью номера объекта и номера поколения и определяются между ключевыми словами obj
и endobj
, если они находятся в корне документа. Начиная с версии PDF 1.5, косвенные объекты (за исключением других потоков) также могут располагаться в специальных потоках, известных как потоки объектов (отмеченные /Type /ObjStm
). Этот метод позволяет применять к непотоковым объектам стандартные потоковые фильтры, уменьшает размер файлов, которые имеют большое количество небольших косвенных объектов, и особенно полезен для тегированных PDF . Потоки объектов не поддерживают указание номера поколения объекта (отличного от 0).
Таблица индексов, также называемая таблицей перекрестных ссылок, расположена в конце файла и дает смещение байта каждого косвенного объекта от начала файла. [24] Такая конструкция обеспечивает эффективный произвольный доступ к объектам в файле, а также позволяет вносить небольшие изменения без переписывания всего файла ( инкрементное обновление ). До версии PDF 1.5 таблица всегда была в специальном формате ASCII, была помечена xref
ключевым словом и следовала за основным телом, состоящим из косвенных объектов. Версия 1.5 представила необязательные потоки перекрестных ссылок , которые имеют форму стандартного потокового объекта, возможно, с примененными фильтрами. Такой поток может использоваться вместо таблицы перекрестных ссылок ASCII и содержит смещения и другую информацию в двоичном формате. Формат является гибким в том смысле, что он позволяет указывать целочисленную ширину (используя массив /W
), так что, например, документ размером не более 64 КиБ может выделить только 2 байта для смещений объектов.
В конце PDF-файла находится нижний колонтитул, содержащий
startxref
слово, за которым следует смещение к началу таблицы перекрестных ссылок (начинающейся с xref
ключевого слова) или объекта потока перекрестных ссылок, за которым следует%%EOF
файла .Если поток перекрестных ссылок не используется, то нижнему колонтитулу предшествует trailer
ключевое слово, за которым следует словарь, содержащий информацию, которая в противном случае содержалась бы в словаре объекта потока перекрестных ссылок:
/Root
)/Size
)На каждой странице есть один или несколько потоков контента, которые описывают текст, вектор и изображения, которые рисуются на странице. Поток контента основан на стеке , подобно PostScript. [25]
Существует два макета файлов PDF: нелинеаризованный (не «оптимизированный») и линеаризованный («оптимизированный»). Нелинеаризованные файлы PDF могут быть меньше своих линейных аналогов, хотя доступ к ним медленнее, поскольку части данных, необходимые для сборки страниц документа, разбросаны по всему файлу PDF. Линеаризованные файлы PDF (также называемые «оптимизированными» или «веб-оптимизированными» файлами PDF) построены таким образом, что их можно читать в плагине веб-браузера, не дожидаясь загрузки всего файла, поскольку все объекты, необходимые для отображения первой страницы, оптимально организованы в начале файла. [26] Файлы PDF можно оптимизировать с помощью программного обеспечения Adobe Acrobat или QPDF .
Размеры страницы не ограничены самим форматом. Однако Adobe Acrobat устанавливает ограничение в 15 миллионов на 15 миллионов дюймов, или 225 триллионов дюймов 2 (145 161 км 2 ). [2] : 1129
Основная схема представления графики в PDF очень похожа на схему PostScript, за исключением использования прозрачности, которая была добавлена в PDF 1.4.
Графика PDF использует независимую от устройства декартову систему координат для описания поверхности страницы. Описание страницы PDF может использовать матрицу для масштабирования , поворота или наклона графических элементов. Ключевой концепцией в PDF является графическое состояние , представляющее собой набор графических параметров, которые могут быть изменены, сохранены и восстановлены описанием страницы . PDF имеет (начиная с версии 2.0) 25 свойств графического состояния, из которых наиболее важными являются:
Как и в PostScript, векторная графика в PDF создается с помощью контуров . Контуры обычно состоят из линий и кубических кривых Безье , но также могут быть созданы из контуров текста. В отличие от PostScript, PDF не позволяет одному контуру смешивать контуры текста с линиями и кривыми. Контуры можно обводить, заполнять, заполнять, а затем обводить или использовать для обрезки . Обводки и заливки могут использовать любой набор цветов в графическом состоянии, включая узоры . PDF поддерживает несколько типов узоров. Самым простым является узор мозаики , в котором часть рисунка указывается для многократной отрисовки. Это может быть цветной узор мозаики с цветами, указанными в объекте узора, или неокрашенный узор мозаики , который откладывает указание цвета до времени отрисовки узора. Начиная с PDF 1.3, есть также узор затенения , который рисует непрерывно меняющиеся цвета. Существует семь типов затенения, из которых наиболее простыми являются осевое затенение (тип 2) и радиальное затенение (тип 3).
Растровые изображения в PDF (называемые Image XObjects ) представлены словарями с соответствующим потоком. Словарь описывает свойства изображения, а поток содержит данные изображения. (Реже небольшие растровые изображения могут быть встроены непосредственно в описание страницы как встроенное изображение .) Изображения обычно фильтруются для целей сжатия. Фильтры изображений, поддерживаемые в PDF, включают следующие фильтры общего назначения:
Обычно все содержимое изображений в PDF встроено в файл. Но PDF позволяет хранить данные изображений во внешних файлах с помощью внешних потоков или альтернативных изображений . Стандартизированные подмножества PDF, включая PDF/A и PDF/X , запрещают эти функции.
Текст в PDF представлен текстовыми элементами в потоках содержимого страницы. Текстовый элемент указывает, что символы должны быть нарисованы в определенных позициях. Символы указываются с использованием кодировки выбранного ресурса шрифта .
Объект шрифта в PDF — это описание цифрового шрифта . Он может либо описывать характеристики шрифта, либо включать встроенный файл шрифта . Последний случай называется встроенным шрифтом , а первый — невстроенным шрифтом . Файлы шрифтов, которые могут быть встроены, основаны на широко используемых стандартных форматах цифровых шрифтов: Type 1 (и его сжатый вариант CFF), TrueType и (начиная с PDF 1.6) OpenType . Кроме того, PDF поддерживает вариант Type 3, в котором компоненты шрифта описываются графическими операторами PDF.
Четырнадцать гарнитур, известных как 14 стандартных шрифтов , имеют особое значение в документах PDF:
Эти шрифты иногда называют базовыми четырнадцатью шрифтами . [27] Эти шрифты или подходящие заменяющие шрифты с такими же метриками должны быть доступны в большинстве программ для чтения PDF-файлов, но их доступность в программе не гарантируется , и они могут отображаться правильно, только если они установлены в системе. [28] Шрифты могут быть заменены, если они не встроены в PDF-файл.
В текстовых строках символы отображаются с использованием кодов символов (целых чисел), которые сопоставляются с глифами в текущем шрифте с использованием кодировки . Существует несколько предопределенных кодировок, включая WinAnsi , MacRoman и множество кодировок для восточноазиатских языков, и шрифт может иметь свою собственную встроенную кодировку. (Хотя кодировки WinAnsi и MacRoman получены из исторических свойств операционных систем Windows и Macintosh , шрифты, использующие эти кодировки, работают одинаково хорошо на любой платформе.) PDF может указывать предопределенную кодировку для использования, встроенную кодировку шрифта или предоставлять таблицу соответствия для предопределенной или встроенной кодировки (не рекомендуется для шрифтов TrueType). [2] Механизмы кодирования в PDF были разработаны для шрифтов Type 1, и правила их применения к шрифтам TrueType сложны.
Для больших шрифтов или шрифтов с нестандартными глифами используются специальные кодировки Identity-H (для горизонтального письма) и Identity-V (для вертикального). Для таких шрифтов необходимо предоставить таблицу ToUnicode, если необходимо сохранить семантическую информацию о символах.
Текстовый документ, отсканированный в PDF-файл без распознавания текста с помощью оптического распознавания символов (OCR), представляет собой изображение без шрифтов и текстовых свойств.
Первоначальная модель изображения PDF была непрозрачной, подобно PostScript, где каждый объект, нарисованный на странице, полностью заменял все, что было ранее отмечено в том же месте. В PDF 1.4 модель изображения была расширена, чтобы разрешить прозрачность. При использовании прозрачности новые объекты взаимодействуют с ранее отмеченными объектами, создавая эффекты смешивания. Добавление прозрачности в PDF было сделано с помощью новых расширений, которые были разработаны для игнорирования в продуктах, написанных в соответствии со спецификациями PDF 1.3 и более ранними. В результате файлы, которые используют небольшое количество прозрачности, могут просматриваться приемлемо для старых просмотрщиков, но файлы, которые широко используют прозрачность, могут просматриваться некорректно для старых просмотрщиков.
Расширения прозрачности основаны на ключевых концепциях групп прозрачности , режимов смешивания , формы и альфа . Модель тесно связана с функциями Adobe Illustrator версии 9. Режимы смешивания были основаны на тех, которые использовались Adobe Photoshop в то время. Когда была опубликована спецификация PDF 1.4, формулы для расчета режимов смешивания держались Adobe в секрете. С тех пор они были опубликованы. [29]
Концепция группы прозрачности в спецификации PDF не зависит от существующих понятий «группа» или «слой» в таких приложениях, как Adobe Illustrator. Эти группировки отражают логические связи между объектами, которые имеют смысл при редактировании этих объектов, но они не являются частью модели изображения.
Тегированный PDF (см. пункт 14.8 в ISO 32000) включает в себя структуру документа и семантическую информацию для обеспечения надежного извлечения текста и доступности . [30] Технически говоря, тегированный PDF является стилизованным использованием формата, который строится на логической структуре структуры, представленной в PDF 1.3. Тегированный PDF определяет набор стандартных типов структуры и атрибутов, которые позволяют извлекать содержимое страницы (текст, графику и изображения) и повторно использовать его для других целей. [31]
Тегированный PDF не требуется в ситуациях, когда файл PDF предназначен только для печати. Поскольку эта функция является необязательной, а правила для тегированного PDF были относительно расплывчатыми в ISO 32000-1, поддержка тегированного PDF среди устройств-потребителей, включая вспомогательные технологии (AT), неравномерна по состоянию на 2021 год. [32] Однако ISO 32000-2 включает улучшенное обсуждение тегированного PDF, которое, как ожидается, облегчит дальнейшее принятие.
Стандартизированное по ISO подмножество PDF, специально ориентированное на доступность, PDF/UA , было впервые опубликовано в 2012 году.
С появлением PDF версии 1.5 (2003) появилась концепция слоев. Слои, более формально известные как группы необязательного контента (OCG), относятся к разделам контента в документе PDF, которые могут выборочно просматриваться или скрываться авторами или просматривающими документ. Эта возможность полезна в чертежах САПР, многослойных художественных работах, картах, многоязычных документах и т. д.
В основном он состоит из словаря свойств необязательного контента, добавленного в корень документа. Этот словарь содержит массив групп необязательного контента (OCG), каждая из которых описывает набор информации и каждая из которых может быть индивидуально отображена или подавлена, а также набор словарей конфигурации необязательного контента, которые дают статус (отображается или подавлен) заданных OCG.
Файл PDF может быть зашифрован для безопасности, в этом случае для просмотра или редактирования содержимого требуется пароль. PDF 2.0 определяет 256-битное шифрование AES как стандарт для файлов PDF 2.0. Справочник PDF также определяет способы, которыми третьи стороны могут определять свои собственные системы шифрования для PDF.
Файлы PDF могут иметь цифровую подпись для обеспечения безопасной аутентификации; полная информация о внедрении цифровых подписей в PDF приведена в стандарте ISO 32000-2.
Файлы PDF также могут содержать встроенные ограничения DRM , которые обеспечивают дополнительные элементы управления, ограничивающие копирование, редактирование или печать. Эти ограничения зависят от программного обеспечения считывателя, которое должно их соблюдать, поэтому предоставляемая ими безопасность ограничена.
Стандартная безопасность, обеспечиваемая PDF, состоит из двух различных методов и двух различных паролей: пароля пользователя , который шифрует файл и предотвращает открытие, и пароля владельца , который определяет операции, которые должны быть ограничены даже при расшифровке документа, которые могут включать изменение, печать или копирование текста и графики из документа, или добавление или изменение текстовых заметок и полей AcroForm. Пароль пользователя шифрует файл, в то время как пароль владельца не делает этого, вместо этого полагаясь на клиентское программное обеспечение для соблюдения этих ограничений. Пароль владельца может быть легко удален программным обеспечением, включая некоторые бесплатные онлайн-сервисы. [33] Таким образом, ограничения на использование, которые автор документа накладывает на документ PDF, не являются безопасными и не могут быть гарантированы после распространения файла; это предупреждение отображается при применении таких ограничений с помощью программного обеспечения Adobe Acrobat для создания или редактирования файлов PDF.
Даже не удаляя пароль, большинство бесплатных программ или программ для чтения PDF-файлов с открытым исходным кодом игнорируют «защиту» разрешений и позволяют пользователю печатать или копировать отрывки текста, как будто документ не ограничен защитой паролем. [34] [35] [36]
Начиная с PDF 1.5, подписи прав использования (UR) используются для включения дополнительных интерактивных функций, которые по умолчанию недоступны в определенном приложении просмотра PDF. Подпись используется для проверки того, что разрешения были предоставлены добросовестным органом, предоставляющим права. Например, ее можно использовать, чтобы разрешить пользователю: [37]
Например, Adobe Systems предоставляет разрешения на включение дополнительных функций в Adobe Reader, используя криптографию с открытым ключом . Adobe Reader проверяет, что подпись использует сертификат от уполномоченного Adobe центра сертификации. Любое приложение PDF может использовать этот же механизм для своих собственных целей. [37]
При определенных обстоятельствах, включая неисправленные системы получателя, информация, которую видит получатель документа с цифровой подписью , может быть изменена отправителем после того, как документ был подписан подписавшим. [38]
PAdES ( PDF Advanced Electronic Signatures ) — это набор ограничений и расширений PDF и ISO 32000-1 [39], делающих его пригодным для расширенных электронных подписей . Это опубликовано ETSI как TS 102 778. [40]
Файлы PDF могут иметь вложения, к которым процессоры могут получить доступ и открыть или сохранить в локальной файловой системе. [41]
Файлы PDF могут содержать два типа метаданных. [2] Первый — это словарь информации о документе, набор полей «ключ/значение», таких как автор, заголовок, тема, даты создания и обновления. Это необязательно и ссылается на Info
ключ в конце файла. Определен небольшой набор полей, который при необходимости может быть расширен дополнительными текстовыми значениями. Этот метод устарел в PDF 2.0.
В PDF 1.4 была добавлена поддержка потоков метаданных с использованием расширяемой платформы метаданных (XMP) для добавления расширяемых метаданных на основе стандартов XML, используемых в других форматах файлов. PDF 2.0 позволяет прикреплять метаданные к любому объекту в документе, например, информацию о встроенных иллюстрациях, шрифтах и изображениях, а также ко всему документу (прикрепляя его к каталогу документов), используя расширяемую схему.
Документы PDF также могут содержать настройки отображения, включая макет отображения страницы и уровень масштабирования в объекте Viewer Preferences. Adobe Reader использует эти настройки для переопределения настроек пользователя по умолчанию при открытии документа. [42] Бесплатная версия Adobe Reader не может удалить эти настройки.
Файлы PDF могут быть созданы специально для того, чтобы быть доступными для людей с ограниченными возможностями. [43] [44] [45] [46] [47] Форматы файлов PDF, используемые с 2014 года, [обновлять]могут включать теги, текстовые эквиваленты, подписи, аудиоописания и многое другое. Некоторое программное обеспечение может автоматически создавать тегированные PDF-файлы , но эта функция не всегда включена по умолчанию. [48] [49] Ведущие программы чтения с экрана , включая JAWS , Window-Eyes , Hal и Kurzweil 1000 и 3000 , могут читать тегированные PDF-файлы. [50] [51] Более того, тегированные PDF-файлы можно переформатировать и увеличивать для читателей с нарушениями зрения. Добавление тегов в старые PDF-файлы и те, которые генерируются из отсканированных документов, может представлять некоторые проблемы.
Одной из существенных проблем с доступностью PDF является то, что документы PDF имеют три различных вида, которые, в зависимости от создания документа, могут быть несовместимы друг с другом. Три вида: (i) физический вид, (ii) вид тегов и (iii) вид содержимого. Физический вид отображается и печатается (то, что большинство людей считают документом PDF). Вид тегов — это то, что используют программы чтения с экрана и другие вспомогательные технологии для предоставления высококачественного опыта навигации и чтения пользователям с ограниченными возможностями. Вид содержимого основан на физическом порядке объектов в потоке содержимого PDF и может отображаться программным обеспечением, которое не полностью поддерживает вид тегов, например, функцией Reflow в Adobe Reader.
PDF/UA , международный стандарт для доступных PDF-файлов, основанный на ISO 32000-1, был впервые опубликован как ISO 14289–1 в 2012 году и устанавливает нормативный язык для технологии доступных PDF-файлов.
Rich Media PDF — это файл PDF, включающий интерактивный контент, который может быть встроен или связан с файлом. Он может содержать изображения, аудио, видеоконтент или кнопки. Например, если интерактивный PDF — это цифровой каталог для бизнеса электронной коммерции, продукты могут быть перечислены на страницах PDF и могут быть дополнены изображениями и ссылками на веб-сайт и кнопками для заказа непосредственно из документа.
Interactive Forms — это механизм добавления форм в формат файла PDF. В настоящее время PDF поддерживает два различных метода интеграции данных и форм PDF. Оба формата сегодня сосуществуют в спецификации PDF: [37] [52] [53] [54]
AcroForms были введены в формате PDF 1.2. AcroForms позволяют использовать объекты ( например, текстовые поля , радиокнопки и т. д. ) и некоторый код ( например, JavaScript). Наряду со стандартными типами действий PDF, интерактивные формы (AcroForms) поддерживают отправку, сброс и импорт данных. Действие «отправить» передает имена и значения выбранных полей интерактивной формы на указанный унифицированный указатель ресурсов (URL). Имена и значения полей интерактивной формы могут быть отправлены в любом из следующих форматов (в зависимости от настроек флагов ExportFormat, SubmitPDF и XFDF действия): [37]
Можно отправить весь документ, а не отдельные поля и значения, как это было определено в PDF 1.4.
AcroForms может хранить значения полей форм во внешних автономных файлах, содержащих пары ключ-значение. Внешние файлы могут использовать файлы Forms Data Format (FDF) и XML Forms Data Format (XFDF). [58] [56] [59] Подписи прав использования (UR) определяют права на импорт файлов данных форм в форматах FDF, XFDF и текстовых ( CSV / TSV ) форматах, а также на экспорт файлов данных форм в форматах FDF и XFDF. [37]
В PDF 1.5 Adobe Systems представила собственный формат для форм; Adobe XML Forms Architecture (XFA). Формы Adobe XFA несовместимы с функцией AcroForms ISO 32000, и большинство процессоров PDF не обрабатывают содержимое XFA. Спецификация XFA упоминается в ISO 32000-1/PDF 1.7 как внешняя собственная спецификация и была полностью исключена из PDF с ISO 32000-2 (PDF 2.0).
Любой может создавать приложения, которые могут читать и записывать файлы PDF, не выплачивая роялти Adobe Systems; Adobe владеет патентами на PDF, но лицензирует их для безвозмездного использования при разработке программного обеспечения, соответствующего ее спецификации PDF. [60]
В ноябре 2019 года исследователи из Рурского университета в Бохуме и Hackmanit GmbH опубликовали атаки на PDF-файлы с цифровой подписью. [61] Они показали, как изменить видимое содержимое в подписанном PDF-файле, не делая подпись недействительной в 21 из 22 просмотрщиков PDF-файлов на настольных компьютерах и 6 из 8 онлайн-сервисов проверки, злоупотребляя недостатками реализации. На той же конференции они также показали, как извлечь открытый текст зашифрованного содержимого в PDF-файлах. [62] В 2021 году они показали новые так называемые теневые атаки на PDF-файлы, которые злоупотребляют гибкостью функций, предусмотренных в спецификации. [63] Обзор проблем безопасности в PDF-файлах, касающихся атак типа «отказ в обслуживании» , раскрытия информации , манипулирования данными и произвольного выполнения кода , был представлен Йенсом Мюллером. [64] [65]
Файлы PDF могут быть заражены вирусами, троянами и другими вредоносными программами. Они могут иметь скрытый код JavaScript, который может использовать уязвимости в PDF, скрытые объекты, выполняемые при открытии файла, который их скрывает, и, реже, вредоносный PDF может запускать вредоносное ПО. [66]
PDF-вложения, содержащие вирусы, были впервые обнаружены в 2001 году. Вирус, названный OUTLOOK.PDFWorm или Peachy , использует Microsoft Outlook для отправки себя в качестве прикрепленного файла Adobe PDF. Он был активирован с помощью Adobe Acrobat, но не с помощью Acrobat Reader. [67]
Время от времени в различных версиях Adobe Reader обнаруживаются новые уязвимости, [68] побуждающие компанию выпускать исправления безопасности. Другие программы для чтения PDF-файлов также подвержены уязвимости. Одним из отягчающих факторов является то, что программа для чтения PDF-файлов может быть настроена на автоматический запуск, если веб-страница имеет встроенный PDF-файл, что обеспечивает вектор для атаки. Если вредоносная веб-страница содержит зараженный PDF-файл, который использует уязвимость в программе для чтения PDF-файлов, система может быть скомпрометирована, даже если браузер защищен. Некоторые из этих уязвимостей являются результатом стандарта PDF, позволяющего использовать JavaScript для сценариев PDF-документов. Отключение выполнения JavaScript в программе для чтения PDF-файлов может помочь смягчить такие будущие эксплойты, хотя это не защищает от эксплойтов в других частях программного обеспечения для просмотра PDF-файлов. Эксперты по безопасности говорят, что JavaScript не является обязательным для программы для чтения PDF-файлов и что преимущество безопасности, которое дает отключение JavaScript, перевешивает любые вызванные проблемы совместимости. [69] Один из способов избежать эксплойтов PDF-файлов — это локальная или веб-служба, преобразующая файлы в другой формат перед просмотром.
30 марта 2010 года исследователь безопасности Дидье Стивенс сообщил об эксплойте Adobe Reader и Foxit Reader, который запускает вредоносный исполняемый файл, если пользователь разрешает его запуск по запросу. [70]
Многие просмотрщики PDF-файлов предоставляются бесплатно из различных источников. Программы для обработки и редактирования PDF-файлов доступны, обычно за плату.
Существует множество вариантов программного обеспечения для создания PDF-файлов, включая возможности печати PDF-файлов, встроенные в macOS , iOS , [71] и большинство дистрибутивов Linux . Многие программы для обработки документов, включая LibreOffice , Microsoft Office 2007 (при обновлении до SP2 ) и более поздних версий, [72] WordPerfect 9 и Scribus , могут экспортировать документы в формат PDF. Существует множество драйверов печати PDF для Microsoft Windows, система набора текста pdfTeX , инструменты DocBook PDF, приложения, разработанные на основе Ghostscript и самого Adobe Acrobat , а также Adobe InDesign , Adobe FrameMaker , Adobe Illustrator, Adobe Photoshop, которые позволяют настроить «PDF-принтер», который при выборе отправляет вывод в файл PDF вместо физического принтера. Онлайн-офисный пакет Google Docs позволяет загружать и сохранять в формате PDF. Некоторые веб-приложения предлагают бесплатные инструменты для редактирования и аннотирования PDF.
Free Software Foundation « разрабатывал бесплатный, высококачественный и полностью функциональный набор библиотек и программ, которые реализуют формат файла PDF и связанные с ним технологии в соответствии со стандартом ISO 32000», как один из своих высокоприоритетных проектов . [73] [74] Однако в 2011 году проект GNU PDF был исключен из списка «высокоприоритетных проектов» из-за развития библиотеки Poppler , [75] которая получила более широкое применение в таких приложениях, как Evince с рабочей средой GNOME . Poppler основан на кодовой базе Xpdf [76] [77] . Существуют также коммерческие библиотеки разработки, перечисленные в Списке программного обеспечения PDF .
Проект Apache PDFBox от Apache Software Foundation — это библиотека Java с открытым исходным кодом, лицензированная по лицензии Apache License , для работы с PDF-документами. [78]
Процессоры растровых изображений (RIP) используются для преобразования файлов PDF в растровый формат, подходящий для отображения на бумаге и других носителях в принтерах, цифровых производственных печатных станках и допечатной подготовке в процессе, известном как растеризация . RIP, способные обрабатывать PDF напрямую, включают Adobe PDF Print Engine [79] от Adobe Systems и Jaws [80] и Harlequin RIP от Global Graphics .
В 1993 году процессор растровых изображений Jaws от Global Graphics стал первым доставочным RIP-процессором допечатной подготовки, который изначально интерпретировал PDF без преобразования в другой формат. В 1997 году компания выпустила обновление своего RIP-процессора Harlequin с той же возможностью. [81]
В 1997 году компания Agfa-Gevaert представила и поставила Apogee — первую систему допечатной подготовки на основе PDF.
Многие коммерческие офсетные типографии принимают в качестве источника печати готовые к печати файлы PDF, в частности подмножество PDF/X-1a и его вариации. [82] Отправка готовых к печати файлов PDF является заменой проблемной необходимости получать собранные собственные рабочие файлы.
В 2006 году PDF был широко принят в качестве стандартного формата задания на печать на Open Source Development Labs Printing Summit. Он поддерживается как формат задания на печать Common Unix Printing System , а проекты настольных приложений, такие как GNOME, KDE , Firefox , Thunderbird , LibreOffice и OpenOffice, перешли на выпуск заданий на печать в формате PDF. [83]
Некоторые настольные принтеры также поддерживают прямую печать PDF-файлов, что позволяет интерпретировать данные PDF-файлов без посторонней помощи.
PDF был выбран в качестве «родного» формата метафайлов для macOS (первоначально называвшегося Mac OS X), заменив формат PICT более ранней классической Mac OS . Модель визуализации графического слоя Quartz основана на модели, общей для Display PostScript и PDF, что привело к прозвищу Display PDF . Приложение Preview может отображать файлы PDF, как и версия 2.0 и более поздние версии веб-браузера Safari . Поддержка PDF на системном уровне позволяет приложениям macOS автоматически создавать документы PDF, при условии, что они поддерживают стандартную архитектуру печати ОС. Затем файлы экспортируются в формате PDF 1.3 в соответствии с заголовком файла. При создании снимка экрана в Mac OS X версий 10.0–10.3 изображение также захватывалось как PDF; более поздние версии сохраняют снимки экрана как файл PNG, хотя при желании это поведение можно вернуть к PDF.
Adobe Acrobat — один из примеров фирменного программного обеспечения, которое позволяет пользователю комментировать, выделять и добавлять заметки к уже созданным PDF-файлам. Одно из приложений UNIX, доступных как бесплатное программное обеспечение (в соответствии с лицензией GNU General Public License ), — это PDFedit . Бесплатное программное обеспечение Foxit Reader , доступное для Microsoft Windows, macOS и Linux, позволяет комментировать документы. PDF-XChange Viewer от Tracker Software позволяет делать аннотации и пометки без ограничений в своей бесплатной альтернативе. Интегрированное в macOS средство просмотра PDF от Apple , Preview, также позволяет делать аннотации, как и программное обеспечение с открытым исходным кодом Skim , причем последнее поддерживает взаимодействие с LaTeX , SyncTeX и PDFSync, а также интеграцию с программным обеспечением для управления ссылками BibDesk . Бесплатное программное обеспечение Qiqqa может создавать отчет по аннотациям, который суммирует все аннотации и заметки, сделанные в библиотеке PDF-файлов. Инструмент проверки текста экспортирует различия в документах в виде аннотаций и пометок.
Существуют также системы веб-аннотаций , которые поддерживают аннотации в pdf и других форматах документов. В случаях, когда PDF-файлы должны обладать всеми функциями бумажных документов, требуются рукописные аннотации.
Акцент PDF на сохранении визуального вида документов на различных программных и аппаратных платформах создает проблемы для преобразования PDF-документов в другие форматы файлов и целевого извлечения информации , такой как текст, изображения, таблицы, библиографическая информация и метаданные документа . Многочисленные инструменты и библиотеки исходного кода поддерживают эти задачи. Существует несколько маркированных наборов данных для тестирования инструментов преобразования PDF и извлечения информации, которые использовались для эталонных оценок производительности инструмента. [84]
Спецификация Open XML Paper — это конкурирующий формат, используемый как язык описания страниц, так и как собственный формат диспетчера очереди печати для Microsoft Windows, начиная с Windows Vista .
Смешанный объект: Архитектура содержимого документа — конкурирующий формат. MO:DCA-P является частью Расширенного представления функций .
Пример: ISO/IEC 29500, ISO/IEC 26300 и ISO 32000 для справочной информации о форматах документов, которая недоступна всем сторонам (ссылки на фирменные технологии и торговые марки, неполный объем или неработающие веб-ссылки).
XFA пока не является стандартом ISO. Комитет настоятельно рекомендует Adobe Systems представить спецификацию XFA, XML Forms Architecture (XFA), в ISO для стандартизации Комитет обеспокоен стабильностью спецификации XFA Часть 2 будет ссылаться на XFA 3.1
Реализация стандарта U3D не была завершена, и использовались фирменные расширения.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ){{cite web}}
: CS1 maint: неподходящий URL ( ссылка ){{cite conference}}
: CS1 maint: неподходящий URL ( ссылка ){{cite web}}
: CS1 maint: неподходящий URL ( ссылка ){{cite web}}
: CS1 maint: неподходящий URL ( ссылка )— это библиотека рендеринга PDF, основанная на кодовой базе xpdf-3.0.
Xpdf распространяется по лицензии GNU General Public License (GPL) версии 2 или 3.
Для всех, кто заинтересован в коммерческой печати своего графического проекта непосредственно из цифровых файлов или PDF-файлов.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка )