Сохраните каждый файл PDF каталога как другой PDF (операция, подобная для печати PDF как PDF)

Рассмотрите следующую процедуру:

1) Откройте файл PDF с помощью (Ubuntu) средство просмотра документов.

2) Файл Goto

3) Печать Goto

4) Выберите 'Print as file' и проверьте метку "PDF"

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

Возможно, Вы думаете, что эта процедура не имеет никакого смысла вообще, но это на самом деле был единственный безопасный способ, которым я нашел, чтобы заниматься проблемой, которую рассматривают здесь. Этот вопрос о StackOverflow показывает проблему с файлами PDF, которыми не найден маркер EOF. Когда я делаю процедуру, описанную выше, я могу решить эту проблему [Это не решение, представленное в сайте StackOverflow, который не работает здесь.]

Я хотел бы к этому автоматически со всеми файлами, которые представляют эту проблему.

Я знаю, что должен создать один сценарий (.sh) к этому, но я не знаю, как продолжить двигаться.

Пример файла (1) PDF с проблемами здесь

Исправленный файл (2) PDF здесь

Единственная разница между ними - то, что я открыл первое использование "Средства просмотра документов Ubuntu", я перешел к "Файлу", "Печати", "Печать в Файл", "Output=pdf".

Я хочу сделать это автоматически.

Править:

Я НЕ хочу объединять файлы.

1
задан 1 January 2019 в 16:51

2 ответа

Удостоверьтесь, что Вы имеете cups-pdf установленный и добавленный как принтер. Отметьте название принтера PDF. (дополнительно) Редактирование /etc/cups/cups-pdf.conf: не прокомментируйте и измените строку, где, говорит #Out /var/spool/cups-pdf/${USER} желаемому выходному каталогу.

Затем перезапуск CUPS: sudo systemctl restart cups

Теперь для печати, сделайте:

SOURCEDIR="/path/to/source/pdfs"
for i in "$SOURCEDIR"
do
    lpr -P <pdf printer name> "$i"
done

Теперь копируют файлы от выходного каталога по умолчанию до желаемого местоположения, если Вы не отредактировали cups-pdf.conf

Install poppler-utils и работали pdfunite input1.pdf input2.pdf input3.pdf output.pdf.

1
ответ дан 7 December 2019 в 13:20

Можно достигнуть того, что Вы хотите наиболее легко с помощью Ghostscript. Я успешно протестировал это с версией 9.26 Ghostscript:

gs                  \
  -o out.pdf        \
  -sDEVICE=pdfwrite \
   in.pdf

я должен признать, я действительно не постигаю Вашу проблему с маркером EOF в неизмененный файл в качестве примера здесь , потому что я могу ясно видеть, что этот маркер EOF присутствует в нем.

Однако я вижу дополнительную проблему, которая показывает в Вашем , 'исправил' файл в качестве примера здесь : этот теперь использует размер страницы A4 (595 x 842 pts) с большими белыми полями, тогда как Ваш неизмененный файл имеет маленькие поля и размер страницы 362 x 558 pts (который является меньше чем половиной A4!)

Мой метод имеет преимущество для сохранения исходных размеров страницы.

Для применения это ко всем файлам PDF в текущем каталоге, включая все подкаталоги, использует следующую команду:

find . -name "*.pdf" -type f | while read line; do
    gs -o mod-${line} -sDEVICE=pdfwrite "${line}"
done
1
ответ дан 7 December 2019 в 13:20

Другие вопросы по тегам:

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