如何使用Python Ghostscript的高级接口将.pdf文件转换为多个.png文件?



我正在尝试使用Python中的Ghostscript将一个.pdf文件转换为多个.png文件。这里的其他答案都很古老,因此有了这个新线索。

下面的代码是在pypi.org上作为"高级"接口的示例给出的,我正试图根据下面的示例代码对我的代码进行建模。

import sys
import locale
import ghostscript
args = [
"ps2pdf", # actual value doesn't matter
"-dNOPAUSE", "-dBATCH", "-dSAFER",
"-sDEVICE=pdfwrite",
"-sOutputFile=" + sys.argv[1],
"-c", ".setpdfwrite",
"-f",  sys.argv[2]
]
# arguments have to be bytes, encode them
encoding = locale.getpreferredencoding()
args = [a.encode(encoding) for a in args]
ghostscript.Ghostscript(*args)

有人能解释一下这个代码的作用吗?它能以某种方式将.pdf转换为.png文件吗?

我是新手,真的很困惑。非常感谢!

这显然是在调用Ghostscript。从没有生成进程的参数来看,它被链接(动态或静态(到Ghostscript库。

参数是Ghostscript参数。这些都记录在Ghostscript文档中,您可以在此处在线找到。因为它模仿了命令行界面,其中第一个参数是调用程序,所以这里的第一个参数没有意义,可以是你想要的任何东西(正如注释所说(。

接下来的三个参数启用SAFER(它可以防止一些潜在的危险操作,现在无论如何都是默认值(,设置NOPAUSE,以便处理整个输入而不在页面之间暂停,并设置BATCH,以便在完成时退出Ghostscript,而不是返回交互式提示。

然后它选择一个设备。在Ghostscript(由于PostScript语言(中,设备是实际输出的东西。在这种情况下,选择的设备是pdfwrite设备,它输出PDF。

然后是OutputFile,您可能可以猜测这是要写入输出的文件的名称(和路径(。

接下来的3个论点;坦率地说,-c .setpdfwrite -f过时了,毫无意义。曾经在使用pdfwrite设备时推荐使用它们(使用pdfwwrite设备(,但现在它们没有任何有用的效果。

最后一个参数当然是输入文件。

当然,您可以使用Ghostscript将PDF文件渲染为PNG。你想使用一种PNG设备,根据你想要支持的颜色深度,有几种。除非你有一些陌生的要求,只需使用png16m。如果输入文件包含多个页面,则需要将OutputFile设置为使用%d,以便它每页写入一个文件。

当然,有关这一切的更多细节可以在文档中找到。

最新更新