Объединить два PDF-файла бок о бок в командной строке

4802
nnn

У меня есть два файла PDF с одинаковым количеством страниц, и я хочу сравнить каждую страницу с соответствующей страницей в другом файле. Для этого я хотел бы объединить, скажем, страницу 1 файла File1.pdf со страницей 1 файла File2.pdf, чтобы он получил одну страницу в новом документе. Затем перейдите на страницу 2 файла File1.pdf со страницей 2 файла File2.pdf и сделайте ее страницей 2 нового файла.

В этом вопросе я уже узнал, что могу разместить две страницы на одной странице с помощью --nupопции pdfjamкоманды:

pdfjam File1.pdf File2.pdf --nup 2x1 --landscape --outfile File1+2.pdf 

То же самое может быть достигнуто с ImageMagickпакетом:

montage *.pdf merged.pdf 

Но это объединяет страницу 1 и страницу 2 первого файла и делает то же самое позже со вторым файлом - не так, как предполагалось.

Что я сделал, так это разделил два документа. Первый файл получил четные числа в имени файла, второй нечетные числа (на самом деле я создал файлы заново с соответствующими именами файлов). Затем я снова объединил все файлы с

pdftk *.pdf cat output merged.pdf 

и, наконец, положить две страницы на одной с

pdfjam --nup 2x1 --landscape --outfile merged2up.pdf merged.pdf 

Я мог бы написать скрипт с циклом, делающим это, но мне было интересно, есть ли простой однострочник для достижения этой цели? Может быть, я не нашел правильную команду pdfjam, pdftk или ImageMagick?

5
Еще две команды, но у моего `pdftk` есть опция" shuffle ", которая выглядит так, как будто бы вы могли объединить два документа с чередующимися страницами без необходимости сначала разбивать их на отдельные страницы. В этот момент многие программы просмотра PDF имеют возможность показывать две страницы одновременно, поэтому вам может даже не потребоваться операция «N up» в этой точке. arcticmac 8 лет назад 0

2 ответа на вопрос

3
Sergei

Вы можете разделить File1.pdf и File2.pdf на страницы, а затем объединить эти файлы tmp в File1 + 2.pdf следующим образом:

# Split files, note the naming scheme pdfseparate File1.pdf temp-%04d-file1.pdf pdfseparate File2.pdf temp-%04d-file2.pdf  # Combine the final pdf pdfjam temp-*-*.pdf --nup 2x1 --landscape --outfile File1+2.pdf  # Clean up rm -f temp-*-*.pdf 
Спасибо за это решение. Однако объединенный файл не оптимизирован по размеру. В моем случае это почти в 100 раз больше, чем исходные файлы. Кто-нибудь знает, как уменьшить размер объединенного файла? Stefan Endrullis 5 лет назад 0
-1
jackpots

Да, немного поздно, но может быть полезным для кого-то еще.

Оригинальный подход OP, чтобы отображать страницы бок о бок, может быть достигнут другим ответом.

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

https://duckduckgo.com/?q=pdfdiff&t=ffab&ia=software

Обратите внимание, что этот подход не так эффективен для изображений, поскольку «идентичные» изображения могут кодироваться по-разному.

Можете ли вы объяснить, как использовать это программное обеспечение? Предоставление ссылки только является промежуточным решением. И вы даже не указываете, где находится программное обеспечение. Пожалуйста, рассмотрите возможность дополнить свой ответ необходимой информацией. Vylix 6 лет назад 1

Похожие вопросы