0

我正在使用 usps 中的国内运输标签 api 来生成 pdf 格式的国内运输标签。我设法裁剪了 pdf 文件的顶部,这是 usps 所需的标签,而忽略了底部,这是运输中不需要的收据。

我使用 Ghostscript /Cropbox 来裁剪我只想要成功的部分,但是当我尝试在 linux cups 中打印裁剪的 pdf 文件时,我会打印整个未裁剪的 pdf,而不是裁剪的 pdf 文件。为什么它仍然打印整个文件而不是只打印裁剪的部分?

这是我用来裁剪 usps 运输标签的脚本。

gs -o cropped.pdf -sDEVICE=pdfwrite -c "[/CropBox [50.4 460.5 484.4 750.5] /PAGES pdfmark" -f uncropped.pdf

然后将其方向更改为纵向,我使用 pdftk

pdftk cropped.pdf cat 1L output cropped_portrait.pdf

要在 linux cups 中打印它,我正在使用该命令。

lp cropped_portrait.pdf

但是当我打印它时,它打印的是 uncropped.pdf 文件而不是cropped_portrait.pdf。为什么这样做?我什至删除了 uncropped.pdf 并再次尝试打印,但它仍然打印 uncropped.pdf。

这是未裁剪和裁剪的 USPS 运输标签的两个文件。

未裁剪的 PDF 文件 未裁剪的 PDF 文件

裁剪的 PDF 文件

在此处输入图像描述

希望你能帮我解决这个问题,

谢谢

4

1 回答 1

1

大概是缩小的 PDF 文件正确显示,因此 Ghostscript 生成 PDF 文件没有问题。

至于为什么打印过程不尊重 CropBox,实际上没有理由这样做。PDF中有很多Box,打印应用程序没有真正的方法知道您要使用哪个。因此,打印应用程序通常默认使用您未更改的 MediaBox(请注意,更改 CropBox 不会更改 PDF 文件的内容,只会更改显示的内容)。

现在,如果您的 CUPS 链正在使用 Ghostscript 渲染 PDF 文件,或者将其转换为 PostScript,则可以解决此问题,您需要在命令行中添加 -dUseCropBox。但是我不是 CUPS 专家,所以我不能告诉你如何去做。如果 CUPS 不使用 Ghostscript,那么它可能仍然可以指示正在执行转换的任何对象使用 CropBox,但是您将必须找出涉及的应用程序并为该应用程序适当地更改命令。

于 2013-04-26T07:37:21.590 回答