6

Я хотел бы извлечь диапазоны страниц из документа PDF в новый документ PDF, используя командную строку в Linux. Обратите внимание, что:

$ pdftk input.pdf cat 1 verbose output output.pdf
Error: Failed to open PDF file: 
   input.pdf
Errors encountered.  No output created.
Done.  Input errors, so no output created.

Оказывается, « Вы (должны) знать, что Pdftk - не более чем очень старая версия iText ....Ключевыми словами в приведенном выше утверждении являются "ОЧЕНЬ СТАРЫЙ". "(из pdftk не могу открыть pdf файл)

 

$ java -classpath /path/to/Multivalent20091027.jar tool.pdf.Split -page 1 input.pdf
Exception in thread "main" java.lang.NoClassDefFoundError: tool/pdf/Split
Caused by: java.lang.ClassNotFoundException: tool.pdf.Split
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: tool.pdf.Split.  Program will exit.

Оказывается, это немного сложное программное обеспечение: даже если оно на SourceForge и говорит, что « Practical Thought щедро предоставляет эти инструменты для свободного использования в командной строке » здесь - однако, здесь тогда говорится: « Браузер открыт источник.Инструменты документа являются бесплатным бонусом, а не открытым исходным кодом. "... который окончательно проясняет комментарий от преобразования - Склеивание (верстка) документов PDF - Переполнение стека:

Во всех выпусках Multivalent, ссылающихся на официальный сайт sourceforge, отсутствует пакет инструментов.

(отредактируйте: кажется, есть старая версия Multivalent с включенными инструментами, см. ссылку SO; но так как она выглядит как оставленная программа, я бы не стал ее использовать)

 

  • Наконец, я бы хотел избежать инструментов, которые по сути являются интерфейсом для латекса, таких как PDFjam

 

Итак, есть ли варианты для такого инструмента командной строки pdf-split в Linux?

2 ответа2

8

Я считаю pdfseparate очень удобным для разделения диапазонов на отдельные страницы. Эта команда извлекает страницы 1 - 5 input.pdf в файлы с именем output-page1.pdf , output-page2.pdf , ...

pdfseparate -f 1 -l 5 input.pdf output-page%d.pdf

Если вы хотите объединить их в диапазоны страниц, например, страницы 1-3 в одном документе и страницы 4-5 в другом, вы можете использовать сопутствующую программу pdfunite следующим образом:

pdfunite output-page1.pdf output-page2.pdf output-page3.pdf final-pages1-3.pdf
pdfunite output-page4.pdf output-page5.pdf final-pages4-5.pdf

Я считаю, что эти инструменты являются частью poppler и, возможно, уже установлены в вашей системе.

3

Я поставлю это как ответ, чтобы не засорять вопрос: вот ссылка на unix.se:

... и в принятом ответе используется сценарий Python с PyPDF (но этот ответ реализует разбиение одной страницы на две - и поэтому необходимо изменить этот сценарий для диапазонов страниц, чтобы он работал так, как задано в OP).

 

РЕДАКТИРОВАТЬ: Я только что нашел это: Степлер - Python утилита для управления документами PDF на основе pypdf (стр. 3) / Вклад сообщества / Arch Linux Forums ; что, по-видимому, " небольшая утилита, использующая библиотеку pypdf для предоставления (несколько) более легкой альтернативы pdftk " (обратите внимание, что в списке рассылки отмечены некоторые проблемы с этим, однако) ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .