В нашем офисе есть принтер, который печатает PDF-файлы с USB-накопителя. Он печатает большинство файлов в порядке, но есть проблемы с некоторыми, особенно сгенерированными с помощью Latex. Некоторые PDF-файлы просто отказываются печатать, некоторые PDF-файлы печатаются шрифтом курьерского типа, а некоторые - нормально, за исключением уравнений.
Я ищу способ «перегонять» PDF-файлы в надежный формат для печати. Либо путем упрощения / нормализации PDF до такой степени, что любое средство визуализации отобразит его правильно, либо путем простого создания каждой страницы растрового изображения с разрешением 600 точек на дюйм в PDF. (Я мог бы разбить PDF на отдельные растровые изображения и объединить их вручную, но я хочу что-нибудь для сценариев.)
Размер выходного файла не имеет значения, поскольку он обязательно печатается, имеет формат бумаги A4 (или оригинал) и разрешение 300 ~ 600 точек на дюйм.
Ответы:
После неудачной попытки некоторых опций отобразить шрифты в виде контуров (включая этот вопрос и pstoedit), я нашел способ легко преобразовать PDF в растеризованную форму с помощью ImageMagick:
Это создает PDF-файл, отображаемый с разрешением 600 точек на дюйм с отключенным сглаживанием (в этом разрешении нет необходимости).
Выходные файлы огромны (~ 30 МБ для 8-страничного документа) и чрезвычайно медленны для печати, но должны работать до тех пор, пока у принтера будет достаточно памяти для визуализации содержимого.
источник
convert
это не сохраняет содержимое форм, которые вы могли заполнить. (Я хотел растеризовать PDF, чтобы убедиться, что содержимое формы везде выглядит одинаково, в частности, что оно будет отображаться всеми программами просмотра PDF в первую очередь.) Чтобы сохранить содержимое формы, используйтеevince
(или что-то еще приложение, которое вы использовали для заполнения формы), чтобы напечатать документ «в файл» - это еще один PDF, где содержимое формы фактически стало частью обычного текста. Тогда вы все равно можете растеризовать этот новый PDF, в зависимости от ваших потребностей.+antialias
), а не выключает его (-antialias
).+antialias
отключает сглаживание: imagemagick.org/script/command-line-options.php?#antialiasПо моему опыту, использование imagemagick нестабильно при высоких разрешениях и / или больших файлах. Многие принтеры могут работать с разрешением 1200 т / д и выше, поэтому растеризованный файл должен иметь аналогичное разрешение. Лучшее решение - использовать pdf2djvu, который работает быстрее, надежнее и даже создает файлы с размером, который часто конкурирует с оригинальным PDF при 1200 или 2400 dpi. Эти файлы могут быть просмотрены и распечатаны с использованием okular или evince.
Пример:
источник
Я думаю, что мой текущий предпочтительный способ сделать это:
Используйте pdftoppm для преобразования файла PDF в серию изображений.
Используйте img2pdf для создания файла PDF из этих изображений.
Хорошей новостью является то, что вы можете создать скрипт bash, чтобы автоматизировать весь процесс для вас.
Вот скрипт bash, который перегонит все файлы pdf в каталоге и сохранит оригиналы в новом каталоге «оригиналы».
Кредиты: img2pdf answer & pdftoppm answer & bash script help: 1 & 2
(Примечание) Вы можете установить img2pdf используя:
источник
Другой альтернативой является преобразование в изображения через что-то вроде
pdfimages
Со страницы man "Pdfimages сохраняет изображения из файла Portable Document Format (PDF) в формате Portable Pixmap (PPM), Portable Bitmap (PBM) или JPEG. Pdfimages считывает PDF-файл PDF-файла, сканирует одну или несколько страниц и записывает один файл PPM, PBM или JPEG для каждого изображения, image-root-nnn.xxx, где nnn - номер изображения, а xxx - тип изображения (.ppm, .pbm, .jpg). "
Затем используйте pdftk для конвертации обратно в PDF https://www.pdflabs.com/docs/pdftk-cli-examples/
Наконец, распечатайте этот файл. Очевидно, ключевой вопрос заключается в том, как написать это.
Вы можете автоматизировать это с помощью простой веб-страницы для пользователей. Наконец, они распечатывают преобразованный файл, и вы должны иметь более высокую производительность и рабочую распечатку?
источник