如何使用 Python Ghostscript 的高级接口将一个 .pdf 文件转换为多个 .png 文件?
How do you use Python Ghostscript's high-level interface to convert a .pdf file into multiple .png files?
我正在尝试使用 Python 中的 Ghostscript 将一个 .pdf 文件转换为多个 .png 文件。这里的其他答案很旧,因此这个新线程。
以下代码是在 'high level' 接口的 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文档中,你可以在网上找到它here。因为它模仿命令行界面,第一个参数是调用程序,所以这里的第一个参数是没有意义的,可以是你想要的任何东西(如注释所说)。
接下来的三个参数打开 SAFER(它可以防止一些潜在的危险操作,现在无论如何都是默认设置),设置 NOPAUSE 以便处理整个输入而不会在页面之间暂停,以及 BATCH 以便在完成时退出 Ghostscript而不是返回交互式提示。
然后选择一个设备。在 Ghostscript 中(由于 PostScript 语言)设备是实际输出的东西。在这种情况下,选择的设备是 pdfwrite 设备,它输出 PDF。
然后是OutputFile,你大概能猜到这是要写入输出的文件名(和路径)。
接下来的3个参数; -c .setpdfwrite -f
坦率地说是过时且毫无意义的。它们曾经在使用 pdfwrite 设备时被推荐使用(并且仅 pdfwrite 设备)但是这些天它们没有任何有用的效果。
最后一个参数当然是输入文件。
当然,您可以使用 Ghostscript 将 PDF 文件渲染为 PNG。您想要使用其中一种 PNG 设备,有多种设备取决于您要支持的颜色深度。除非你有一些陌生的要求,否则就使用 png16m。如果您的输入文件包含多个页面,您需要将 OutputFile 设置为使用 %d 以便它每页写入一个文件。
当然,可以在文档中找到有关所有这些的更多详细信息。
我正在尝试使用 Python 中的 Ghostscript 将一个 .pdf 文件转换为多个 .png 文件。这里的其他答案很旧,因此这个新线程。
以下代码是在 'high level' 接口的 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文档中,你可以在网上找到它here。因为它模仿命令行界面,第一个参数是调用程序,所以这里的第一个参数是没有意义的,可以是你想要的任何东西(如注释所说)。
接下来的三个参数打开 SAFER(它可以防止一些潜在的危险操作,现在无论如何都是默认设置),设置 NOPAUSE 以便处理整个输入而不会在页面之间暂停,以及 BATCH 以便在完成时退出 Ghostscript而不是返回交互式提示。
然后选择一个设备。在 Ghostscript 中(由于 PostScript 语言)设备是实际输出的东西。在这种情况下,选择的设备是 pdfwrite 设备,它输出 PDF。
然后是OutputFile,你大概能猜到这是要写入输出的文件名(和路径)。
接下来的3个参数; -c .setpdfwrite -f
坦率地说是过时且毫无意义的。它们曾经在使用 pdfwrite 设备时被推荐使用(并且仅 pdfwrite 设备)但是这些天它们没有任何有用的效果。
最后一个参数当然是输入文件。
当然,您可以使用 Ghostscript 将 PDF 文件渲染为 PNG。您想要使用其中一种 PNG 设备,有多种设备取决于您要支持的颜色深度。除非你有一些陌生的要求,否则就使用 png16m。如果您的输入文件包含多个页面,您需要将 OutputFile 设置为使用 %d 以便它每页写入一个文件。
当然,可以在文档中找到有关所有这些的更多详细信息。