PDFtk

PDFtk — компактный набор средств для объединения, разделения и перестановки страниц PDF: в бесплатной редакции PDFtk Free эти операции доступны через графическое окно Windows, а входящий в комплект PDFtk Server выполняет расширенную обработку из командной строки.

Программа рассчитана не на правку текста внутри страницы, а на работу со структурой документа. Пользователь добавляет один или несколько файлов, задаёт порядок и диапазоны страниц, после чего PDFtk создаёт новый PDF, не требуя Adobe Acrobat или Adobe Reader.

Под названием PDFtk существуют три официальные редакции одного семейства: бесплатная PDFtk Free с графическим интерфейсом, платная PDFtk Pro с дополнительными кнопками и свободно распространяемый PDFtk Server для сценариев и серверной обработки. Ниже возможности редакций разделены, чтобы функции Pro и Server не приписывались бесплатному окну.

Скачать PDFtk

Оценка 9.7 Рекомендуем
  • Редактирование PDF
  • Русский интерфейс
  • Просто новичкам
Скачать бесплатно на Windows
Лучшая альтернатива
PDFtk
Оценка 8.5
  • Интерфейс только английский
  • Поворот доступен лишь в Pro
  • Нет редактирования текста
Скачать PDFtk
Загрузка начнётся после нажатия

Что представляет собой PDFtk

Название расшифровывается как PDF Toolkit. Идея программы близка к набору настольных инструментов: электронный документ можно сшить, разобрать на части, переставить его листы, повернуть, наложить другой PDF как фон или штамп, защитить паролем, заполнить поля формы либо извлечь служебные сведения. Конкретный набор действий зависит от редакции. В PDFtk Free через окно доступны прежде всего объединение и выбор страниц. PDFtk Pro открывает дополнительные панели. PDFtk Server предоставляет самые широкие операции, но управляется командами.

Разработчиком и владельцем официальной линейки выступает Steward and Lee, LLC, сайт продукта работает под брендом PDF Labs, а с PDFtk связан автор Сид Стюард. Версия 2.02 остаётся номером классического выпуска. Это важно при поиске: рядом встречаются PDFTK Builder, PDF Chain, PDFtk4All и pdftk-java. Они используют похожее название или совместимую командную схему, однако не являются тем же графическим приложением PDFtk Free.

PDFtk устанавливается локально, поэтому это не браузерный сервис. Файлы обрабатываются на компьютере пользователя. Веб-страница нужна только для получения установщика и справки; обязательной отправки документов на удалённый сервер у программы нет. Такой режим удобен для договоров, внутренних отчётов и других материалов, которые нежелательно передавать стороннему сайту.

Главное окно PDFtk Free без добавленных документов

Редакции PDFtk и границы их возможностей

PDFtk Free

PDFtk Free — бесплатное графическое приложение для Windows. В центре окна находится таблица входных PDF, слева расположены кнопки добавления, копирования и удаления выбранной строки, а внизу — создание результата и действие после завершения. Пользователь может собрать несколько документов в один, оставить только указанные страницы, повторить диапазон, поменять порядок строк перетаскиванием и сохранить новый файл.

На форме видны также кнопки Rotate Pages, Watermark, Advanced и Secure. В бесплатной редакции они заблокированы и служат напоминанием о возможностях Pro. Наличие серой кнопки не означает, что функция доступна без лицензии. Это одна из причин, по которой обзоры PDFtk иногда противоречат друг другу: автор видит элементы интерфейса, но не отделяет видимый элемент от реально активной операции.

PDFtk Pro

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

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

PDFtk Server

PDFtk Server — командная утилита. Она входит в установку PDFtk Free и Pro для Windows, а также существует как самостоятельный компонент. По официальной документации Server умеет объединять и разделять страницы, чередовать листы, поворачивать их, шифровать выходной файл, расшифровывать входной при наличии пароля, заполнять формы данными FDF или XFDF, применять фон и штамп, читать и менять метаданные и закладки, прикреплять файлы, извлекать вложения, разбивать документ по одному листу, распаковывать и повторно упаковывать потоки, а также пытаться восстановить повреждённый PDF.

Server распространяется по GNU GPL версии 2 для установки и использования. Отдельные условия действуют, когда компания хочет включить двоичный файл PDFtk в закрытый коммерческий продукт. Обычному пользователю, который запускает утилиту у себя или пишет внутренний сценарий, важно не путать право применения программы с правом встраивать и распространять её вместе с собственным продуктом.

Установка PDFtk Free в Windows

Официальная страница предлагает установщик PDFtk Free для Windows 10 и Windows 11. Файл имеет имя pdftk_free-2.02-win-setup.exe и занимает примерно 3,5 МБ. Сам исполняемый пакет 32-разрядный, но графическая программа запускается и в 64-разрядной Windows через подсистему совместимости. Внутри устанавливаются графическое приложение и PDFtk Server.

  1. Закройте программы, которые могут обращаться к PDF, особенно если планируется заменить ранее установленную копию PDFtk.
  2. Запустите установочный EXE от имени обычного пользователя. Повышение прав требуется только для записи в системную папку.
  3. Примите лицензионные условия и оставьте стандартный каталог, если нет причины переносить приложение.
  4. Завершите установку и откройте PDFtk Free из меню Windows.
  5. Для проверки серверного компонента откройте командную строку и выполните pdftk. В ответ должна появиться краткая справка.

Если Windows показывает предупреждение SmartScreen, следует проверить имя файла, адрес страницы, размер и контрольную сумму, а не отключать защиту вслепую. Классический выпуск старше современных механизмов репутации, поэтому малое число загрузок может вызвать предупреждение даже у неизменённого файла. Надёжнее использовать прямую ссылку производителя и сверить SHA-256 с данными в download.json.

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

Удаление выполняется стандартными средствами Windows. Перед удалением стоит проверить пользовательские BAT- и PowerShell-сценарии: они могут ссылаться на полный путь к pdftk.exe. При переносе программы в другую папку такие вызовы перестанут работать, даже если графическое окно удалено корректно.

Интерфейс PDFtk Free

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

Таблица показывает имя файла, количество страниц и поле Pages to Copy. Последнее является ключевым. По умолчанию в нём указан весь документ, например 1-18. Двойной щелчок переводит ячейку в режим редактирования. В ней можно перечислить отдельные номера и диапазоны, изменить порядок, повторить страницу или взять только чётные и нечётные листы.

Слева находятся Add PDF, Copy Selection и Remove Selection. Copy Selection не копирует PDF в файловой системе: кнопка дублирует строку в списке. Это удобно, когда один документ должен появиться в результате дважды с разными диапазонами. Remove Selection удаляет только строку из задания; исходный файл на диске остаётся неизменным.

Показатель Total Output Pages помогает заметить ошибку до запуска. Если после ввода диапазона ожидается 14 листов, а счётчик показывает 13 или 15, нужно перепроверить выражение. Для больших подборок это быстрее, чем открывать результат и вручную считать страницы.

PDFtk Free со списком добавленных PDF

Добавление и упорядочивание документов

Нажатие Add PDF открывает стандартный диалог выбора. Можно добавлять файлы по одному или сформировать группу. После загрузки строка появляется в таблице, а PDFtk считывает число страниц. Если документ защищён паролем, приложение может запросить его. Без корректного пароля часть операций невозможна, поскольку PDFtk должен прочитать структуру и содержимое страниц.

Кнопка добавления PDF в рабочую область PDFtk

Порядок строк соответствует порядку блоков в будущем документе. Чтобы поменять его, строку перетаскивают мышью. У программы нет страницы предпросмотра, поэтому полезно заранее дать файлам понятные имена: 01_обложка.pdf, 02_содержание.pdf, 03_раздел.pdf. Тогда проверка списка занимает меньше времени.

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

Если один документ нужен в двух местах, выберите его строку и нажмите Copy Selection. После этого задайте каждой копии собственный диапазон. Например, первая строка может выводить страницы 1-2 как титульную часть, а вторая — страницу 18 как приложение в конце. Такой приём исключает физическое дублирование исходного PDF.

Синтаксис Pages to Copy

PDFtk использует однострочное описание последовательности страниц. Нумерация начинается с единицы. Запись 1-5 означает листы с первого по пятый включительно. Запись 5-1 разворачивает диапазон. Перечисление 1,3,7 берёт три отдельные страницы. Комбинация 1-3,8,10-12 формирует непрерывные блоки в заданном порядке.

Допустимы слова even и odd, добавленные к диапазону. Выражение 1-10even выбирает чётные страницы, то есть 2, 4, 6, 8 и 10. Выражение 1-9odd оставляет 1, 3, 5, 7 и 9. Слово end обозначает последний лист. Благодаря этому запись 4-end работает для документов разной длины.

Повторение номера допустимо. Выражение 1,1,2-4 дважды помещает первую страницу, затем добавляет вторую, третью и четвёртую. Повторение диапазона полезно для бланков, где одна и та же инструкция должна стоять перед несколькими разделами. Однако при случайном дубликате PDFtk не предупреждает пользователя: программа считает повторение сознательным.

В Server доступны обратные ссылки r1, r2 и так далее: r1 — последний лист, r2 — предпоследний. Диапазон r3-r1 означает три последних страницы. В графическом поле PDFtk Pro официальное руководство также приводит такую запись. При переносе задания в старую сборку или стороннюю оболочку следует проверить поддержку обратных обозначений на тестовом файле.

Пример диапазонов страниц в PDFtk

Примеры выражений

  • 1-end — весь документ в обычном порядке.
  • end-1 — все страницы в обратном порядке.
  • 1-10even — чётные листы первой десятки.
  • 1-9odd — нечётные листы до девятого.
  • 1,4,7-12 — первая, четвёртая и диапазон с седьмой по двенадцатую.
  • 3-1,4-end — первые три листа в обратном порядке, затем остальные начиная с четвёртого.
  • r3-r1 — три последних листа по возрастанию их фактического положения.

Запятые и дефисы должны быть обычными ASCII-символами. Длинное типографское тире из текстового редактора не распознаётся как разделитель. Пробелы лучше не добавлять, если конкретное окно не показывает их корректную обработку. При ошибке начните с простого 1-end, затем добавляйте части выражения по одной.

Объединение нескольких PDF

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

  1. Добавьте все PDF кнопкой Add PDF.
  2. Перетащите строки в требуемый порядок.
  3. Проверьте поле Pages to Copy для каждой строки.
  4. Сравните Total Output Pages с ожидаемым количеством.
  5. В списке Afterwards выберите действие после создания.
  6. Нажмите Create PDF и укажите имя нового документа.
  7. Откройте результат и проверьте границы между исходными файлами.

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

Закладки исходных документов могут объединяться в Server, когда команда cat получает целые документы без явных диапазонов. В графическом сценарии, где для каждой строки указаны диапазоны, поведение закладок нужно проверять на конкретных файлах. Если навигация критична, сохраните копию, выгрузите сведения командой dump_data и сравните закладки после операции.

Формы, подписи и интерактивные элементы требуют особой осторожности. Структурное объединение не равно сохранению юридической силы цифровой подписи. Любое формирование нового PDF обычно меняет байтовое содержимое и может сделать существующую подпись недействительной. Подписывать следует итоговый файл после всех перестановок.

Разделение и извлечение страниц

В PDFtk Free нет отдельной большой кнопки Split, однако разделение выполняется через Pages to Copy. Добавьте один документ, оставьте нужный диапазон и создайте новый PDF. Чтобы получить несколько частей, повторите операцию для каждого диапазона либо скопируйте строку и сохраните несколько заданий по очереди.

Например, документ на 120 страниц можно разделить на четыре части: 1-30, 31-60, 61-90 и 91-end. Для каждого результата задаётся отдельное имя. Бесплатное окно не создаёт сразу четыре файла по шаблону, поэтому массовое разделение удобнее делать PDFtk Server операцией burst или несколькими командами cat.

Извлечение одной страницы — частный случай: укажите 17 и сохраните новый файл. Чтобы извлечь страницы 2, 5 и 9 в один документ, используйте 2,5,9. Чтобы сохранить их как три самостоятельных PDF, потребуются три запуска или burst с последующим выбором нужных файлов.

При разделении важно различать видимый номер страницы и физический индекс. В PDF может быть нумерация римскими цифрами, пропуски или начало основного текста с номера 1 после нескольких ненумерованных листов. PDFtk обращается к физическому порядку страниц, а не к напечатанному колонтитулу. Поэтому сначала определите реальную позицию в просмотрщике.

Если диапазон выходит за конец документа, результат зависит от команды и версии: возможна ошибка или неполное выполнение. Надёжнее использовать end. Для задания со страницы 15 до конца запись 15-end безопаснее, чем предположение о последнем номере.

Действие после создания результата

Список Afterwards предлагает три практических варианта: ничего не делать, открыть новый PDF в установленном просмотрщике или показать его папку. Первый режим удобен для серии операций, второй — для немедленной визуальной проверки, третий — когда файл нужно переименовать, переместить или приложить к письму.

Выбор действия после создания PDF

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

PDFtk не заменяет существующий файл без подтверждения, однако безопаснее выбирать новое имя. Практичная схема — добавлять суффикс _merged, _pages_1-20 или дату сборки. Она позволяет вернуться к исходной версии и упрощает поиск ошибки.

После создания рекомендуется проверить не только первую и последнюю страницу, но и все места стыковки. В длинном отчёте достаточно открыть последнюю страницу каждого исходного блока и первую следующего. Если использовались обратные диапазоны или чётные и нечётные листы, нужно пролистать несколько последовательностей целиком.

Поворот страниц в PDFtk Pro и Server

В PDFtk Free кнопка Rotate Pages неактивна. В Pro она открывает направление и диапазон. Можно задать поворот на 90 градусов по часовой стрелке и применить его ко всем или выбранным листам. Повторение страницы в поле диапазона приводит к повторному повороту: два применения по 90 градусов дают 180.

В командной строке используются обозначения north, east, south, west, left, right и down. North задаёт нулевую ориентацию, east — 90 градусов, south — 180, west — 270. Left, right и down выполняют относительное изменение текущего поворота.

pdftk input.pdf cat 1-3east 4-end output rotated.pdf
pdftk A=input.pdf cat A1-5right A6-end output result.pdf

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

Если часть страницы визуально обрезана, причина может быть в различии MediaBox, CropBox и других рамок, а не в самом повороте. PDFtk сообщает геометрию через dump_data, но не предоставляет интерактивный редактор рамок. Для сложной обрезки лучше выбрать PDF Arranger, qpdf с дополнительными средствами либо полноценный редактор.

Водяной знак и штамп

PDFtk Pro и Server принимают другой PDF как графический слой. Операция background помещает первую страницу заданного файла позади содержимого каждой страницы. Операция stamp накладывает её поверх. В Pro флажок Stamp переключает режим, а поле Watermark PDF выбирает файл слоя.

Настройка водяного знака и штампа в PDFtk Pro

Для background требуется прозрачность исходной страницы. У скана фон обычно непрозрачный белый, поэтому водяной знак позади изображения не виден. В таком случае применяют stamp, но текст или рисунок штампа должен иметь прозрачный фон, иначе он закроет документ.

pdftk input.pdf background watermark.pdf output with_background.pdf
pdftk input.pdf stamp stamp.pdf output with_stamp.pdf
pdftk input.pdf multistamp pages.pdf output stamped.pdf

Обычные background и stamp используют только первую страницу файла слоя. multibackground и multistamp сопоставляют страницы по порядку; если слой короче основного документа, последняя страница слоя повторяется для оставшихся листов. Такой режим подходит для индивидуальных колонтитулов, но требует внимательной подготовки.

PDFtk не создаёт надпись водяного знака из текста. Сначала нужен PDF с нужной фразой, шрифтом, углом и прозрачностью. Для генерации такого файла можно использовать текстовый редактор, графическую программу или специальный инструмент. Затем результат подаётся PDFtk как слой.

Защита и пароли

В Pro панель Secure принимает пароль для открытия и пароль владельца, который нужен для изменения ограничений. Эти пароли выполняют разные роли. Для максимальной защиты они должны отличаться. Ограничения могут касаться печати, сборки, копирования и изменения документа.

Поля защиты PDF в PDFtk Pro

Server поддерживает 40- и 128-битное шифрование классического PDF. Для современного обмена конфиденциальными материалами этого может быть недостаточно по сравнению с новыми алгоритмами в актуальных редакторах. Кроме того, запреты на печать и копирование зависят от соблюдения правил просмотрщиком; они не равны криптографической защите содержимого.

pdftk input.pdf output protected.pdf encrypt_128bit owner_pw ownerSecret user_pw openSecret
pdftk protected.pdf input_pw openSecret output decrypted.pdf

Большинство операций с защищённым входным PDF требует пароль владельца. Если пароль владельца отсутствует, может применяться пользовательский пароль. PDFtk не предназначен для обхода неизвестной защиты. Ошибка owner password required означает, что нужно получить корректные данные у владельца документа.

Пароль, записанный прямо в BAT-файле или истории оболочки, может быть прочитан другим пользователем компьютера. Для интерактивного запуска предусмотрен режим PROMPT. В автоматизации безопаснее передавать секрет через защищённый механизм среды, ограничивать доступ к сценарию и удалять временные файлы.

Основы PDFtk Server

Командная строка строится по схеме: входные PDF, при необходимости входные пароли, операция, аргументы операции, слово output и имя результата, затем параметры шифрования, разрешений, сжатия или формы. Если операция не указана, утилита работает как фильтр над одним входным файлом.

pdftk input1.pdf input2.pdf cat output merged.pdf
pdftk input.pdf cat 1-5 9-end output selected.pdf
pdftk input.pdf burst output page_%04d.pdf

Входные файлы можно связывать с дескрипторами из заглавных букв. Запись A=one.pdf B=two.pdf позволяет затем указывать A1-7 и B2-5. Дескрипторы особенно полезны, когда у файлов разные пароли или страницы должны многократно чередоваться.

pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8-end output combined.pdf

Пути с пробелами заключают в кавычки. В Windows старой версии также полезно избегать специальных символов оболочки: амперсанд, вертикальная черта, угловые скобки и знак процента могут интерпретироваться cmd.exe до запуска PDFtk. Если имя неизбежно содержит такие символы, применяйте корректное экранирование или временно переименуйте файл.

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

Операции cat и shuffle

cat

Операция cat объединяет страницы, извлекает диапазоны, меняет порядок и одновременно может задавать поворот. Если аргументы диапазонов отсутствуют, входные документы собираются целиком в перечисленном порядке. Когда указан один файл, cat фактически используется как выбор страниц.

Квалификаторы odd и even работают и в Server. Диапазон 6-1even выдаёт 6, 4 и 2, потому что направление диапазона сохраняется. Это удобно для разворота отдельно отобранной половины двустороннего скана.

shuffle

Shuffle чередует страницы диапазонов. Типичный случай — сканер без автоподатчика двусторонних листов. Сначала сканируются нечётные стороны в прямом порядке, затем чётные в обратном. PDFtk может собрать их в правильную последовательность.

pdftk A=odd.pdf B=even.pdf shuffle A Bend-1 output collated.pdf

Перед запуском нужно убедиться, что оба файла содержат ожидаемое число листов. При нечётном количестве страниц один диапазон окажется длиннее. Последний лист может быть пустым или отсутствовать; это следует учесть при подготовке и проверке.

Shuffle не анализирует содержимое и не определяет лицевую сторону автоматически. Он выполняет формальное чередование. Если второй пакет сканировался не в обратном, а в прямом порядке, использовать Bend-1 нельзя.

Формы FDF и XFDF

PDFtk Server умеет выгружать описание полей формы, создавать шаблон FDF и заполнять PDF данными FDF или XFDF. Эта функция полезна для массового выпуска анкет, счетов и сертификатов, когда макет остаётся постоянным, а значения берутся из базы.

pdftk form.pdf generate_fdf output data_template.fdf
pdftk form.pdf fill_form values.fdf output filled.pdf
pdftk form.pdf fill_form values.fdf output flattened.pdf flatten

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

Параметр need_appearances может попросить просмотрщик сформировать внешний вид полей. Поддержка зависит от приложения. Если заполненный PDF показывает пустое поле, но значение обнаруживается при щелчке, проблема связана с appearance stream. Решение — протестировать need_appearances, обновить просмотрщик или сформировать внешний вид другим инструментом перед flatten.

Имена полей чувствительны к точному написанию. Два визуально одинаковых поля могут иметь разные внутренние имена, а одна группа радиокнопок — общее имя с разными состояниями. Перед массовым заполнением выполните dump_data_fields_utf8 и сопоставьте каждое поле с ожидаемым значением.

Метаданные, закладки и сведения о страницах

Команда dump_data читает заголовок документа, автора, тему, ключевые слова, закладки, размеры страниц, поворот и метки. Вариант dump_data_utf8 выводит текст в UTF-8. Полученный файл можно отредактировать и применить update_info или update_info_utf8.

pdftk input.pdf dump_data_utf8 output info.txt
pdftk input.pdf update_info_utf8 info.txt output updated.pdf

Формат данных строковый и строгий. Закладка описывается заголовком, уровнем и номером страницы. Ошибка уровня может сломать иерархию. Перед изменением сохраните исходный вывод, редактируйте копию и сравнивайте структуру.

Метаданные не гарантируют анонимность. Даже после удаления Author в PDF могут остаться XMP-пакет, вложения, комментарии, имена слоёв и скрытые объекты. PDFtk удобен для базовых полей, но не является полноценным средством очистки конфиденциальных следов.

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

Вложения

PDF позволяет прикреплять произвольные файлы к документу или отдельной странице. PDFtk Server добавляет их операцией attach_files и извлекает unpack_files. Это не то же самое, что визуальная вставка страницы: вложение остаётся отдельным объектом, который пользователь открывает через панель просмотрщика.

pdftk report.pdf attach_files table.xlsx notes.txt output report_with_files.pdf
pdftk report_with_files.pdf unpack_files output extracted_files

Получатель может не заметить вложение, если его просмотрщик скрывает панель. Поэтому важные документы лучше перечислить в тексте PDF. Антивирус и почтовый сервер могут блокировать исполняемые вложения. PDFtk не проверяет их безопасность.

При распаковке имена следует проверять до автоматической обработки. Документ из недоверенной среды может содержать неожиданные имена и типы файлов. Извлекайте их в отдельную папку с ограниченными правами и не запускайте автоматически.

Burst, сжатие потоков и восстановление

Операция burst создаёт отдельный PDF для каждой страницы и файл doc_data.txt со сведениями. Шаблон имени можно задавать форматной строкой. Это удобнее многократного cat, когда нужно разложить весь документ.

pdftk input.pdf burst output page_%04d.pdf

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

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

Если PDFtk сообщает Unexpected Exception или не создаёт файл, проверьте его в qpdf --check или другом валидаторе. Иногда помогает сначала переписать документ через современный инструмент, затем передать нормализованный PDF в PDFtk. Обратный порядок тоже возможен, но результат нужно сравнивать визуально.

Автоматизация в Windows

PDFtk Server особенно полезен в BAT- и PowerShell-сценариях. Команда может собирать ежедневный пакет, добавлять титульный лист, извлекать приложения или заполнять форму. Главная ценность — повторяемость: при одинаковых входах и параметрах получается одинаковая структура.

@echo off
set "PDFTK=C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe"
"%PDFTK%" "cover.pdf" "report.pdf" cat output "daily_report.pdf"
if errorlevel 1 exit /b 1
echo PDF created

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

В PowerShell аргументы удобнее передавать массивом, чтобы пробелы не разрушали строку. После выполнения проверяйте $LASTEXITCODE. Для пакетной обработки создавайте уникальные временные имена, иначе два параллельных процесса перезапишут друг друга.

Серверный процесс должен работать с минимальными правами. PDFtk читает и создаёт файлы, поэтому учётной записи достаточно доступа к рабочим каталогам. Нет необходимости давать права администратора или доступ ко всему диску.

Журнал стоит хранить отдельно от PDF. Записывайте время, имена входов, команду без паролей, код возврата и размер результата. При сбое это позволит воспроизвести операцию, не раскрывая секреты.

Типовые рабочие процессы

Сборка договора из модулей

Храните титульный лист, основную часть, приложение и реквизиты отдельными PDF. Добавьте их в Free, переставьте строки и создайте итог. Когда приложение обновится, заменяется только один модуль. Перед подписанием проверьте число листов и сформируйте окончательный PDF.

Выбор главы из учебного пособия

Добавьте один документ, в Pages to Copy укажите физический диапазон главы и сохраните новый файл. Если страницы в книге подписаны иначе, найдите реальный индекс по миниатюрам просмотрщика. Не распространяйте извлечённый фрагмент с нарушением прав автора.

Чередование односторонних сканов

Отсканируйте лицевые стороны в прямом порядке и оборотные в обратном. Запустите shuffle с дескрипторами A и B. Проверьте пары 1-2, 3-4 и последние два листа. Ошибка ориентации второго пакета заметна по нарушенной последовательности.

Добавление печати или пометки

Создайте одностраничный прозрачный PDF с пометкой. Используйте stamp, если она должна лежать сверху. Для каждого типа документа держите отдельный файл слоя. На тестовой копии проверьте, не закрывает ли штамп подписи и реквизиты.

Массовое заполнение бланков

Выгрузите поля, сформируйте FDF для каждой записи, заполните форму и при необходимости выполните flatten. Проверяйте обязательные поля до вызова PDFtk, иначе программа создаст формально корректный, но неполный документ.

Удаление лишнего листа

Если нужно исключить страницу 13 из документа на неизвестное число листов, используйте cat 1-12 14-end. Графически можно ввести тот же диапазон в Pages to Copy. После обработки убедитесь, что закладки после удалённой страницы не ведут на смещённые позиции.

Ошибки и их устранение

Команда pdftk не найдена

Причина — каталог с exe не добавлен в PATH или используется другая учётная запись. Найдите фактический путь установки и вызовите файл полностью. После изменения PATH откройте новое окно командной строки: существующий процесс не всегда получает обновлённое окружение.

Unable to find file

Заключите путь в кавычки, проверьте расширение и текущую папку. Проводник может скрывать .pdf, из-за чего реальное имя отличается. В BAT-файле относительный путь считается от рабочей папки процесса, а не обязательно от места сценария.

Owner password required

Документ защищён. Введите корректный пароль владельца или пользовательский пароль в предусмотренном случае. Не пытайтесь использовать случайные утилиты снятия защиты: это небезопасно и может нарушать права владельца.

Файл создан, но страницы не те

Проверьте физические номера, направление диапазона и порядок строк. Запись 10-1 сознательно разворачивает листы. Квалификатор even относится к номерам внутри заданного диапазона. Для сложного выражения создайте короткий тест из десяти пронумерованных страниц.

Водяной знак не виден

Скорее всего, входная страница имеет непрозрачный фон. Используйте stamp или подготовьте слой, который должен находиться сверху. Проверьте прозрачность и размер страницы слоя.

Русские символы искажены

Используйте варианты dump_data_utf8 и update_info_utf8. Для путей упростите имена и проверьте кодовую страницу оболочки. Старая нативная сборка и современный терминал могут по-разному передавать символы.

Программа зависает на крупном PDF

Подождите завершения чтения, проверьте свободное место и память. Разделите задание на блоки, исключите повреждённый файл и попробуйте Server без графического окна. Для очень больших документов современный qpdf может быть устойчивее.

После обработки вырос размер

PDFtk не оптимизирует изображения и может переписать структуру. Увеличение ожидаемо при uncompress и возможно при неэффективном исходном устройстве. Сжимайте сканы специализированным средством после проверки качества.

Цифровая подпись стала недействительной

Создание нового PDF меняет подписанные данные. Выполняйте объединение, поворот, штамп и метаданные до подписания. Если необходимо сохранить подпись исходного файла, прикладывайте его отдельно, а не перестраивайте страницы.

Совместимость и платформы

Графические PDFtk Free и Pro официально предлагаются для Windows 10 и 11. Старые каталоги перечисляют Windows XP, Vista, 7 и 8, но это описание исторического выпуска, а не гарантия современной поддержки. На новой системе следует ориентироваться на текущую страницу разработчика.

PDFtk Server заявлен для Windows, macOS и Linux. На Windows доступен официальный установщик. В Linux пакет обычно поставляет дистрибутив; в современных системах это нередко pdftk-java, совместимый порт, а не оригинальный двоичный файл 2.02. Версию и реализацию проверяют командой pdftk --version и сведениями пакетного менеджера.

Для macOS существовали установочные пакеты, но совместимость со свежими версиями системы и процессорами Apple Silicon нельзя предполагать. Пользователю требуется проверить архитектуру и подпись конкретного файла. Если нужен современный поддерживаемый CLI, практичнее рассмотреть qpdf или pdftk-java.

PDFtk работает с PDF как с контейнером страниц и объектов. Он не открывает DOCX, ODT, изображения или веб-страницы как входные документы для конвертации. Такие материалы сначала нужно преобразовать в PDF другим приложением.

Программа не является просмотрщиком. Для визуального контроля используется внешнее приложение, назначенное в системе. Не является она и OCR-средством: текст на скане останется изображением, если распознавание не выполнено отдельно.

Версия 2.02 и жизненный цикл

Классическая версия PDFtk 2.02 датирована 24 июля 2013 года. В ней добавлены и исправлены операции, которые остаются основой документации. Номер старый, однако официальный сайт продолжает предлагать установщики для Windows 10 и 11. Это сочетание требует прагматичного подхода: файл доступен у владельца продукта, но архитектура и криптография отражают время выпуска.

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

В организации стоит закрепить контрольную сумму установщика и тестовый набор. После обновления Windows или смены антивируса запускаются одинаковые операции: объединение, выбор диапазона, FDF, штамп и защищённый файл. Результаты сравниваются по числу страниц и визуально.

Чем PDFtk не является

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

Понимание границ экономит время. Если задача звучит заменить слово в договоре, PDFtk не подходит. Если нужно взять страницы 1-3 из первого файла, вставить весь второй и добавить последнюю страницу первого, это типичная задача PDFtk.

Отличие от PDFTK Builder и pdftk-java

PDFTK Builder — сторонняя графическая оболочка для Windows, которая вызывает PDFtk Server. У неё иное окно, собственные версии и разработчики. Установка Builder не равна установке PDFtk Free. Скриншоты Builder нельзя использовать как доказательство интерфейса PDFtk Free.

PDF Chain — отдельная оболочка для Linux. Она предоставляет вкладки и элементы управления над командными операциями, но не является официальной графической редакцией PDF Labs. То же относится к PDFtk4All и другим фронтендам.

pdftk-java — ручной порт логики PDFtk на Java. Его цель — сохранять разумную совместимость с оригиналом и исправлять проблемы. В современных Debian и Ubuntu команда pdftk часто предоставляется именно этим пакетом. Возможности похожи, но версия 3.x, зависимости и некоторые различия относятся к другому проекту.

При диагностике всегда фиксируйте реализацию. Сообщение об ошибке из pdftk-java нельзя без проверки переносить на PDFtk Server 2.02, а рекомендацию для GUI Pro — на Free. В этой статье графические функции Free и Pro обозначены отдельно, а команды относятся к Server.

Производительность и работа с большими документами

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

Операция не обязательно держит весь документ как растровое изображение, но библиотека всё равно требует память для структуры. На 32-разрядной Windows процесс ограничен доступным адресным пространством. Если задание упирается в память, разделите его на несколько промежуточных PDF, затем объедините их.

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

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

Антивирус может сканировать каждый созданный PDF и замедлять серию. Не отключайте защиту глобально; при корпоративной необходимости согласуйте отдельную рабочую папку и правила с администратором.

Безопасность и конфиденциальность

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

Официальный установщик следует получать по прямому адресу производителя. Сторонний каталог допустим как резерв, но файл нужно сверять по имени, размеру, SHA-256 и формату. Загрузчик с рекламными предложениями, неизвестная portable-сборка или изменённый EXE не подходят.

Пароли не должны попадать в журналы. Команду с user_pw или owner_pw может сохранить история оболочки. Для разового запуска используйте запрос, для сервера — секретное хранилище и ограниченные права.

Временные PDF могут содержать те же конфиденциальные сведения, что и итог. Храните их на защищённом диске, задавайте ограниченный доступ и удаляйте по регламенту. Простое удаление не всегда гарантирует невозможность восстановления с носителя.

После объединения проверьте вложения и метаданные. Пользователь может случайно перенести в результат служебные файлы или имя автора. PDFtk способен читать часть этих данных, но полную санитарную очистку нужно выполнять специализированным средством.

Сравнение PDFtk с аналогами

ПрограммаЛучше подходит дляГлавное ограничение
PDFtkСценарного объединения, диапазонов страниц, форм FDF, штампов и вложенийГрафическая Free-редакция ограничена, CLI требует точного синтаксиса
PDF CommanderРучного редактирования PDF в русскоязычном интерфейсеНе ориентирован на серверные команды PDFtk
PDFsam BasicНаглядного объединения, разделения, извлечения и поворотаНе заменяет операции форм и метаданных PDFtk Server
PDF ArrangerВизуальной перестановки, удаления, поворота и обрезки страницНет сопоставимого набора серверных операций
qpdfПроверки структуры, преобразований и современной автоматизацииНет простого штатного графического окна
Adobe Acrobat ProПолноценного редактирования, OCR, форм и подписейТяжелее и требует платной подписки или лицензии

Для пользователя, которому нужно визуально переставлять миниатюры и иногда удалять листы, удобнее PDF Arranger или PDFsam Basic. Для редактирования текста и работы на русском языке логичнее PDF Commander. Для глубокой проверки структуры и современных сценариев стоит рассмотреть qpdf. PDFtk остаётся сильным выбором, когда уже существуют команды, FDF-процессы или требуется компактный инструмент без загрузки файлов в браузер.

Adobe Acrobat Pro охватывает больше задач, включая OCR и содержание страницы, но это другой класс продукта. PDFtk выигрывает простотой развёртывания и предсказуемыми командами, а проигрывает в визуальном редактировании и современной криптографии.

Как выбрать редакцию PDFtk

Выбирайте PDFtk Free, если работа выполняется в Windows и сводится к объединению документов, выбору и повторению страниц. Она подходит пользователю, который не хочет писать команды, но готов задавать диапазоны числами.

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

Выбирайте PDFtk Server, если задание должно повторяться, запускаться без участия человека или использовать формы, метаданные, вложения и burst. Командную схему нужно документировать и покрывать тестами.

Выбирайте другой продукт, если критичны OCR, изменение текста, визуальная обрезка, электронные подписи, новые алгоритмы шифрования, поддержка PDF 2.0 или активные обновления. Совместное применение также возможно: PDFtk собирает структуру, а редактор выполняет правки содержания.

Практическая проверка результата

  1. Сравните число страниц с расчётом.
  2. Проверьте первый и последний лист.
  3. Откройте границы между объединёнными документами.
  4. Проверьте ориентацию всех повернутых диапазонов.
  5. Убедитесь, что водяной знак или штамп виден и не закрывает данные.
  6. Проверьте закладки, вложения и поля формы.
  7. Откройте файл в двух разных просмотрщиках.
  8. Для печати выполните пробный вывод нескольких характерных страниц.
  9. Если применялась защита, проверьте открытие с правильным и неправильным паролем.
  10. Подписывайте документ только после завершения всех структурных операций.

Автоматическая проверка может извлечь число страниц и метаданные, но не заменяет визуальный контроль. Ошибка диапазона часто создаёт технически корректный PDF, который валидатор считает исправным. Поэтому тест должен учитывать смысл документа.

Вопросы о PDFtk

Можно ли объединять файлы без Adobe Acrobat?

Да. PDFtk Server не требует Acrobat или Reader, а PDFtk Free создаёт новый документ самостоятельно. Внешний просмотрщик нужен только для открытия результата.

Есть ли русский интерфейс?

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

Можно ли редактировать предложение внутри PDF?

Нет. PDFtk работает со страницами, метаданными, формами и служебными объектами, но не предоставляет редактор абзацев, шрифтов и изображений.

Как удалить одну страницу?

В Free укажите диапазоны до и после неё. В Server примените cat, например 1-12 14-end для удаления тринадцатой страницы.

Почему кнопки поворота и пароля серые?

Они относятся к PDFtk Pro. В бесплатном окне видны, но отключены. Для тех же задач можно использовать комплектный Server из командной строки.

Сохраняются ли цифровые подписи?

Перестройка документа обычно нарушает подпись, потому что меняются подписанные байты. Выполняйте операции до подписания.

Можно ли работать в Linux?

Оригинальный Server известен как кроссплатформенный, а современные дистрибутивы часто поставляют pdftk-java под той же командой. Графические Free и Pro предназначены для Windows.

Как разделить документ на все отдельные страницы?

В Server используйте burst. В Free для массовой задачи пришлось бы многократно сохранять диапазоны, что менее удобно.

Уменьшает ли PDFtk размер сканов?

Нет. Compress и uncompress управляют потоками, но не выполняют полноценное уменьшение разрешения и качества изображений.

Можно ли восстановить повреждённый PDF?

Иногда PDFtk переписывает исправляемую структуру, но гарантии нет. Сохраните копию и сравните результат с qpdf или другим валидатором.

Чем Free отличается от Server, если Server входит в комплект?

Free даёт простое окно для объединения и диапазонов. Server запускается отдельно и предоставляет расширенные операции через команды. Наличие Server не делает заблокированные кнопки Free активными.

Можно ли запускать PDFtk на сервере без интерфейса?

Да, именно для этого предназначен PDFtk Server. У процесса должны быть минимальные права и контролируемые рабочие папки.

Почему результат отличается по размеру от суммы входов?

При записи меняется структура объектов и сжатие. Размер не обязан равняться сумме. Проверяйте качество и содержимое, а не только количество байтов.

Поддерживает ли PDFtk изображения JPG как вход?

Нет, сначала преобразуйте изображения в PDF. После этого их страницы можно объединять с другими документами.

Безопасно ли скачивать PDFtk с каталога?

Предпочтителен официальный прямой файл. Резервный кандидат допустим после сверки SHA-256, размера, формата и отсутствия рекламной оболочки.

Как PDFtk перестраивает PDF

PDF — не последовательность готовых картинок, а набор объектов, потоков, словарей, ссылок и таблиц. Страница указывает на ресурсы, шрифты, изображения, аннотации и содержимое. Когда PDFtk объединяет документы, он переносит необходимые объекты в новую структуру и обновляет связи. Поэтому операция быстрее повторной печати в виртуальный принтер и обычно сохраняет исходное качество.

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

Переписывание объектов меняет внутренние номера, порядок и таблицу ссылок. Сравнивать вход и выход простым побайтовым сопоставлением бессмысленно. Для контроля применяют число страниц, размеры страниц, текстовое извлечение, метаданные и визуальное сравнение. Контрольная сумма полезна только для подтверждения, что один и тот же выходной файл не изменился после создания.

PDFtk не растрирует страницу при cat, shuffle или rotate. Векторный текст остаётся векторным, а JPEG не должен проходить повторное кодирование только из-за перестановки. Это отличает программу от схемы открыть и напечатать в PDF, где могут исчезнуть ссылки, формы, прозрачность, закладки или цветовой профиль.

При background и stamp появляется дополнительный поток содержимого. Если исходный PDF использует сложные режимы наложения, маски или нестандартные рамки, итог может выглядеть иначе в разных просмотрщиках. Для печатного производства проверяйте не только экран, но и предварительный просмотр печати, цветоделение и размеры MediaBox, CropBox, BleedBox и TrimBox.

Flatten формы объединяет внешний вид поля со страницей. Если внешний вид не был сформирован, в результате может отсутствовать видимое значение. Поэтому сначала проверяют filled.pdf без flatten в нескольких просмотрщиках, затем выполняют заплющивание и снова сравнивают. Не удаляйте исходный шаблон и FDF, пока итог не принят.

Вложение остаётся объектом EmbeddedFile и не участвует в рендеринге страницы. Удаление видимой ссылки или значка не обязательно удаляет сам объект. Для санитарной проверки недостаточно пролистать документ: нужно выгрузить вложения и проверить структуру специализированным анализатором.

Метаданные могут храниться одновременно в Info и XMP. update_info меняет заявленные поля классического словаря, но не гарантирует синхронизацию всех копий. Если документ должен пройти процедуру обезличивания, после PDFtk требуется отдельный аудит XMP, комментариев, скрытых слоёв, вложений и инкрементальных изменений.

Надёжное проектирование сценариев

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

Не подставляйте в команду имена из внешней формы как готовую строку. Специальные символы оболочки могут изменить смысл вызова. В PowerShell используйте массив аргументов и оператор запуска, в Python — subprocess.run со списком, а не shell=True. Проверяйте, что расширение .pdf соответствует реальному формату, а не только имени.

Для каждого входа полезно получить число страниц до сборки. Ожидаемое количество результата вычисляется по диапазонам. После PDFtk число страниц извлекается снова. Такое сравнение обнаруживает пропущенный файл, неверный диапазон и неожиданно пустой документ, хотя не выявляет неправильный порядок.

Если задание состоит из нескольких этапов, каждый этап должен иметь уникальное имя и независимую проверку. Например: 10_merge.pdf, 20_stamp.pdf, 30_secure.pdf. При сбое видно, где возникла проблема. После успешной выдачи промежуточные файлы удаляются по политике хранения.

Команда и версия программы относятся к воспроизводимости. Запишите вывод pdftk --version, SHA-256 exe, параметры запуска и описание среды. Если через год результат изменится после замены реализации на pdftk-java, будет понятно, что изменился инструмент, а не входные данные.

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

Параллельные процессы не должны использовать одно имя output.pdf. Добавляйте уникальный идентификатор задания и создавайте отдельный каталог. После завершения выполняйте атомарное переименование, чтобы другой процесс не прочитал недописанный файл.

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

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

Сценарий должен быть идемпотентным: повторный запуск с теми же входами не должен случайно добавить ещё одну копию титульного листа или обработать собственный прошлый результат как новый вход. Явно отделяйте папки input, work и output и не используйте маску *.pdf без фильтра.

Тестовый набор для PDFtk

До внедрения соберите небольшой набор документов, который отражает реальные сложности. Один простой текстовый PDF проверяет базовый cat. Второй содержит кириллицу и встроенные шрифты. Третий состоит из сканов. Четвёртый имеет альбомные страницы. Пятый содержит закладки, ссылки и форму. Шестой защищён известным паролем.

Для объединения создайте ожидаемую последовательность с крупными номерами страниц. Диапазоны 3-1, 4-6even и 1,1,2 позволяют проверить обратный порядок, фильтр чётности и повторение. После каждого обновления среды сравнивайте результат с эталонным перечнем, а не только глазами.

Для shuffle подготовьте два файла по три страницы: A1, A3, A5 и A2, A4, A6 в обратном порядке. Ожидаемый результат A1, A2, A3, A4, A5, A6 легко проверить. Отдельно протестируйте нечётное число листов, чтобы определить принятую в организации схему пустой последней стороны.

Для штампа используйте прозрачный слой с метками в четырёх углах. Он показывает масштабирование, поворот и рамки. Повторите тест на A4, Letter и альбомной странице. Если метка съезжает или обрезается, нельзя применять один шаблон ко всем форматам.

Для формы подготовьте поля с латиницей, кириллицей, числом, датой, флажком, радиокнопкой и многострочным текстом. Проверьте dump_data_fields_utf8, заполнение, need_appearances и flatten. Сравните отображение в двух просмотрщиках и на печати.

Для метаданных включите автора, заголовок, тему, ключевые слова и многоуровневые закладки. После update_info_utf8 проверьте правильность UTF-8, уровни закладок и номера страниц. Ошибка может не влиять на визуальную страницу, но ухудшать навигацию.

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

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

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

Развёртывание в организации

Перед установкой определите, какая редакция нужна. Если сотрудникам достаточно объединения и извлечения страниц, разворачивается Free. Если процесс автоматический, нужен Server и документированный путь к exe. Pro устанавливается только при наличии лицензии и реальной потребности в графических дополнительных операциях.

Официальный EXE сохраняют в управляемом программном репозитории вместе с SHA-256, датой получения и страницей продукта. Это не означает свободное право повторного распространения вне организации; условия лицензии Server и пользовательского соглашения GUI рассматриваются отдельно.

Поскольку выпуск 32-разрядный и классический, его стоит тестировать после крупных обновлений Windows. Проверяются запуск GUI, вызов из cmd и PowerShell, чтение сетевых путей, кириллица, ассоциация PDF и антивирусная политика.

Не давайте всем пользователям право менять установленный exe. Каталог программы должен быть доступен для чтения и выполнения, а рабочие файлы — в пользовательских папках. Серверная учётная запись получает только необходимые каталоги.

Документация для сотрудников должна объяснять не все команды, а утверждённые операции. Для GUI достаточно схемы Add PDF — порядок — Pages to Copy — Total Output Pages — Create PDF — проверка. Для Server предоставляются готовые шаблоны с параметрами, журналом и обработкой ошибок.

Служба поддержки должна различать Free, Pro, Server и pdftk-java. В заявке фиксируются скриншот окна, вывод версии, операционная система, точная команда без пароля и безопасный тестовый PDF. Это предотвращает рекомендации для другой реализации.

При выводе программы из эксплуатации сначала найдите зависимости: BAT, PowerShell, задачи планировщика, веб-приложения и макросы. Замена exe без тестов может изменить синтаксис, шифрование, метаданные или поведение форм.

Если PDFtk входит в бизнес-процесс с юридически значимыми документами, владелец процесса утверждает порядок проверки и подписания. Программа сама не подтверждает полноту договора и не сохраняет подпись после перестройки. Технический успех команды не равен юридической корректности результата.

Переход на другой инструмент

Причиной перехода может быть необходимость новых алгоритмов шифрования, 64-разрядного процесса, активных исправлений, PDF 2.0, цифровых подписей или контейнеризации без старых зависимостей. Выбор замены начинается с перечня реально используемых команд, а не с общего списка функций.

Для cat, rotate, split и проверки структуры часто подходит qpdf. Для визуального порядка страниц — PDF Arranger или PDFsam. Для форм, OCR и редактирования содержания нужен полноценный редактор. Иногда один заменитель не покрывает весь процесс, и схема разделяется на несколько этапов.

Синтаксис нельзя заменять механически. Даже если два инструмента умеют объединять страницы, они могут по-разному переносить закладки, формы, вложения, метаданные и шифрование. Каждый тип документа из тестового набора прогоняют через старый и новый процесс.

Миграция должна сохранять исходный PDF и журнал старого результата на период сравнения. Сначала новый инструмент работает параллельно, затем результаты принимаются владельцем процесса. После переключения старый exe удаляют только когда подтверждено отсутствие зависимых задач.

pdftk-java может быть наиболее близкой заменой оригинального Server в Linux, поскольку сохраняет совместимость команд. Но это другая реализация с Java-зависимостями и собственными версиями. Её также нужно фиксировать, тестировать и обновлять отдельно.

Если главная причина использования PDFtk — простота Free, переход на тяжёлый редактор может ухудшить процесс. Необходимость модернизации следует соотносить с риском и функциями. Для локального объединения несекретных файлов проверенная старая утилита может оставаться рациональной, а для защищённых документов — уже нет.

Итог

PDFtk остаётся специализированным инструментом для структуры PDF. Бесплатное окно удобно объединяет документы и выбирает страницы; Pro добавляет несколько графических операций; Server раскрывает автоматизацию, формы, метаданные, вложения, штампы и защиту. Его сильная сторона — точные воспроизводимые правила, а не визуальное редактирование содержания.

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

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