Документы
Формат PDF: спецификация и направления
Направления в обе стороны: из PDF и в PDF, с параметрами каждого преобразования.
Спецификация PDF
| Полное имя | Portable Document Format |
|---|---|
| Разработчик спецификации | Adobe |
| Год публикации | 1993 |
| Расширение | |
| MIME-типы | application/pdf, application/x-pdf, application/acrobat |
| Тип содержимого | Двоичное |
| Альфа-канал | Есть |
| Многостраничность | Реализована |
| Стандарт | ISO 32000-2 |
| Вёрстка | Фиксированная, не зависит от устройства |
| Шрифты | Встраиваются в файл |
| Содержимое | Текст, вектор, растр, формы |
| Защита | Пароль, права доступа, подпись |
| Читающие программы | Adobe Acrobat Reader, Foxit Reader, SumatraPDF, Google Chrome, Microsoft Edge, Просмотр (macOS) |
| Документ спецификации | Открыть спецификацию |
PDF → другие форматы
Документы
| Направление | Что получится | Точность |
|---|---|---|
| .pdf.docx | Конвертация PDF в Word | приблизительная |
| .pdf.pptx | Конвертация PDF в PPTX | приблизительная |
| .pdf.txt | Конвертация PDF в TXT | близкая |
| .pdf.html | Конвертация PDF в HTML | приблизительная |
Изображения
| Направление | Что получится | Точность |
|---|---|---|
| .pdf.jpg | Конвертация PDF в JPG | близкая |
| .pdf.png | Конвертация PDF в PNG | близкая |
Таблицы
| Направление | Что получится | Точность |
|---|---|---|
| .pdf.xlsx | Конвертация PDF в Excel | приблизительная |
Электронные книги
| Направление | Что получится | Точность |
|---|---|---|
| .pdf.epub | Конвертация PDF в EPUB | приблизительная |
| .pdf.mobi | Конвертация PDF в MOBI | приблизительная |
| .pdf.azw3 | Конвертация PDF в AZW3 | приблизительная |
Векторная графика
| Направление | Что получится | Точность |
|---|---|---|
| .pdf.svg | Конвертация PDF в SVG | близкая |
Другие форматы → PDF
Документы
| Направление | Что получится | Точность |
|---|---|---|
| .docx.pdf | Конвертация Word в PDF | точная |
| .pptx.pdf | Конвертация PowerPoint в PDF | близкая |
| .doc.pdf | Конвертация DOC в PDF | близкая |
| .html.pdf | Конвертация HTML в PDF | приблизительная |
| .txt.pdf | Конвертация TXT в PDF | точная |
| .ppt.pdf | Конвертация PPT в PDF | близкая |
| .odt.pdf | Конвертация ODT в PDF | точная |
| .md.pdf | Конвертация MD в PDF | близкая |
| .rtf.pdf | Конвертация RTF в PDF | близкая |
| .odp.pdf | Конвертация ODP в PDF | точная |
Изображения
| Направление | Что получится | Точность |
|---|---|---|
| .jpg.pdf | Конвертация JPG в PDF | точная |
| .png.pdf | Конвертация PNG в PDF | точная |
| .heic.pdf | Конвертация HEIC в PDF | близкая |
| .tiff.pdf | Конвертация TIFF в PDF | близкая |
| .webp.pdf | Конвертация WebP в PDF | близкая |
| .bmp.pdf | Конвертация BMP в PDF | близкая |
Таблицы
| Направление | Что получится | Точность |
|---|---|---|
| .xlsx.pdf | Конвертация Excel в PDF | близкая |
| .xls.pdf | Конвертация XLS в PDF | близкая |
| .csv.pdf | Конвертация CSV в PDF | близкая |
| .ods.pdf | Конвертация ODS в PDF | точная |
Электронные книги
| Направление | Что получится | Точность |
|---|---|---|
| .epub.pdf | Конвертация EPUB в PDF | близкая |
| .fb2.pdf | Конвертация FB2 в PDF | близкая |
| .djvu.pdf | Конвертация DJVU в PDF | близкая |
| .mobi.pdf | Конвертация MOBI в PDF | близкая |
Векторная графика
| Направление | Что получится | Точность |
|---|---|---|
| .cdr.pdf | Конвертация CDR в PDF | приблизительная |
| .svg.pdf | Конвертация SVG в PDF | близкая |
| .ai.pdf | Конвертация AI в PDF | близкая |
| .eps.pdf | Конвертация EPS в PDF | близкая |
| .dxf.pdf | Конвертация DXF в PDF | приблизительная |
Спецификация PDF
PDF описывает не документ, а отпечаток страницы: набор графических команд с координатами в пунктах (1/72 дюйма), подмножества встроенных шрифтов и изображения-объекты. Структур «абзац», «таблица», «заголовок» файл не содержит: вместо них записан отпечаток листа, разложенный на позиционированные фрагменты. Из этого следует всё остальное: точный вывод и приблизительный разбор.
Формат стандартизован как ISO 32000 и разделён на профили под задачи. PDF/A запрещает внешние зависимости — шрифты обязаны быть встроены, прозрачность и JavaScript исключены, поэтому файл читается через десятилетия. PDF/X добавляет обязательный выходной цветовой профиль, вылеты и метки реза для типографии. Обычный PDF ничего этого не требует, и один и тот же документ у разных отправителей может весить 180 КБ и 90 МБ.
Вес определяется содержимым страниц, а не их количеством. Текстовая страница — это несколько килобайт команд плюс общий на весь документ набор глифов. Отсканированная страница — изображение целиком: при 600 dpi лист A4 даёт 4960 × 7016 пикселей и один-три мегабайта после сжатия. Отсюда практическое следствие: пересборка сканов со 150–200 dpi сокращает файл в восемь-шестнадцать раз, а растеризация текстового PDF только увеличивает его и уничтожает текстовый слой.
Три технических состояния меняют поведение конвертации. Первое — отсутствие текстового слоя: страницы-изображения нельзя разобрать без распознавания, и перевод в DOCX даст документ с картинками вместо букв. Второе — шифрование: при пароле на открытие содержимое недоступно целиком, при пароле на изменение читается, но права на извлечение могут быть отозваны. Третье — нестандартные кодировки шрифтов без таблицы ToUnicode: текст выделяется, но копируется в виде мусора, и извлечение вернёт тот же мусор.
Форматы того же класса
Остальные записи класса «Документы». Для каждой заведена своя страница с полным перечнем направлений: и от PDF, и к нему.
Вопросы по формату PDF
Какое разрешение задать при переводе страниц PDF в изображения?
Считайте от размера листа: A4 при 150 dpi даёт 1240 × 1754 пикселя, при 300 dpi — 2480 × 3508, при 600 dpi — 4960 × 7016. Просмотр на мониторе и вставка в слайд закрываются значением 150 dpi. 300 dpi — минимум для печати. 600 dpi оправданы лишь на штриховой чёрно-белой графике: чертежах, нотах, факсимиле. Площадь и вес растут как квадрат разрешения.
Почему после извлечения таблицы столбцы разъезжаются?
Границы столбцов в PDF не записаны. Есть текстовые фрагменты с координатами, а таблица восстанавливается по расстояниям между ними. Пока в таблице есть линейки, алгоритм опирается на них и ошибается редко. Таблица без линеек, с объединёнными ячейками или с переносом текста внутри ячейки разбирается по геометрии и требует проверки. Многоколоночная вёрстка ломает ещё и порядок чтения: он в файле не хранится.
Что происходит с векторной графикой при конвертации PDF в SVG?
Кривые Безье, заливки и обводки переносятся как есть — обе спецификации оперируют одними и теми же примитивами. Не переносится то, чего в SVG нет напрямую: смесевые режимы наложения, полутоновые растры для печати и цвет в CMYK, который пересчитывается в sRGB. Растровые вставки внутри страницы остаются растровыми, векторными они не становятся.