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