У меня есть PDF, созданный с помощью Inkscape, в котором используются прозрачные цвета. Это изображение должно использоваться в документе LaTeX.
Хотя сохранение прозрачности удобно для редактирования, это может быть проблемой для печати. Печать обычно включает в себя преобразование PDF в PS. Так как Postscript не поддерживает прозрачность, это требует либо
или
Когда PDF-документ, содержащий такую фигуру, распечатывается (или конвертируется в PS) с использованием Evince (или Cairo или Ghostscript), вся страница отображается как растровое изображение, что делает уродливые шрифты (отличными от других страниц). (Adobe Acrobat хорошо справляется с такими PDF-файлами.)
К сожалению, преобразование фигур PDF в EPS (до их включения в LaTeX) мало помогает, поскольку и pdftops, и pdf2ps (опять же, Cairo или Ghostscript) растеризуют изображение, то есть рендеринг растрового изображения (сохраняется как EPS). (Это немного лучше, потому что это не влияет на всю страницу, но я все же предпочел бы векторную графику.)
Как можно сгладить прозрачность с помощью Inkscape или другого программного обеспечения в Linux?
pdftops -origpagesizes input.pdf output.ps
затем
ps2pdf -r600x600 output.ps input-new.pdf
Один из способов - сделать белый прямоугольник в Inkscape того же размера, что и ваша страница, и отправить его в нижний слой. Это экспортирует ваше изображение с белым фоном вместо прозрачного.
У меня была та же проблема, и это мое решение (для дальнейшего использования):
Я много чего пробовал, и до сих пор лучшим рабочим решением, которое я нашел в Интернете, было полное рендеринг PDF. как изображения с pdf2ps
и ps2pdf13
, но результат не был удовлетворительным для меня, потому что все векторных форм были потеряны. Я хотел визуализировать только критические части, но сохранить векторную графику.
Что меня устроило, так это изолировать все критические части в inkscape и поместить их в отдельный слой (на моих изображениях это были все тени). Я сделал видимым только этот слой (и фоновый слой) и экспортировал его в PNG, эффективно отображая все эффекты прозрачности, но только их. Я импортировал его обратно и использовал в новом слое. После переворачивания всех уровней видимости (уровень прозрачности: выкл., Все остальные: вкл.) Экспортированный PDF отлично работал с LaTeX и был пригоден для печати без отображения всей страницы в виде изображения.
TL; DR:
Одним из способов избежать плохой растеризации является ручное преобразование документа PDF в postscript, потому что когда вы вызываете CUPS через evince или любой другой графический интерфейс, он все равно будет конвертирован.
Вы можете попробовать pdftops -r 1200 document.pdf
увеличить разрешение с минимального значения по умолчанию 300, а затем распечатать получившийся постскриптум. Однако при работе принтеров это не дало существенного улучшения. Обычный текст на страницах с прозрачными изображениями и без них по-прежнему выглядит по-разному - размыто или ясно.
В итоге я использовал Acrobat Professional (на компьютере с Windows), чтобы сгладить прозрачные изображения, используемые в моем латексном документе, что дало оптимальные результаты. Убедитесь, что Transparency Flattener Preset
находится на [High Resolution]
в расширенных настройках печати. Мой коллега упомянул, что, возможно, можно передать файл PDF непосредственно на современный сетевой принтер LaserJet, минуя постскриптумное преобразование. Я не пробовал это.
Было бы замечательно иметь решение Linux только для Linux.
Я открыл файл PDF с помощью Ubuntu / Калека и распечатал одну страницу во время, проверив предварительный просмотр каждый раз.