Ghostscript добавить белое фоновое изображение - PullRequest
0 голосов
/ 23 мая 2019

У меня есть скрипт, который автоматически добавляет желоб в PDF-файл. Он добавляет желоб слева для нумерованных страниц ODD и желоб справа для нумерованных страниц. Это делается путем перемещения существующего изображения поверх.

Вот код для этого:

'gs -sDEVICE=pdfwrite -dPDFSETTINGS=/printer -o output.pdf \
    -dDEVICEWIDTHPOINTS=513 \
    -dDEVICEHEIGHTPOINTS=738 -dFIXEDMEDIA -c \
    "<< /CurrPageNum 1 def /Install { /CurrPageNum CurrPageNum 1 add def CurrPageNum 2 mod 1 eq \
    {-4.5 0 translate} {4.5 0 translate} \
    ifelse } bind  >> setpagedevice" -f input_file.pdf 

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

Можно ли добавить белый фон в PDF, чтобы он не был прозрачным? Или есть альтернативный способ исправить это?

1 Ответ

0 голосов
/ 23 мая 2019

Боюсь, ваше предположение неверно, ваш «перевод» вообще не связан с прозрачностью, он смещает контент в медиа (примечание: это не изображение, то есть растровое изображение, в целом. Это более сложный контент)., Все содержимое смещено, независимо от того, прозрачно оно или нет.

Боюсь, я не могу понять, что вы имеете в виду, что напечатанная страница «уже».Медиа-запрос будет для страницы 513x738 баллов, что является действительно странным размером;7,125 на 10,25 дюймов.Unles, который соответствует размеру страницы вашего принтера, затем собирается что-то сделать с результатом.Возможно, он будет центрирован, если носитель будет больше, чем запрос, но если носитель будет меньше запрашиваемого, он уменьшит его или обрежет.Любой из них приведет к чему-то отличному от того, что вы ожидаете.

Существует ли причина, по которой вы меняете размер носителя исходного PDF-файла?

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

Вы можете легко устранить прозрачность как виновника, просто начав с тестового файла, который не содержит никакой прозрачности.Если вы не уверены, тогда одним из решений должно быть использование последней версии Ghostscript и использование устройства pdfimage32.Это создаст файл PDF из исходного PDF, но выходной файл будет только , содержащий растровое изображение, без прозрачности.

Чтобы помочь нам рассмотреть проблему, было бы полезночтобы увидеть исходный файл PDF, файл PDF, который вы отправили на принтер, а также отсканированный снимок или фотографию окончательной распечатанной страницы.Также было бы полезно узнать версию используемого вами Ghostscript, марку и модель принтера и то, как вы отправляете файл PDF на принтер.

...