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

问题描述 投票:0回答:1

我正在尝试使用Python中的Ghostscript将.pdf文件转换为几个.png文件。这里的其他答案很旧,因此有了这个新主题。

[以下代码是在pypi.org上的'high'界面的示例,我正在尝试根据以下示例代码对我的代码进行建模。

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文件吗?

我对此并不陌生,感到非常困惑。非常感谢!

python ghostscript
1个回答
0
投票

显然是在叫Ghostscript。从其参数来看,它不会使进程无效,而是将其(动态或静态)链接到Ghostscript库。

args是Ghostscript参数。这些已记录在Ghostscript文档中,您可以在线找到它here。因为它模仿命令行界面(第一个参数是调用程序),所以这里的第一个参数是没有意义的,可以是您想要的任何内容(如注释中所述)。

接下来的三个参数打开SAFER(这可以防止某些潜在的危险操作,现在仍然是默认设置),设置NOPAUSE,以便处理整个inptu,而不会在页面之间暂停,并且BATCH,以便在完成Ghostscript时退出而不是返回互动提示。

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

然后是OutputFile,您可能会猜到这是要写入oputptu的文件的名称(和路径)。

接下来的3个参数;坦率地说,“ -c .setpdfrite -f”是毫无意义的。曾经在使用pdfwrite设备(和only pdfwrite设备)时建议使用它们,但如今它们没有任何作用。

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

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

当然,所有这些的更多详细信息都可以在文档中找到。

© www.soinside.com 2019 - 2024. All rights reserved.