LINUX.ORG.RU

pdf файл не конвертируется в картинки

 ,


0

1

Конвертирую в картинки pdf мануал. И тут случается то, чего никак не ожидал. Вместо результата, пакет im вешает надолго комп, а другая утилита выдаёт мне туеву хучу микроскопических изображений от буквы до слова размером, и лишь одна страница целиком.

ВОПРОС: что это было? И как достичь результата?

Понимаю, что мне попался еанутый pdf, но такие дела.

ФАЙЛ: https://elektrotanya.com/sharp_gx-68z_cp-x9_sm.pdf/download.html#dl

Мои строки конвертации:

convert -density 400x400 -quality 80 -depth 8 sharp_gx-68z_cp-x9_sm.pdf sharp68z.jpg
pdfimages -png  sharp_gx-68z_cp-x9_sm.pdf sharp68z

pdfimages ничего не преобразует, а тупо извлекает изображения.

IM у меня выжрал 8 гигов памяти, но изображения выдал. Попробуй density снизить, тогда расход памяти резко сократится. На 300 у меня уже потреблялось 3,5 гига.

Если жалуется на память, то в «/etc/ImageMagick-7/policy.xml» можно покрутить ограничения.

Если актуально, то могу скинуть архив с изображениями куда-нибудь.

Radjah ★★★★★
()

Касательно ImageMgick:

  1. А тебе точно нужны 400 dpi? Именно поэтому долго.

  2. Имя файла не содержит плейсхолдера для номера страницы (%02d в примере ниже), поэтому на выходе только одна страница целиком. Просто она перезаписалась 34 раза.

$ time convert -density 200 -quality 80 -depth 8 ~/Downloads/sharp_gx-68z_cp-x9_sm.pdf sharp68z-%02d.jpg

real	0m15.748s
user	0m22.661s
sys	0m4.340s

С 400 dpi соответственно в 4 раза больше площадь и в 4 раза дольше.

Касательно pdfimages: собственно, это не конвертилка PDF в картинки, а извлекалка картинок из PDF. Ты, вероятно, хотел использовать pdftocairo, которая реально рендерит PDF в любой формат, поддерживаемый cairo:

$ time pdftocairo -jpeg -r 200 -jpegopt quality=80 ~/Downloads/sharp_gx-68z_cp-x9_sm.pdf sharp68zCAIRO

real	0m4.053s
user	0m3.954s
sys	0m0.086s

Для 400 dpi имеем 5 секунд вместо 4.

AEP ★★★★★
()
Ответ на: комментарий от hikikomori

По поводу pdf2pdf - такого действительно нет ни в Arch, ни в Debian. Вероятно, имеется в виду ps2pdf из состава Ghostscript - PDF-ы он тоже принимает на вход. Или pdftocairo, он умеет писать PDF среди всего прочего. Оба варианта почистят PDF от всяких javascript’ов, но не от разрезанных и собранных картинок.

AEP ★★★★★
()
Ответ на: комментарий от hikikomori

В 6 версии я там лимиты памяти поднимал:

<policy domain="resource" name="memory" value="2048MiB"/>
<policy domain="resource" name="map" value="1024MiB"/>

В 7 версии включал запись в PDF:

<policy domain="module" rights="read | write" pattern="{PS,PDF,XPS}" />

В 7 версии лимиты по памяти отключили.

Больше я там ничего не трогал.

Radjah ★★★★★
()