在macOS上使用Python将PDF图像转换为PNG

在macOS上使用Python将PDF图像转换为PNG,python,macos,pdf,imagemagick,pythonmagick,Python,Macos,Pdf,Imagemagick,Pythonmagick,我读过很多文章,试图描述如何将PDF转换为PNG图像。但我就是不能让它工作。我试图在脚本的顶部导入PythonMagick,但它返回了错误:没有名为PythonMagick的模块 有没有可能通过自制软件像shell工具一样简单地安装PythonMagick?!背景是我的Python脚本,它比等效的Bash脚本短得多。唯一不起作用的是最终图像的PDF到PNG转换和缩放。在Bash中,我使用Imagemagick来实现这一点,但我也想在Python中实现这一点,因为它是一个单行程序 有什么想法吗 编

我读过很多文章,试图描述如何将PDF转换为PNG图像。但我就是不能让它工作。我试图在脚本的顶部导入PythonMagick,但它返回了错误:没有名为PythonMagick的模块

有没有可能通过自制软件像shell工具一样简单地安装PythonMagick?!背景是我的Python脚本,它比等效的Bash脚本短得多。唯一不起作用的是最终图像的PDF到PNG转换和缩放。在Bash中,我使用Imagemagick来实现这一点,但我也想在Python中实现这一点,因为它是一个单行程序

有什么想法吗

编辑

代码可以在Github上找到:

找到解决方案

使用魔杖效果更好,所以我用这个。要安装它,我执行了以下操作:

$ brew install imagemagick@6
$ export MAGICK_HOME=/usr/local/opt/imagemagick@6

请尝试以下错误:没有名为PythonMagick的模块

也看看这个

尝试从更改:。导入PythonMagick导入PythonMagick在您init.py的PythonMagick中


请尝试以下错误:没有名为PythonMagick的模块

也看看这个

尝试从更改:。导入PythonMagick导入PythonMagick在您init.py的PythonMagick中


我不建议您使用
imagemagick
。因为此工具在pdf文件中按像素而不是矢量渲染输出。因此,如果pdf文件的原始分辨率远低于输出png文件的分辨率,则会造成质量损失

尝试使用
mupdf
。您应该使用的命令
mudraw
因版本而异。大多数情况下,它应该是:

mudraw [-h 1080] [-w 1080] [-o <output_path>] <input_path> 
mudraw[-h1080][-w1080][-o]

此工具可以操纵矢量,因此无论您如何缩放原始文件,都不会出现任何质量损失。

我不建议您使用
imagemagick
。因为此工具在pdf文件中按像素而不是矢量渲染输出。因此,如果pdf文件的原始分辨率远低于输出png文件的分辨率,则会造成质量损失

尝试使用
mupdf
。您应该使用的命令
mudraw
因版本而异。大多数情况下,它应该是:

mudraw [-h 1080] [-w 1080] [-o <output_path>] <input_path> 
mudraw[-h1080][-w1080][-o]

该工具可以操纵矢量,因此无论您如何缩放原始文件,都不会出现任何质量损失。

您可以将苹果自己的CoreGraphics API与python脚本“开箱即用”结合使用。以下脚本将PDF文件(作为参数提供)转换为PNG。它还可以用于Automator的“运行Shell脚本”操作


您可以使用苹果自己的CoreGraphics API和python脚本“开箱即用”。以下脚本将PDF文件(作为参数提供)转换为PNG。它还可以用于Automator的“运行Shell脚本”操作



你试过pip安装FPDF吗?如何使用它?由于我是Python新手,所以无法使其真正工作:抱歉,fpdf可能不是正确的选择,但请使用PythonMagick查看此链接。你也可以发布你的代码哦,对不起,是的,我的代码可以在:你不应该修改问题来添加答案,而是添加一个正确的答案(自动回答)。你尝试过pip安装FPDF吗?如何使用它?由于我是Python新手,所以无法使其真正工作:抱歉,fpdf可能不是正确的选择,但请使用PythonMagick查看此链接。你也可以发布你的代码哦,对不起,是的,我的代码可以在:你不应该修改问题来添加答案,而是添加一个正确的答案(自我回答是)。我在哪里可以找到这个文件?网站包目录我在哪里可以找到这个文件?网站包目录我要尝试mupdf。同时,你能证实我从你的回答中理解了什么吗?目前,我正在放大到1600%的PDF文件,然后拍摄快照并将其保存为PNG文件,因此在很大程度上分辨率是好的,但之后我开始看到像素化效果。当然,PDF是矢量化图像,而PNG是光栅化图像。使用mupdf是否允许在转换为PNG后保留原始分辨率?@SKR,只要您的pdf是基于矢量的。我的意思是,你知道,pdf仍然可以包含原始图像,对吗?这不是基于向量的。但是矢量图是基于矢量的图像,可以在没有任何损失的情况下放大。是的,你是对的,使用预定义的DPI转换为PDF通过扫描仪扫描的图像仍然有局限性。我使用的是完全基于矢量的,即使是6400%,也非常清晰。所以我放大到1600%,拍摄快照并转换成PNG,因为我必须执行OCR。对每个PDF图像手动执行此操作是很麻烦的,因此我希望能够自动执行此过程或使用一些实用程序,以足够高的分辨率将PDF(纯矢量)转换为PNG。mupdf是免费软件吗?当然是免费的。我要试试mupdf。同时,你能证实我从你的回答中理解了什么吗?目前,我正在放大到1600%的PDF文件,然后拍摄快照并将其保存为PNG文件,因此在很大程度上分辨率是好的,但之后我开始看到像素化效果。当然,PDF是矢量化图像,而PNG是光栅化图像。使用mupdf是否允许在转换为PNG后保留原始分辨率?@SKR,只要您的pdf是基于矢量的。我的意思是,你知道,pdf仍然可以包含原始图像,对吗?这不是基于向量的。但是矢量图是基于矢量的图像,可以在没有任何损失的情况下放大。是的,你是对的,使用预定义的DPI转换为PDF通过扫描仪扫描的图像仍然有局限性。我使用的是完全基于矢量的,即使是6400%,也非常清晰。所以我放大到1600%,拍摄快照并转换成PNG,因为我必须执行OCR。为每个PDF图像手动执行此操作很麻烦