使用 ImageMagick 或 Ghostscript(或其他东西)缩放 PDF 以适应页面?
我需要缩小一些大型 PDF 以在 8.5x11 英寸(标准信函)页面上打印。 ImageMagick/Ghostscript 可以处理这类事情吗?还是因为我使用了错误的工具来完成这项工作,所以遇到了很多麻烦?
仅仅依靠客户端打印对话框中的“缩小到页面”选项并不是一个选择,因为我们希望最终用户能够轻松使用它。
I need to shrink some large PDFs to print on an 8.5x11 inch (standard letter) page. Can ImageMagick/Ghostscript handle this sort of thing, or am I having so much trouble because I'm using the wrong tool for the job?
Just relying on the 'shrink to page' option in client-side print dialogs is not an option, as we'd like for this to be easy-to-use for the end users.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我不会使用
convert
。 它在后台使用 Ghostscript,但速度慢得多。 我会直接使用 Ghostscript,因为它为我提供了更直接的控制(以及对使用convert
更难实现的设置的一些控制)。 为了使 Convert 能够进行 PDF 到 PDF 的转换,您无论如何都需要安装 Ghostscript:I would not use
convert
. It uses Ghostscript in the background, but is much slower. I'd use Ghostscript directly, since it gives me much more direct control (and also some control over settings which are much more difficult to achieve withconvert
). And for convert to work for PDF-to-PDF conversion you'll have Ghostscript installed anyway:使用 ImageMagick 的问题在于,您要转换为光栅图像格式,从而增加文件大小并降低页面上任何矢量元素的质量。
Multivalent 将保留 PDF 的矢量信息。
尝试:
创建一个输出文件 myFile-up.pdf
The problem with using ImageMagick is that you are converting to a raster image format, increasing file size and decreasing quality for any vector elements on your pages.
Multivalent will retain the vector information of the PDF.
Try:
to create an output file myFile-up.pdf
ImageMagick 的 mogrify/convert 命令确实可以完成这项工作。 Stephen Page 的想法几乎是正确的,但您确实还需要设置文件的 dpi,否则您将无法完成工作。
假设您有一个 300 dpi 的文件,并且纵横比已经与 8.5 x 11 相同,则命令将是:
如果纵横比不同,那么您需要进行一些稍微棘手的裁剪。
ImageMagick's mogrify/convert commands will indeed do the job. Stephen Page had just about the right idea, but you do need to set the dpi of the file as well, or you won't get the job done.
Assuming you have a file that's 300 dpi and already the same aspect ratio as 8.5 x 11 the command would be:
If the aspect ratio is different, then you need to do some slightly trickier cropping.
Ghostscript 方法对我来说效果很好。 (我将文件从 Windows PC 移至 Linux 计算机并在那里运行。)我对 Ghostscript 命令做了一个小更改,因为上面的 Ghostscript 调整大小命令完全填充了 8.5 x 11 英寸的页面。 不过,我的打印机无法打印到边缘,因此每个页面边缘都丢失了几毫米。 为了解决这个问题,我将 PDF 文档缩放到 8.5 x 11 英寸的 0.92 英寸。 这样我就可以看到所有内容都集中在页面的中心并有轻微的边距。 因为 0.92 * (2550x3300) = (2346x3036),所以我运行了以下 Ghostscript 命令:
The Ghostscript approach worked well for me. (I moved my file from my Windows PC to a Linux computer and ran it there.) I made one small change to the Ghostscript command because the Ghostscript resize command above completely fills an 8.5 by 11 inch page. My printer cannot print to the edge, though, so several milllimeters along each page edge were lost. To overcome that problem, I scaled my PDF document to 0.92 of a full 8.5 by 11 inches. That way I saw everything centered on the page and had a slight margin. Because 0.92 * (2550x3300) = (2346x3036), I ran the following Ghostscript command:
如果您使用插入> 图像... 在 LibreOffice Writer 中插入 PDF,您可以使用直接操作或其图像属性来调整 PDF 的大小和位置,并且当您“文件”>“ 导出为... PDF PDF 仍然是矢量和文本。 有趣的是,当我使用 PDF 发票执行此操作时,从 LO 导出的 PDF 比原始 PDF 小,但 Linux pdfimages 命令行实用程序建议 LO 保留原始 PDF 中的所有光栅图像。
但是,您希望最终用户能够使用比打印对话框的“缩小到页面”选项更易于使用的选项。 Adobe Acrobat 等工具可以对 PDF 进行布局以形成 PDF 打印作业; 我不知道哪些有一个简单的“将边界框和比例更改为字母大小”。 令人惊讶的是,万能的
qpdf
工具缺少此功能。If you use Insert > Image... in LibreOffice Writer to insert a PDF, you can use direct manipulation or its Image Properties to resize and reposition the PDF, and when you File > Export as... PDF the PDF remains vectors and text. Interestingly when I did this with a PDF invoice the PDF exported from LO is smaller than the original, but the Linux
pdfimages
command-line utility suggests LO preserves any raster images within the original PDF.However, you want something easier-to-use for your end users than the print dialog's "Shrink to page" option. There are tools like Adobe Acrobat that lay out PDFs to form print jobs that are PDFs; I don't know which ones have a simple "Change the bounding box and scale to letter-size". Surprisingly the do-it-all
qpdf
tool lacks this feature.