Поиск текста в pdf linux

Обновлено: 03.07.2024

Необходимо в каталоге найти файлы содержащие определенную фразу. Как это сделать? Думаю, многие не раз сталкивались с подобной проблемой, как необходимость найти в папке с файлами (а порой и подпапками, в которых тоже хорошо бы поискать) файл, зная кусочек его текста (ну, или догадываясь о нем). Я тоже много раз спотыкался об эту нужда и вот, наконец, собрался и написал небольшой скрипт на bash, выполняющий эту задачу. Не самой общераспространенной задачей, но всё же имеющей место быть, является поиск исполняемого файла программы. Она воспринимает в качестве параметра имя программы, а после выполнения выводит в терминал список с расположением одновременных файлов. Иногда может понадобится найти файл, в котором содержится определённая строчка или найти строку в файле, где есть нужное слово. В Linux всё это делается с помощью одной весьма простой, но в то же время мощной утилиты grep. С её помощью можно искать не только строчки в файлах, но и фильтровать вывод команд, и много чего ещё.

Linux поиск по содержимому файлов командой grep

Часто возникают ситуации, что нужно найти какой-нибудь текст, но вы не помните, в каком файле/файлах он содержится. Секрет популярности — её мощь, она отдает возможность пользователям сортировать и фильтровать текст на основе сложных правил.

Команда grep (расшифровывается как global regular expression print) — одна из самых востребованных команд в терминале Linux, которая входит в состав проекта GNU.

В этом варианте для поиска по содержимому файлов в каталоге можно использовать утилиту grep:

grep -r -n «text» /path

grep -r "Строчка для поиска"
grep -rl $'\xEF\xBB\xBF'

где:
-n показывает строку, где был найден фрагмент;
-r осуществляет розыск рекурсивно, в файлах в самом каталоге /path и в его подкаталогах;

Также можно приплюсовать опцию -C 3, чтобы видеть +- 3 строки вокруг (выше и ниже от найденной).

Дабы найти файл по его содержимому во всех Linux — подобных ОС, достаточно использовать утилиту find.

Linux поиск по содержимому файлов командой find

Своего рода швейцарским ножом в розыске файлов является команда find. Отметим, что она имеет множество опций, которые смогут кардинально изменять механизм поиска. Мы изложим лишь основные принципы, а с остальными способностями ознакомьтесь в справке по команде. Базовый принцип использования find состоит в указании папки поиска и опций. Например, выражение «find

/ -name *.cpp» осуществит поиск файлов, имеющих продолжение «cpp» по всем каталогам, находящимся в личной директории пользователя.

/usr/bin/find /папка -type f -exec grep -H 'строчка для поиска' <> ;

find /var/www/ -name "file.conf"
find /var/www/ -name "*.conf"

С поддержкою опции -exec каждому файлу, предназначенному для установки соответствия, можно добавить случайную обработку. Таким образом, появляется возможность осуществления поиска, как по имени файла, так и по охватываемому. Ниже приводится пример комбинирования команды find и grep за счет использования функции -exec.

/ -name *.cpp -user 'my-username' -group 'my-group'
find

/ -name '*.config' -type f -exec grep 'user' <> \;
find /home/ ( -name "*.php" -or -name "*.html" -or -name "*.js" )
-exec grep -lHEi $'\xEF\xBB\xBF' <> ;

А возможно и еще проще

Linux поиск по содержимому файлов командой which

Бригада which ищет только те файлы, у которых есть право на выполнение как программы. Розыск осуществляется по директориям, заданным в переменной окружения PATH. Содержимое переменной PATH сможет отличаться для различных пользователей. Чтобы охватить как можно большее количество системных директория, необходимо войти в систему под учетной записью администратора.

which cat
/bin/cat
which docker-stack
/home/username/.local/bin/docker-stack

Linux поиск по содержимому файлов командой locate

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

Команда locate представляется альтернативой для find.

Данная команда, как правило, работает быстрее и может с легкостью производить поиск (в широком смысле — стремление добиться чего-либо, найти что-либо; действия субъекта, направленные на получение нового или утерянного (забытого): новой информации (поиск информации), данных,) по всей файловой системы. Linux имеет специальную команду grep, какая принимает шаблон для поиска и имя файла (именованная область данных на носителе информации). В случае нахождения совпадений, они будут выведены в терминал. В всеобщем виде выражение можно составить как «grep шаблон_поиска имя_файла». Чтобы отыскать файлы с помощью команды locate, просто используйте следующий синтаксис:

К образцу, чтобы возвращать только файлы, содержащие сам запрос, вместо того чтобы вводить каждый файл, который содержит запрос в ведущих к нему каталогах, можно утилизировать флаг –b (чтоб искать только basename, базовое имя файла):

Команды find и locate – отличные инструменты для поиска файлов в UNIX‐подобных операционных системах. Любая из этих утилит имеет свои преимущества. Мы рассмотрели использование команд для поиска и фильтрации вывода бригад в операционной системе Linux. При правильном применении эта утилита станет мощным инструментом в ваших руках. Несмотря на то, что команды find и locate сами по себе очень мощны, их действие возможно расширить, комбинируя их с другими командами. Научившись работать с find и locate, попробуйте чистить их результаты при помощи команд wc, sort и grep.

Найти слово в PDF

Документы PDF используются в течение долгого времени, поскольку они совместимы со многими программами из-за их веса и качества, а также теоретически их нельзя редактировать. Многие пользователи думают, что, говоря "не редактируемый", это тоже невозможно. поиск слова или фразы в PDF. Это неправда, или это не так, если только то, что находится в PDF, не является фотографией, что мы можем видеть, например, в комиксах. В этом посте мы покажем вам простой процесс.

Поиск слова или фразы в PDF - это вопрос, который задают многие пользователи. Многие заинтересованы в выполнении этого типа поиска из веб-браузера, и это может быть по двум причинам: PDF-файлы связаны с браузером или потому, что PDF-файлы обычно находятся в Интернете, где они хотят что-то найти. Как бы то ни было, в этой статье мы объясним как выполнять эти поиски в Firefox, а также в двух программах просмотра текста: Okular (Kubuntu) и программе просмотра Ubuntu.

Найдите текст в PDF-файле с помощью Firefox

Здесь я обращаюсь ко всем пользователям, которые уже знают, как это делать, а их будет немало. Да, процесс прост, но есть сомнения. Этот пост предназначен для всех, у кого есть эти сомнения, хотя это правда, что это очень просто. И чтобы найти текст в PDF-файле, открытом в Firefox, вам просто нужно используйте сочетание клавиш Ctrl + F и добавьте текст в текстовое поле, которое появляется слева внизу.

Найдите текст в PDF с помощью Firefox

Ctrl + F - это сочетание клавиш, которое работает во многих различных программах. Буква F означает «найти», но в некоторые программы также похожи на Ctrl + B, от "искать" на испанском. При нажатии на ярлык в нижней левой части появляется текстовое поле, а справа - параметры для выделения всего, мы можем запросить буквы верхнего и нижнего регистра, полные слова и многое другое. Справа мы увидим общее количество совпадений. Чтобы перейти от одного к другому, все, что вам нужно сделать, это коснуться стрелок справа от текстового поля. Нажатие Enter также будет переходить от одного к другому, но всегда вперед.

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

Как найти текст в PDF с помощью средства просмотра Ubuntu


El Средство просмотра документов Ubuntu позволяет нам искать в PDF-файлах двумя способами: с помощью сочетания клавиш Ctrl + F или путем нажатия на увеличительное стекло. Увеличительное стекло более интуитивно понятно, поскольку нет необходимости знать или запоминать какой-либо ярлык. Как и в Firefox и Okular, которые я прокомментирую ниже, текстовое поле не всегда присутствует, но оно появляется при нажатии на увеличительное стекло или при использовании ярлыка. На самом деле, в зависимости от разрешения экрана, стоит увеличить масштаб, чтобы хорошо рассмотреть документ. Это делается из раскрывающегося меню рядом с увеличительным стеклом. На предыдущем изображении это 150%, и у меня еще оставалось свободное место по бокам.

Как искать с Okular, программой просмотра Kubuntu

Искать слово в PDF с помощью Okular
Искать слово в PDF с помощью Okular2

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

Зная мир Linux, я не тестировал это в других версиях, но я полностью убежден, что вы можете искать текст в PDF с помощью сочетания клавиш Ctrl + F, Ctrl + B, щелкнув значок (например, увеличительное стекло в Ubuntu) или из меню, например «Изменить в Okular». И если проблема в том, что PDF-файлы связаны с Firefox или Chrome, и вы не хотите, чтобы это было так, вам просто нужно изменить программу по умолчанию в настройках или в параметрах, которые появляются, когда вы щелкаете по ней правой кнопкой мыши. .

Вы уже знаете, как искать слово или фразу в PDF-документе?


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » Ubuntu » Учебники » Как искать слово или фразу в PDF-файле в Ubuntu


Формат PDF стал очень популярен с развитием интернета и распространением электронной документации, и тем, кто имеет дело с текстами, приходится подбирать инструментарий, чтобы открывать файлы в этом формате и работать с ними. Сторонникам *nix есть из чего выбирать.

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

Сам Adobe также выпускает версию Adobe Reader для UNIX, но она давно не обновлялась и вряд ли представляет какой-то интерес. В большинстве дистрибутивов Linux по умолчанию установлена какая-то из программ для чтения PDF-файлов, поэтому проблем с этим нет. В Ubuntu и клонах это одна из лучших и в то же время очень простых программ Evince, разрабатываемая в рамках проекта GNOME, но она отлично работает и с любым другим оконным менеджером. Evince поддерживает просмотр — PDF, DjVu, TIFF, PostScript, DVI, XPS, SyncTex, Сomics Books (cbr, cbz, cb7, cbt) и презентации в формате ODP. Открывает зашифрованные документы PDF. Реализован поиск по документу, несколько вариантов отображения структуры документа (древовидная, миниатюры страниц и другие), что позволяет быстро найти нужную. Для PDF и DVI можно выделить нужный фрагмент текста и скопировать его в буфер обмена, произвольный участок страницы сохраняется в картинку. Есть возможность установки закладок, запуска в режиме презентации и полноэкранном, вывод по одной или по две страницы, зуминг и поворот страницы. Каждый документ открывается в новом окне; если их много, это бывает неудобно. В целом весьма хороший просмотрщик для PDF-файлов, не сильно требующий ресурсов.

Evince — простой и удобный просмотрщик PDF

Evince — простой и удобный просмотрщик PDF

В репозитории можно найти еще несколько альтернатив. Наиболее современный из них — универсальный просмотрщик документов от проекта KDE Okular, кроме PDF поддерживающий PostScript, DjVu, CHM, XPS, ePub, CHM и некоторые другие форматы. По функциям он превосходит Evince, больше всяких возможностей по просмотру и навигации, есть даже настройки производительности, позволяющие установить оптимальный режим вывода документа в зависимости от мощности компьютера.

Плюс целый ряд легких просмотрщиков с минимальным интерфейсом, но не уступающих функционально, — ePDFviewer, XPDF, MuPDF, Zathura и другие. Например, Zathura и MuPDF вообще не имеют кнопок, управляются при помощи клавиш (все они описаны в man), а программы весят меньше сотни килобайт и летают даже при загрузке больших документов. В Zathura возможно сохранить текущую страницу в графический файл или сохранить изображение в буфер обмена.

С графической средой в общем все понятно, но бывает, что PDF-файл нужно прочитать в консоли, а ничего под рукой нет. Здесь два варианта — специальный просмотрщик, использующий framebuffer, и конвертирование файлов в другой формат (текстовый или HTML). Для первого случая нам понадобится просмотрщик изображений через фреймбуфер fbi и один из вьюверов PDF — fbgs (Framebuffer Ghostscript Viewer), который входит в состав пакета fbi или аналогов — FBPDF, JFBPDF. Кроме PDF, fbgs поддерживает и DjVu. Принцип работы прост — из страниц документа автоматически генерируется изображение, которое и выводится в консоль. Но нужно учесть, что работает этот способ для реальной консоли, в эмуляторе терминала запуск приведет к ошибке. Установка:

Для просмотра пользователь должен быть добавлен в группу video:

Теперь можно смотреть:

Некоторое время придется подождать, пока будут сгенерированы изображения.

В большинстве программ с GUI PDF поддерживается при помощи библиотеки poppler, которая, в свою очередь, базируется на коде популярного просмотрщика xpdf. Кроме собственно библиотеки, проект предлагает 11 консольных утилит для работы с PDF-файлами, которые позволяют конвертировать PDF во всевозможные форматы (текст, HTML, PPM, PS, PNG, JPEG, SVG) и извлекать заголовок, вложения, рисунки и шрифты. Конвертеры pdftohtml и pdftotext как раз подходят для чтения файлов в консоли. В Ubuntu, как правило, эти утилиты уже установлены. Если выполнить, не указав имя выходного файла, или вывести на стандартный вывод, то в текущем каталоге будет создан файл с аналогичным именем и расширением txt или html, который затем можно открыть в любом редакторе или консольном браузере (например, Links или ELinks). Или просто прочитать:

К слову, файловый менеджер Midnight Commander в некоторых дистрибутивах позволяет просматривать PDF-файлы. За это отвечает скрипт /usr/lib/mc/ext.d/doc.sh (описывается в /etc/mc/mc.ext). Если его просмотреть, то увидим, что по умолчанию файл конвертируется в текстовый как раз при помощи pdftotext и затем выводится на экран. Хотя возможны и другие варианты, поэтому стоит заглянуть в doc.sh.
Утилиты из poppler покрывают почти все основные форматы для конвертирования и некоторой обработки PDF-файлов. Так, PDF-файлы могут содержать вложения, утилита pdfdetach позволяет просмотреть их список и извлечь:

Аналогично одной командой извлекаются изображения.

Чтобы узнать информацию о встроенных шрифтах, следует запустить утилиту pdffonts.
В контексте можно вспомнить о SWFTools, содержащем несколько конвертеров в формат SWF (Small Web Format), включая PDF2SWF. Единственный момент, что пакет SWFTools в Ubuntu и некоторых других дистрибутивах не включает утилиту pdf2swf, поэтому ее приходится устанавливать из исходников:

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

Еще одна полезная утилита, распространяемая под Artistic License, — QPDF представляет собой конвертер PDF, позволяющий производить различные преобразования: оптимизацию для веба, шифрование/дешифрование, верификацию файлов, а также слияние и разделение. С ее помощью также можно создать PDF-файл программным способом, QPDF берет на себя все синтаксическое представление объектов, создание перекрестных ссылок таблицы, шифрование, линеаризацию и другие детали синтаксиса.

При обновлении версии Adobe Extension Level, которое используется при создании PDF-файлов в облаке компании Adobe, часто первое время невозможно такие файлы прочитать на программах, отличных от Adobe Reader. Здесь как раз и выручает QPDF (и некоторые другие утилиты обзора), достаточно снять с файла шифрование, и вопрос с чтением снимается. Смотрим свойства документа при помощи pdfinfo из комплекта poppler:

Теперь с чтением проблем точно не будет. Если файл защищен паролем, то его следует указать при помощи параметра --password.

Получаем информацию о файле при помощи pdfinfo

Получаем информацию о файле при помощи pdfinfo

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

Утилиты pdfseparate и pdfunite из poppler позволяют извлекать отдельные страницы и объединять документы. Причем среди других описанных далее они самые простые в использовании, так как не имеют большого количества опций, и с их работой легко разобраться. Например, извлекаем страницы с 10-й по 20-ю и сохраняем их в отдельный документ:

В имени переменная %d обязательна, так как pdfseparate умеет сохранять страницы только в отдельные файлы. Вместо него будет подставлен номер страницы, то есть в нашем случае получим файлы с именем file-10.pdf . file-20.pdf. Если все же нужен единственный документ, то на помощь приходит pdfunite. Соберем страницы 10 и 11 в один документ:

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

В результате получим файл, собранный из полного документа in.pdf и указанных страниц документов in1.pdf и in2.pdf. Диапазон можно задавать через дефис или перечислить страницы через запятую. Возможен и реверс при помощи конструкции z-№страницы. Добавив параметр --linearize, сгенерируем оптимизированные для веба файлы. Специальный QDF-режим (--qdf) позволяет создавать PDF-файлы, которые затем можно редактировать в обычном текстовом редакторе, то есть без сжатия и шифрования, нормализованный и со специальными метками. Правда, и размер такого файла как минимум в два раза больше.

Иногда нужно просто сравнить две версии PDF-файла — текст, рисунки, вложения. Здесь помогут две прекрасные утилиты: diffpdf и comparepdf. В самом простом случае:

На выходе получим отличие. Если файлы одинаковы, то команда ничего не выдаст (опция «-v 2» сделает ее чуть болтливей). Diffpdf представляет собой GUI-программу, позволяющую произвести постраничную сверку документа. В случае отсутствия расхождения, после запуска будут показаны пустые поля.

Сравнение документов в diffpdf

Сравнение документов в diffpdf

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

Не всем пользователям нравится разбираться с многочисленными параметрами и экспериментировать, некоторые предпочитают просто выбрать нужные операции в GUI. Нет проблем. PDF-Shuffler — небольшое Python-GTK приложение к Python-библиотеке pyPdf, предоставляющей все функции для работы с PDF: извлечение, слияние, обрезку, шифрование/дешифрование и прочее. Программа есть в репозитории дистрибутивов:

Интерфейс не локализован, но все, что требуется после запуска, — это кинуть файлы в окно программы, а после того, как будут отображены все страницы документа, при помощи меню удаляем, обрезаем, поворачиваем, экспортируем нужные. Если требуется произвести операцию с несколькими страницами сразу, то просто отмечаем их при нажатой клавише Ctrl, после чего сохраняем результат в новый документ. Быстро и очень удобно. Правда, как видим, PDF-Shuffler использует далеко не все возможности библиотеки, нет, например, оптимизации и шифрования/дешифрования, нельзя производить другие преобразования вроде изменения размера листа. Поэтому полностью консольные утилиты он не заменяет. Кстати, pyPdf, на котором базируется PDF-Shuffler, уже не развивается и сегодня в дистрибутивах, бывает, замещается форком PyPDF2, который полностью совместим с оригиналом плюс содержит несколько новых методов.

PDF-Shuffler позволяет легко убрать все лишнее из документа

PDF-Shuffler позволяет легко убрать все лишнее из документа

Среди альтернатив PDF-Shuffler можно выделить PDF Mod, легкое, очень простое в использовании приложение с локализованным интерфейсом, которое позволяет извлекать, удалять страницы, изменять их порядок, поворачивать, объединять несколько документов, экспортировать изображения в выбранной странице и редактировать информацию в заголовке документа (названия, ключевые слова, автор). Поддерживаются закладки. PDF Mod есть в репозитории:

Окно PDF Mod

Окно PDF Mod

Кросс-платформенная утилита 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.

Теперь открываем и правим metadata.txt в текстовом редакторе, после чего загружаем обратно:

Дешифровка PDF, о которой мы говорили выше, дело одной команды:

PDFtk — универсальная утилита для работы с PDF

PDFtk — универсальная утилита для работы с PDF

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

Многие знают о формате Portable Document Format, благодаря которому мы видим на различных платформах документ так как его задумал автор. Чаще всего нам нужно просто прочесть какое-либо руководство в формате PDF и в Linux есть масса программ для просмотра. А что если нужно не только прочесть pdf файл?

что такое пдф?

Это прежде всего формат документа (Portable Document Format (PDF)), который был придуман фирмой Adobe Systems. Формат пдф был задуман как межплатформенный открытый формат электронных документов, что означает для пользователя избавление от массы проблем. Если вы видите документ в формате pdf на экране вашего устройства, то точно так же он будет выглядеть при печати. Вас не будут волновать размер полей, наличие шрифтов в системе и т.д. На практике, всё не так радужно, но, в целом, документы пдф вызывают меньше проблем, чем остальные. Не даром, формат пдф стал стандартом распространения различных справочных руководств. Считается хорошим тоном отправлять документы в формате pdf вашим адресатам, если не подразумевается дальнейшая правка. Формат пдф включает в себя механизм электронных подписей для защиты и проверки подлинности документов, что позволяет легко убедиться в авторстве документа.

pdfgrep. Поиск в pdf.

Если вы хоть раз использовали мощную утилиту grep, то вам сразу будет ясна работа pdfgrep. Отличие только одно. Grep оперирует строками, а PdfGrep страницами. PdfGrep умеет использовать мощь регулярных выражений, обходить рекурсивно каталоги при поиске, подсвечивать найденное.

comparepdf. Сравнение файлов pdf.

Вам стоит знать, что comparepdf не выводит вам в каком-либо виде различающиеся части. Утилита заточена под вызовы из программ для диагностирования самого факта различия или идентичности в pdf. Если вам необходим инструмент визуального сравнения документов, то переходите к Diffpdf.

Diffpdf.

DiffPDF используется для сравнения двух файлов формата PDF. По умолчанию в каждой паре страниц сравнивается текст, но можно сравнить и внешний вид. Например, изменение вставленной диаграммы или стиля абзаца. Кроме того, можно сравнить определённые страницы или страницы в определённых диапазонах. Например, если в первой версии файла формата PDF имеются страницы от 1 до 12, а во второй - от 1 до 13 (вставлена дополнительная страница 4), эти версии можно сравнить, страницы первой версии файла указав в диапазоне 1-12, а страницы второй — в диапазонах 1-3 и 5-13. Таким образом, DiffPDF выполнит сравнение страниц в следующих парах: (1,1), (2, 2), (3, 3), (4, 5), (5, 6) и далее до (12, 13).

Различия в PDF файлах

Картинки в pdf.

Если у вас есть серия изображений типа pic_*.jpg, то преобразовать в pdf можно командой ls -v | tr '\n' ' ' | sed 's/$/\ result.pdf/' | xargs convert Причём pic_10.jpg будет после pic_9.jpg, а не после pic_1.jpg, благодаря ключу -v.

PDF Toolkit (pdftk).

Если PDF документ - это "электронная бумага", то pdftk - это степлер, дырокол, сшиватель в одном флаконе. pdftk, словно швейцарский нож, умеет:

Из PDF в текст. Конвертер PDF.

Вызов pdftotext document.pdf document.txt позволит вам извлечь текст из pdf. Можно сразу вывести текст в простой html или xml. Если текст в pdf есть на фиксированных позициях, то есть возможность указать координаты и текст будет извлечён именно оттуда. Вызывая pdftotext document.pdf - | grep НужнаяСтрока , можно сымитировать работу pdfgrep.

Из PDF вытащить картинки.

Вызов pdfimages -j document.pdf images/ приведёт к тому, что в подкаталоге images/ будут находиться извлечённые файлы в формате PBM для монохромных изображений и PPM для цветных. Опции -png, -tiff, -j, -jp2 и -jbig2 сохранят соответственно в форматах PNG, TIFF, JPEG, JPEG2000 и JBIG2.

Из CHM в PDF.

Если хотите преобразовать свою коллекцию различных руководств в формате Microsoft Compiled HTML Help в Portable Document Format, то в этом поможет утилита командной строки chm2pdf. chm2pdf поддерживает пакетный режим, опции безопасности PDF, защиту паролем и режимы сжатия.

PDF Split and Merge (pdfsam).

Нельзя не отметить java программу PDF Split and Merge (pdfsam), которая в графическом режиме позволит сделать массу вышеописанного.

PDF Split and Merge

PDFSaM идёт в двух версиях, обе свободны. Базовая доступна в пакетах для Debian, Ubuntu и Arch Linux. Расширенная версия обладает всем функционалом, но доступна на официальном сайте лишь в виде исходного кода, хотя учитывая язык java, проблем с запуском программы быть не должно.

Читайте также: