Portable Document Format


Portable Document Format (PDF) — межплатформенный открытый формат электронных документов, изначально разработанный фирмой Adobe Systems с использованием ряда возможностей языка PostScript. В первую очередь предназначен для представления полиграфической продукции в электронном виде. Для просмотра существует множество программ, а также официальная бесплатная программа Adobe Reader. Значительное количество современного профессионального печатного оборудования имеет аппаратную поддержку формата PDF, что позволяет производить печать документов в данном формате без использования какого-либо программного обеспечения. Традиционным способом создания PDF-документов является виртуальный принтер, то есть документ как таковой готовится в своей специализированной программе — графической программе или текстовом редакторе, САПР и т. д., а затем экспортируется в формат PDF для распространения в электронном виде, передачи в типографию и т. п.

PDF с 1 июля 2008 года является открытым стандартом ISO 32000.

Формат PDF позволяет внедрять необходимые шрифты (построчный текст), векторные и растровые изображения, формы и мультимедиа-вставки. Поддерживает RGB, CMYK, Grayscale, Lab, Duotone, Bitmap, несколько типов сжатия растровой информации. Имеет собственные технические форматы для полиграфии: PDF/X-1a, PDF/X-3. Включает механизм электронных подписей для защиты и проверки подлинности документов. В этом формате распространяется большое количество сопутствующей документации.

Общие сведения

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

Информационные объёмы двух одинаково выглядящих на экране PDF-документов могут значительно отличаться в зависимости от:

  • внедрения или связывания шрифтов и мультимедиа;
  • разрешения растровых изображений;
  • использования встроенного механизма сжатия всего документа;
  • используемых алгоритмов сжатия растровых изображений.

Для создания документа минимального объёма необходимо использовать векторную графику и «безопасные» шрифты. Всего имеется 14 таких шрифтов:

  • Times (v3) (обычный, курсив, полужирный и полужирный курсив)
  • Courier (обычный, наклонный, полужирный и полужирный наклонный)
  • Helvetica (v3) (обычный, наклонный, полужирный и полужирный наклонный)
  • Symbol
  • Zapf Dingbats

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

Существует технология MRC (Mixed Raster Content), которая приближает возможности PDF к возможностям формата DjVu по хранению сканированных изображений с текстом.

Редактирование PDF

Существуют специальные программы, позволяющие редактировать PDF-файлы, однако их выбор значительно меньше, чем программ для создания или просмотра PDF-документов. Inkscape, начиная с версии 0.46, позволяет редактировать PDF благодаря использованию на промежуточном этапе программы Poppler. В 2017 году функциональность по редактированию PDF была поддержана в российской программе ABBYY FineReader, ранее специализировавшейся только на распознавании и конвертировании PDF в другие форматы.

История

В первое время существования данный формат был крайне непопулярен:

  • программное обеспечение компании Adobe для чтения и создания PDF было платным;
  • в PDF отсутствовала поддержка внешних ссылок, что делало его практически бесполезным во всемирной паутине;
  • PDF-документы были большего размера по сравнению с обычным текстом, что означало более длительную загрузку на медленных модемах, широко использовавшихся в те времена;
  • на слабых машинах отображение PDF-документов осуществлялось с заметными задержками;
  • существовало несколько конкурирующих форматов, таких, как Envoy, Common Ground Digital Paper, Farallon Replica; даже собственный PostScript являлся конкурентом.

После того как Adobe выпустила бесплатную версию Acrobat Reader (позднее переименованную в Adobe Reader) для чтения PDF-документов, популярность этого формата стала возрастать. Формат PDF-файлов несколько раз изменялся и продолжает эволюционировать. Существует несколько спецификаций формата, последовательно расширяющих друг друга. Для каждой новой спецификации создаются новые версии программного обеспечения из пакета Adobe Acrobat. Ниже показана таблица соответствий версий документов и версий программ, в которых впервые была введена поддержка этих документов. Версию любого PDF-документа можно узнать по первым восьми байтам, открыв этот документ в текстовом режиме, например в блокноте.

Версии Adobe PDF

Программы для работы с PDF

Чтение

Свободные:

  • MuPDF
  • Evince
  • Okular
  • KPDF (разработка прекращена)
  • SumatraPDF
  • Mozilla Firefox
  • Atril Document Viewer
  • Xpdf
  • Ghostview из пакета Ghostscript

Проприетарные:

  • Adobe Reader
  • ABBYY FineReader
  • Foxit Reader
  • Google Chrome
  • PDF-XChange Viewer
  • PDFMaster
  • STDU Viewer
  • Nitro Reader

Редактирование

Свободные:

  • PDFmod (только Linux-системы)
  • PDFsam
  • OpenOffice Writer
  • LibreOffice Draw
  • Pdftk

Проприетарные:

  • Adobe Acrobat
  • ABBYY FineReader
  • Master PDF Editor
  • Microsoft Word 2013 и новее
  • FlexiPDF
  • PDF-XChange Viewer (частично)
  • Foxit PhantomPDF
  • Nitro Pro

Библиотеки для работы с PDF

C

Свободные:

  • Haru

Проприетарные:

  • Adobe PDF Library SDK

C++

Свободные:

  • PoDoFo
  • Poppler
  • QPDF

Java

Свободные:

  • Apache PDFBox — создание документов, слияние или разделение документа(ов), извлечения текста или другого контента из документа, печать, электронная подпись.
  • ICEpdf — просмотр и печать документов, преобразование в изображение, извлечения контента, поиск в документе.

Проприетарные:

  • jPedal — просмотр и обработка документов, извлечения контента.

PHP

Свободные:

  • pdfparser — библиотека PHP для синтаксического анализа PDF файлов и извлечения таких элементов, как текст.