Ghostscript添加白色背景图像

时间:2019-05-23 09:39:17

标签: pdf ghostscript

我有一个脚本,可以自动将装订线添加到PDF文件中。它为奇数编号的页面在左侧增加装订线,为偶数编号的页面在右侧增加装订线。它是通过将现有图像移到上方来实现的。

这是代码:

'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 :(得分:0)

恐怕您的假设是有缺陷的,您的“翻译”根本没有透明性,它移动了媒体上的内容(注意,这通常不是图像,即位图,其内容更为复杂) 。 全部,无论内容是否透明,内容都会转移。

恐怕我听不懂您对打印页面“缩小”的意思。 Media请求的页面大小为513x738点,这确实很奇怪。 7.125 x 10.25英寸。调整与打印机页面大小相匹配的文件,然后对结果进行“处理”。如果介质比请求的大,它可能会居中,但是如果介质比请求的小,那么它将缩小或裁切它。两者都会导致与您期望的有所不同。

是否要更改原始PDF文件的介质大小?

如果介质请求确实与打印机匹配,则仍可能会进行裁切或缩放,因为可打印区域可能与介质尺寸不同。某些打印机的纸张处理意味着它们无法一直打印到介质的边缘。在这种情况下,打印机可能会再次缩放或裁剪输出。

您可以通过简单地从不包含任何透明度的测试文件开始轻松地将透明度视为罪魁祸首。如果不确定,那么一种解决方案应该是使用最新版本的Ghostscript并使用pdfimage32设备。这样会从原始PDF创建一个PDF文件,但输出文件将包含位图图像,完全不透明。

为帮助我们考虑问题,查看原始PDF文件,发送给打印机的PDF文件以及最终打印页面的扫描或照片会很有帮助。了解正在使用的Ghostscript的版本,打印机的型号和型号以及如何将PDF文件发送到打印机也将很有用。