Печать полутонов из ghostscript - PullRequest
0 голосов
/ 11 июля 2019

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

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

У меня установлен принтер HP Laserjet P2015 в Windows 10.

gswin64c.exe -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf test.ps -c "<< /HalftoneType 1 /Frequency 37 /Angle 45 /SpotFunction {180 mul cos exch 180 mul cos add 2 div} >> sethalftone"

PDFфайл генерируется, однако изображения не отображаются в формате Round Halftone.Я не вижу изменений в изображении.

Это оригинальное изображение

Я хочу, чтобы распечатка выглядела так: Требуемый вывод

По некоторым причинам вывод такой же, как и в оригинале.

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 11 июля 2019

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

невозможно получить монохромный вывод из pdfwrite, если только монохромный не находится на входе.

Если вместо этого вы используете монохромное устройство вывода (например, tiffg3 или tiffg4), вы должны увидеть разницу, если только во входном файле (который вы не предоставили) также не установлен экран, и в этом случае вступит в силу последний обнаруженный файл. , То есть, если во входном файле PostScript указан полутоновый экран, он будет использоваться.

[добавлено]

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

Лучше всего отправлять PostScript напрямую на принтер, поскольку он поддерживает PostScript.

Задача 1; Ваш файл PostScript может уже содержать полутон, который заменяет тот, который вы хотите использовать. Обычно это можно предотвратить, переопределив операторы sethalftone и setscreen:

/ sethalftone {pop} bind def / setscreen {pop pop pop} bind def

Вы делаете это после того, как определили свой полутон, очевидно. Или вы можете просто отредактировать файл PostScript и удалить определение полутонов, его обычно не так сложно найти.

Проблема 2 заключается в том, что производители принтеров иногда «настраивают» интерпретатор, чтобы всегда использовать предпочитаемый им полутон и не допускать его переопределения в PostScript. Единственный способ выяснить, происходит ли это, - попробовать быстрый тест; напечатайте простое изображение с экраном по умолчанию, затем установите очень грубый экран, скажем, 10 lpi и напечатайте то же изображение. Если нет никакой разницы, то вы знаете, что это нереальный вариант. Если есть, то вы можете просто установить нужный экран.

Теперь, если принтер не разрешит вам изменить полутон, тогда единственное решение - визуализировать PostScript для изображения с помощью Ghostscript (который позволит вам изменить полутон), а затем отправить полученное изображение на принтер. Вам нужно будет использовать устройство 1bpp, что-то вроде tiffg3 или tiffg4 должно работать нормально.

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

Еще более тонко, область печати на носителе в принтере может не совпадать с размером носителя. Работа с бумагой может означать, что есть некоторые области бумаги, на которые нельзя печатать, и изменчивость подачи бумаги может означать, что принтер в любом случае откажется печатать прямо по краям. Потому что, если это произойдет, и, скажем, будет отклонение в 1 мм при работе с бумагой, то 1 мм края будет «падать», и на другом крае будет 1 мм белый зазор .....

...