如何在使用ghostscript打印PDF时去除背景灰色?

2024-09-28 22:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我的任务是用Windows操作系统和Python打印PDF文件。因此,当我用HP打印机打印时,我得到了PDF的精确副本,但背景是灰色的。在

我使用^{}库生成PDF。它工作得很好。这是PDF file的输出。如果我通过Adobe Acrobat Reader打印,则没有灰色背景。但是当我用^{}打印时,它的背景是灰色的。在

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。我也试过用^{}。但它不显示我的PDF文件中的图像。所以我搬进了ghostscript。它打印了这个PDF文件的所有内容,但唯一的问题是灰色背景。在

看看Gray color printed output,我需要没有灰色背景的纯输出。我错过了上面的东西吗?在


Tags: 文件nameimportpdfoswindowscurrentquery
1条回答
网友
1楼 · 发布于 2024-09-28 22:19:05

看起来你的“PDF文件”不过是一个扫描的图像,但由于你没有提供实际的PDF文件,因此无法分辨。在

我的猜测是整个内容都是一个图像,而“白色背景”并不是真正的白色,而是“近乎白色”。在

mswinpr2设备的工作原理是将PDF文件呈现为位图,然后将该位图发送到打印机(Acrobat Reader的工作方式完全不同)。我想,将“不太白”渲染为RGB会使其更不白,这会导致背景变得稍微更灰,以至于打印时,它明显是灰色的。在

基本上,有两种选择:你可以修改原始的PDF文件,使背景真正是白色的,或者你可以使用不同的ICC配置文件进行渲染,这将导致为背景渲染不同的颜色。在

Ghostscript文档中介绍了使用不同的ICC概要文件。在

相关问题 更多 >