Формат PDF став дуже популярний з розвитком інтернету і поширенням електронної документації, і тим, хто має справу з текстами, доводиться підбирати інструментарій, щоб відкривати файли в цьому форматі і працювати з ними. Прихильникам * nix є з чого вибирати.
Тепер можна дивитися:
Деякий час доведеться почекати, поки будуть згенеровані зображення.
Аналогічно однією командою витягуються зображення.
Щоб дізнатися інформацію про вбудовані шрифти, слід запустити утиліту pdffonts.
В контексті можна згадати про SWFTools. містить кілька конвертерів в формат SWF (Small Web Format), включаючи PDF2SWF. Єдиний момент, що пакет SWFTools в Ubuntu і деяких інших дистрибутивах не включає утиліту pdf2swf, тому її доводиться встановлювати з вихідних:
В результаті отримано SWF-файл, відкривши який в веб-браузері або програвачі побачимо періодично змінюють один одного сторінки документа. Можна обробити лише частину документа, вказавши номери обраних сторінок за допомогою опції -pages:
Якщо не вказати ім'я вихідного файлу, результат потрапить в stdout. Параметр -C дозволяє згенерувати додатковий HTTP-заголовок, що стане в нагоді при розміщенні файлу на веб-сервері.
Ще одна корисна утиліта, яка поширюється під Artistic License, - QPDF є конвертер PDF, що дозволяє проводити різні перетворення: оптимізацію для вебу, шифрування / дешифрування, верифікацію файлів, а також злиття і поділ. З її допомогою також можна створити PDF-файл програмним способом, QPDF бере на себе всі синтаксичне представлення об'єктів, створення перехресних посилань таблиці, шифрування, линеаризацию і інші деталі синтаксису.
При оновленні версії Adobe Extension Level, яке використовується при створенні PDF-файлів в хмарі компанії Adobe, часто перший час неможливо такі файли прочитати на програмах, відмінних від Adobe Reader. Тут як раз і виручає QPDF (і деякі інші утиліти огляду), досить зняти з файлу шифрування, і питання з читанням знімається. Дивимося властивості документа за допомогою pdfinfo з комплекту poppler:
Тепер з читанням проблем точно не буде. Якщо файл захищений паролем, то його слід вказати за допомогою параметра -password.
Отримуємо інформацію про фото за допомогою pdfinfoПри роботі з PDF дуже часто виникає завдання збірки файлів з частин окремих документів або зміни окремих параметрів, таких як розмір листа або орієнтації (книжкова або альбомна). Нескладні скрипти дозволяють зробити все необхідне буквально однією командою, але для початку слід розібратися з базовими утилітами.
Утиліти pdfseparate і pdfunite з poppler дозволяють витягати окремі сторінки і об'єднувати документи. Причому серед інших описаних далі вони найпростіші у використанні, так як не мають великої кількості опцій, і з їх роботою легко розібратися. Наприклад, витягаємо сторінки з 10-ї по 20-ю і зберігаємо їх в окремий документ:
В імені змінна. обов'язкова, так як pdfseparate вміє зберігати сторінки тільки в окремі файли. Замість нього буде підставлений номер сторінки, тобто в нашому випадку отримаємо файли з ім'ям file-10.pdf ... file-20.pdf. Якщо все ж потрібен єдиний документ, то на допомогу приходить pdfunite. Зберемо сторінки 10 і 11 в один документ:
У QPDF дуже багато параметрів і можливостей, це практично універсальна утиліта для обробки файлів формату PDF, причому багато операцій виконуються однією командою. Наприклад, можемо зберегти в окремий файл потрібні сторінки одного або декількох джерел:
Іноді потрібно просто порівняти дві версії PDF-файлу - текст, малюнки, вкладення. Тут допоможуть дві прекрасні утиліти: diffpdf і comparepdf. У найпростішому випадку:
На виході отримаємо відміну. Якщо файли однакові, то команда нічого не видасть (опція «-v 2» зробить її трохи болтливей). Diffpdf є GUI-програму, що дозволяє провести посторінкову звірку документа. У разі відсутності розбіжності, після запуску будуть показані порожні поля.
Порівняння документів в diffpdfПри необхідності в diffpdf можна задати діапазони перевірки. Це корисно, якщо, наприклад, в документ додана сторінка, а тому посторінкова перевірка після неї точно покаже невідповідність.
Не всім користувачам подобається розбиратися з численними параметрами і експериментувати, деякі вважають за краще просто вибрати потрібні операції в GUI. Немає проблем. PDF-Shuffler - невелике Python-GTK додаток до Python-бібліотеці pyPdf. надає всі функції для роботи з PDF: витяг, злиття, обрізку, шифрування / дешифрування та інше. Програма є в репозиторії дистрибутивів:
Інтерфейс не локалізований, але все, що потрібно після запуску, - це кинути файли у вікно програми, а після того, як будуть відображені всі сторінки документа, за допомогою меню видаляємо, обрізаємо, повертаємо, експортуємо потрібні. Якщо потрібно зробити операцію з кількома сторінками відразу, то просто відзначаємо їх, утримуючи клавішу Ctrl, після чого зберігаємо результат в новий документ. Швидко і дуже зручно. Правда, як бачимо, PDF-Shuffler використовує далеко не всі можливості бібліотеки, немає, наприклад, оптимізації та шифрування / дешифрування, не можна виконувати інші перетворення на зразок зміни розміру листа. Тому повністю консольні утиліти він не замінює. До речі, pyPdf, на якому базується PDF-Shuffler, вже не розвивається і сьогодні в дистрибутивах, буває, заміщається Форком PyPDF2. який повністю сумісний з оригіналом плюс містить кілька нових методів.
PDF-Shuffler дозволяє легко прибрати все зайве з документаКрос-платформна утиліта PDFsam - PDF Split And Merge. написана на Java, вміє поєднувати, розрізати і повертати документи PDF. А в режимі burst генерує зі сторінок PDF окремі файли. У репозиторії далеко не остання і дуже глючная версія. Нові релізи вже позбавлені багатьох недоліків, тому краще ставити з офіційного сайту, але доведеться трохи покомпіліровать, так як без оплати розробники пропонують тільки збірку під Win і вихідні тексти.
редагування PDF
PDF сам по собі складний формат, призначений для видавничої продукції, що вимагає спеціальних інструментів для створення та редагування. І * nix-користувачам є з чого вибирати. Створити PDF-документ можна в Open / LibreOffice, а щоб отримати можливість редагування, слід встановити розширення Oracle PDF Import Extension. Крім цього, доступні спеціальні додатки - PDFedit. Scribus і Master PDF Editor. Серед них Scribus - дуже потужна програма з безліччю функцій, що вимагає часу на освоєння.
Master PDF Editor - досить простий інструмент, який розповсюджується безкоштовно для некомерційного використання. PDFedit дозволяє проводити будь-які операції по внесенню виправлень у PDF-документи. Засоби дають можливість редагувати текст і графіку, але не дружать з таблицями. Можлива автоматизація за допомогою ECMAScript-скриптів. На жаль, PDFedit, що використовує Qt 3, в поточній версії Ubuntu прибраний через відсутність підтримки пакета libqt3-mt, а спроба установки не завжди вдала. Версія на Qt 4 поки знаходиться в стадії розробки.
В контексті роботи з PDF утиліту PDFtk Сіда Стюарда (Sid Steward) хотілося б виділити особливо. Це навіть не утиліта, а комбайн «все в одному», що дозволяє розділити або об'єднати декілька документів в один, розшифрувати / зашифрувати PDF-файл, додати або видалити вкладення, заповнити форми, відновити пошкоджені документи і багато іншого. Взагалі, розробники пропонують кілька рішень, основа всіх - консольна утиліта PDFtk Server, про яку мова далі. Для користувачів Win розробники пропонують GUI. Плюс доступні ще дві утиліти: GNU Barcode Plus PDF для генерації штрих-коду в PDF-файл і платний STAMPtk, що генерує водяні знаки і колонтитули в PDF-файлі. Пакет PDFtk вже є в репозиторіях дистрибутивів, тому з установкою проблем немає. Разом з командою слід вказати ім'я вхідних і вихідного файлу (підтримується маска), команду і параметри. Всього підтримується 18 команд, всі вони описані в документації. Наведу лише кілька прикладів, достатніх для розуміння суті роботи з PDFtk. Наприклад, команда cat дозволяє об'єднати кілька файлів в третій - outfile.pdf:
Якщо файлів багато, то простіше зібрати їх в одному каталозі і використовувати маску * .pdf. Окремі сторінки вирізаються просто зазначенням їх номерів після cat:
Причому, якщо файлів декілька, для кожного задаються свої сторінки, при необхідності змінюється орієнтація.
У прикладі з документа in1.pdf буде залучена перша сторінка, яка буде повернута на 90 градусів. З другого документа витягуються тільки парні сторінки в діапазоні 2-20. Парність можливо вказати як even (парний) або odd (непарний), поворот вказується як north, south, east, west, left, right або down. Останню сторінку документа можна вказати за допомогою ключового слова end. Діапазон вказується або прямо, як в прикладі, або реверсно (наприклад, end-1). Щоб розкласти PDF на сторінки, використовується команда burst.
В результаті отримаємо кілька документів виду out001.pdf. Іноді потрібно підправити метадані, залишені в PDF-якою іншою програмою. За допомогою PDFtk це зробити легко. Для початку витягаємо вихідні дані:
Дешифрування PDF, про яку ми говорили вище, справа однієї команди:
PDFtk - універсальна утиліта для роботи з PDFПокажи цю статтю друзям: