преобразуйте несколько png в один PDF

У меня есть 280 pgn файлов, которые я хочу объединить и преобразовать в один PDF.

Имена файлов PNG находятся в последовательности p000.png, p001.png и т.д., и общее пространство составляет приблизительно 30 МБ.

Я сделал:

convert p00*.png to myfile.pdf 

и это хорошо работало. Luckly достаточно в правильном порядке.

Но когда я делаю:

conver p*.png to myfile.pdf

Это использует всех моих 4 ГБ памяти и половины моей подкачки. Затем это отказывает с ошибкой

convert: memory allocation failed `myfile.pdf' @ error/pdf.c/WritePDFImage/1595.

Какая-либо идея того, как сделать обходное решение к этой проблеме?

Я думаю, что достаточно хорошее решение состояло бы в том, чтобы использовать convert один файл за один раз к PDF, с тем же именем. Затем используйте pdfunite или pdftk объединить их. Но я не знаю, как использовать convert таким образом.

5
задан 19 February 2013 в 12:45

1 ответ

Imagemagick, кажется, является очень жестоким с использованием памяти. Предложение состоит в том, чтобы использовать - предел для ограничения преобразования емкости памяти будет использовать, это должно использовать дисковый кэш для чего-либо еще, в чем это нуждается. Считайте объяснение здесь:

http://www.imagemagick.org/pipermail/magick-users/2002-March/001285.html

И вот то, как использовать - предельная опция: http://www.imagemagick.org/script/command-line-options.php#limit

В противном случае можно сделать это как Вы, описывают, преобразовывая каждое изображение индивидуально и затем объединяя их с некоторым другим инструментом. Что-то как

for name in p*.png; do convert $name `basename $name .png`.pdf; done

должен сделать это.

В основном это выполняет итерации по всем png файлам, выполнения преобразовывают на них, единственное волшебство basename $name .png часть, которая будет заменена именем файла минус .png часть, так, чтобы при присоединении расширения pdf его, имя файла имело смысл.

Попробуйте его за себя так, Вы получаете ощущение того, что делает базовое имя:

basename something.png .png
echo `basename something.png .png`.pdf
8
ответ дан 23 November 2019 в 09:01

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

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