如何使用 GhostScript 设置 PDF 文件的输出图像大小限制

Posted

技术标签:

【中文标题】如何使用 GhostScript 设置 PDF 文件的输出图像大小限制【英文标题】:How can I set limitation of output images size from PDF files using GhostScript 【发布时间】:2016-07-01 13:19:14 【问题描述】:

现在我正在尝试将 PDF 文件转换为图像文件。

我希望使用 GhostScript 从 PDF 文件中获取图像文件。 输出图像应为 500x500 大小。 这意味着图像的整个尺寸被调整为适合 500x500 尺寸。

我已经尝试过以下选项。 无特殊选项:输出图像裁剪为 500x500 大小.... -dFitPage :它自动旋转图像。长边将更改为高度。 其他 -*FitPage 选项相同....

我想要的与使用不旋转的 -dFitPage 相同。

你有什么办法解决这个问题吗?

【问题讨论】:

您提到的唯一选项是“-dFitPage”,您必须做的不止这些,因为它对 PDF 文件完全没有影响,除非您还设置了固定的媒体大小。如果您不喜欢 FitPage 的工作方式,那么您当然可以重写它以不允许旋转。相关代码适用于 pdf_main.ps 中的“PDFFitPage”,尤其是在 pdfshowpage_setup 中(第 2225 行附近)。或者,您可以编写一个自定义的 setpagedevice 处理程序来发现媒体请求,删除它们,但缩放内容以适应。 谢谢!我会试试的。 【参考方案1】:

是的,使用 ghostscript 是不可能的,但您可以像我一样使用自定义位图使其工作

 var outputPNGPath = Path.Combine(outputFolder, string.Format("0.jpeg", filename));
                var pdf2PNG = rasterizer.GetPage(xDpi, yDpi, i);
                Bitmap resized = new Bitmap(pdf2PNG, new Size(1240, 1754));
                resized.Save(outputPNGPath, ImageFormat.Jpeg);
                pdf2PNG.Dispose();
                resized.Dispose();

这对我来说可以将 1240*1654 图像转换为 1240*1754

【讨论】:

【参考方案2】:

谢谢肯斯!! 我认为这是解决这个问题的最终方法。 因为每当新版本的 GS 到来时我都应该重新编辑 GhostScript..

无论如何,我理解没有办法。我会试试!

【讨论】:

以上是关于如何使用 GhostScript 设置 PDF 文件的输出图像大小限制的主要内容,如果未能解决你的问题,请参考以下文章

使用 ghostscript 将 PDF 转换为 x-3:2002 时,我应该使用哪些设置来保持颜色正确?

Ghostscript 设置 - 将任何 jpg 转换为 pdf 时出错

如何使用 Ghostscript 和 Ghostscript .NET 通过嵌入 IIC 配置文件生成正确的 PDF/A

如何使用 ghostscript 将 PDF 转换为 PDF/A 或 PDF/X?

使用 Ghostscript 更改 PDF 不透明度

Ghostscript 剪辑一个 pdf 文件