我的任务是用Windows操作系统和Python打印PDF文件。因此,当我用HP打印机打印时,我得到了PDF的精确副本,但背景是灰色的。在
我使用^{
import subprocess
import win32print
generated_pdf_name = 'some_pdf_name.pdf'
current_printer = win32print.GetDefaultPrinter()
query = f'{os.path.join("GHOSTSCRIPT", "bin", "gswin64c.exe")} -dPrinted -dBATCH -dNOPAUSE -dFitPage -q -dNumCopies=1 -dNoCancel -sDEVICE=mswinpr2 -dDeviceGrayToK=false -sOutputFile="%printer%{current_printer}" "{os.path.join(generated_pdf_name)}"'
subprocess.call(query, shell=True)
这里我使用了MS Windows printers,所以-sDEVICE=mswinpr2
。我也试过用^{ghostscript
。它打印了这个PDF文件的所有内容,但唯一的问题是灰色背景。在
看看Gray color printed output,我需要没有灰色背景的纯输出。我错过了上面的东西吗?在
看起来你的“PDF文件”不过是一个扫描的图像,但由于你没有提供实际的PDF文件,因此无法分辨。在
我的猜测是整个内容都是一个图像,而“白色背景”并不是真正的白色,而是“近乎白色”。在
mswinpr2设备的工作原理是将PDF文件呈现为位图,然后将该位图发送到打印机(Acrobat Reader的工作方式完全不同)。我想,将“不太白”渲染为RGB会使其更不白,这会导致背景变得稍微更灰,以至于打印时,它明显是灰色的。在
基本上,有两种选择:你可以修改原始的PDF文件,使背景真正是白色的,或者你可以使用不同的ICC配置文件进行渲染,这将导致为背景渲染不同的颜色。在
Ghostscript文档中介绍了使用不同的ICC概要文件。在
相关问题 更多 >
编程相关推荐