Jed*_*Jed 3 python pdf jpeg ghostscript
我正在尝试将一页或多页的PDF文件转换为每页的图像。这非常像这里的问题。实际上,我正在尝试使用该帖子中@Idan Yacobi的代码来完成此任务。他的代码如下所示:
import ghostscript
def pdf2jpeg(pdf_input_path, jpeg_output_path):
args = ["pdf2jpeg", # actual value doesn't matter
"-dNOPAUSE",
"-sDEVICE=jpeg",
"-r144",
"-sOutputFile=" + jpeg_output_path,
pdf_input_path]
ghostscript.Ghostscript(*args)
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我从python得到以下输出:
##### 238647312 c_void_p(238647312L)
当我查看应该在其中创建新.jpg图像的文件夹时,那里有一个具有新名称的文件。但是,当我尝试打开文件时,图像预览显示“ Windows Photo Viewer无法打开该图片,因为该图片正在其他程序中进行编辑。”
似乎出于某种原因,Ghostscript打开了文件并写入了文件,但是在完成后没有关闭文件。我有什么办法可以强迫这种情况发生?还是我想念其他东西?
我已经尝试将上面的最后一行更改为下面的代码,以在完成后显式关闭ghostscript。
GS = ghostscript.Ghostscript(*args)
GS.exit()
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了同样的问题,即图像文件保持打开状态,但是当我查看ghostscript 初始化 .py文件(位于以下目录:PythonDirectory \ Lib \ site-packages \ ghostscript__init __。py)时,exit方法有一行评论。
默认情况下,gs.exit(self._instance)行被注释,但是当您取消注释该行时,图像文件将被关闭。
def exit(self):
global __instance__
if self._initialized:
print '#####', self._instance.value, __instance__
if __instance__:
gs.exit(self._instance) # uncomment this line
self._instance = None
self._initialized = False
Run Code Online (Sandbox Code Playgroud)