我正在尝试使用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文件吗?
我对此并不陌生,感到非常困惑。非常感谢!
显然是在叫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,以便每页写入一个文件。
当然,所有这些的更多详细信息都可以在文档中找到。