Создать PDF-файл с определенными диапазонами страниц из нескольких PDF-файлов?

Создать PDF-файл с определенными диапазонами страниц из нескольких PDF-файлов?

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

Предположим, у меня есть два PDF-файла.

  1. first.pdfимеющий 10 страниц.

  2. second.pdfимеющий 20 страниц.

Я хочу создать новый PDF-файл, в котором мне нужны страницы - 2,5,6,9 из first.pdfи страницы 6,7,15,19 из second.pdf.

Как это сделать из командной строки?

решение1

Вы можете использовать pdfseparateкоманду, чтобы разделить все страницы pdf-файлов на одностраничные pdf-файлы. Следующая команда создаст last_page- first_pagepdf-файлы, где их имя будет out_<pageNumber>:

pdfseparate -f <first_page> -l <last_page> <file_name>.pdf out_%d.pdf

Примените процесс к обоим pdf, используя разные выходные имена для каждого входного pdf, чтобы не перезаписывать ранее созданные одностраничные pdf. Затем вы можете использовать pdfuniteдля объединения выбранных страниц в один pdf:

pdfunite <ordered list of pdf> <output_filename>.pdf

решение2

Вы можете использоватьpdftk

всего заОДИНшаг:

pdftk A=first.pdf B=second.pdf cat A2 A5 A6 A9 B6 B7 B15 B19 output final.pdf

P.S. Если вам нужно установить, вам следует:

sudo apt-get install pdftk

решение3

Установить pdftk:

sudo apt install pdftk

затем, чтобы извлечь «2 5 6 9» из первого в файле с именем «1.pdf»:

pdftk first.pdf cat 2 5 6 9 output 1.pdf

и для второго.pdf:

pdftk second.pdf cat  6 7 15 19 output 2.pdf

Затем объедините их:

pdftk 1.pdf 2.pdf output final.pdf

И удалите ненужные:

rm 1.pdf 2.pdf

решение4

Очень просто с qpdf (также работает с Cygwin на Windows):

qpdf --empty --pages 'file1.pdf' 1,2,4-10 'file2.pdf' 11-26 'file1.pdf' 27-29 -- ./merged-result.pdf

Связанный контент