GhostScript PS 到 PDF 的转换 - 裁剪了一些部分

Posted

技术标签:

【中文标题】GhostScript PS 到 PDF 的转换 - 裁剪了一些部分【英文标题】:GhostScript PS to PDF converting - cropted some parts 【发布时间】:2020-05-26 18:39:07 【问题描述】:

我尝试将 Python Tkinter 画布转换为 pdf。为此,我使用了 Ghostscript。这是代码部分,

canvas.postscript(file="tmp.ps",colormode='color')
somecommand = "gswin64c -o output.pdf -sDEVICE=pdfwrite -g57750x62070 - dPDFFitPage tmp.ps"
call(somecommand, shell=True)

输出的 pdf 尺寸较大,但 pdf 显示的画布 GUI 被裁剪,并且位于 pdf 的左下角。

我想在 pdf 上显示完整的画布。

【问题讨论】:

【参考方案1】:

您已指定 -dPDFFitPage,但您的输入文件似乎是 PostScript(根据“.ps”扩展名和您的问题标题判断)。 PDFFitPage 适用于 PDF 输入。即使使用更简单的-dFitPage 中的-dPSFitPage,也只有在输入 PostScript 程序请求媒体大小时才有效。如果不是,则解释器无法判断其边界框是什么,因此无法缩放以适应媒体。

您还以像素 (-g57750x62070) 为单位指定了媒体尺寸,这在输入和输出为矢量格式时完全不合适。值得一提的是,您指定的固定介质尺寸为(大约)80 英寸 x 86 英寸,使用默认分辨率 720 dpi。

如果您只想将 PostScript 文件转换为 PDF 文件,那么更简单:

gs -sDEVICE=pdfwrite -o out.pdf input.ps

足够了。

【讨论】:

以上是关于GhostScript PS 到 PDF 的转换 - 裁剪了一些部分的主要内容,如果未能解决你的问题,请参考以下文章

Ghostscript:为啥我必须为 PDF/A 转换提供 pdfa_def.ps?

通过 Ghostscript 将 PS 文件转换为 PDF/A,色彩空间问题

Ghostscript错误使用pdfwrite将多页PS转换为多页PDF

PS转PDF。 GhostScript 异常 - 无法初始化 Ghostscript 解释器。错误代码是-100

使用 Ghostscript 指定 PDF 页面大小

使用 Ghostscript 将 PDF 转换为 PDF/X1a 时透明度丢失