Без загрузки, 100% локально, без аккаунта

Статья

Набор PDF-инструментов в браузере: очистка, разметка и структура

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

Очистка и исправление скана

Страница, полученная со сканера или с камеры телефона, часто требует нескольких исправлений, прежде чем её стоит оставить. Инструмент поворота разворачивает страницы, попавшие боком или вверх ногами, с шагом в 90 градусов, и заменяет прежнее руководство по повороту отсканированного PDF. Инструмент выравнивания исправляет текст, лежащий под небольшим углом, что важно, если вы собираетесь потом запускать распознавание текста. Инструмент перевода в оттенки серого убирает цветовые каналы, что уменьшает размер файла и снимает лёгкий оттенок, который планшетные сканеры добавляют к белой бумаге. Инструмент восстановления честно говорит о своих пределах: он пересобирает те части повреждённого PDF, которые pdf-lib способна разобрать и пересохранить, поэтому он спасает многие файлы, которые отвергают другие программы, но не может воссоздать содержимое, которого в файле никогда не было. Используйте его как первую попытку для документа, который не открывается, а не как гарантию.

Перекошенная, мутная отсканированная страница рядом с той же страницей после выравнивания наклона и очистки в градациях серого, ровная и читаемая.

Разметка страниц

Когда документ стал читаемым, может понадобиться изменить то, как страницы располагаются на листе. Инструмент обрезки срезает поля или вырезает страницу до интересующей вас области. Инструмент изменения размера меняет размеры страницы, например с US Letter на A4, чтобы документ правильно печатался в другой стране. Инструмент n-up размещает несколько страниц рядом на одном листе, что удобно для раздаточных материалов или для экономии бумаги. Инструмент чередования постранично переплетает два файла, и обычная причина обратиться к нему такая: двусторонний скан, сделанный на одностороннем сканере, когда вы сканируете лицевые стороны в один файл, переворачиваете стопку и сканируете обороты во второй файл, а затем смешиваете их, чтобы страницы встали в исходный порядок. Ни один из этих инструментов не растрирует ваш текст, поэтому изначально цифровой PDF сохраняет выделяемый текст после изменения раскладки.

Метаданные и структура

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

Внутренняя структура PDF и таблицы XREF

PDF-файл не является линейным документом; это база данных дискретных объектов (словари, массивы, потоки и числовые значения), связанных таблицей перекрёстных ссылок (Cross-Reference, XREF) в конце файла. Таблица XREF сопоставляет каждый идентификатор объекта с его точным байтовым смещением. Некоторые настольные редакторы сохраняют изменения как инкрементное обновление: новый раздел XREF добавляется в конец файла и переопределяет только изменённые объекты, оставляя исходные байты нетронутыми внизу. Браузерные инструменты на основе pdf-lib работают иначе: они разбирают весь документ в граф объектов в памяти, применяют запрошенное изменение (например, меняют запись словаря Rotate страницы с 0 на 90), а затем полностью пересобирают файл заново как единый свежий PDF. Такая полная пересборка означает, что весь документ должен помещаться в памяти на время работы инструмента, поэтому каждый инструмент задаёт максимальный размер входного файла; при этом он никогда не отправляет ничего из этого на сервер.

Анатомия файла PDF: заголовок, объекты, таблица xref, индексирующая каждый объект по смещению в байтах, и trailer.

Сжатие потоков и принципы восстановления PDF

Содержимое страницы в PDF (команды рисования текста, векторные контуры, растровые изображения) хранится в объектах-потоках, которые почти всегда сжимаются с помощью FlateDecode (zlib). При повреждении PDF проблема обычно связана либо с нарушенной таблицей XREF, либо с усечённым сжатым потоком. Инструмент восстановления полностью обходит повреждённую таблицу XREF и выполняет линейное сканирование необработанного байтового потока в поисках маркеров obj и endobj, которые ограничивают отдельные объекты. Он извлекает эти объекты, пытается распаковать связанные потоки и заново строит корректную таблицу XREF. Если повреждение находится внутри самого сжатого Flate-потока, данные этого конкретного объекта не поддаются восстановлению: структуру документа можно восстановить, но затронутые страницы могут оказаться пустыми или без изображений.

Инструменты из этой статьи

Частые вопросы

Загружают ли эти PDF-инструменты мой файл на сервер?

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

Может ли инструмент восстановления починить любой повреждённый PDF?

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