使用python将pdf转换为png(不使用pdf2image)

Ber*_*nes 14 python pdf png pdf2image

我想将 pdf(一页)转换为 png 文件。我安装了 pdf2image 并收到此错误:popler 未安装在 Windows 中。

根据这个问题: Poppler in path for pdf2image,应该安装 poppler 并修改 PATH 。

我无法执行这些操作(我在正在使用的系统中没有必要的权限)。

我查看了 opencv 和 PIL,似乎都没有提供进行此转换的可能性:PIL(请参阅此处https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html?highlight= pdf#pdf)不提供阅读 pdf 的功能,只能将图像另存为 pdf。openCV 也是如此。

有什么建议如何将 pdf 转换为 png 吗?我可以安装任何 python 库,但无法触及 Windows 安装。

谢谢

Seo*_*eon 12

PyMuPDF支持 pdf 到图像光栅化,无需任何外部依赖项。

进行基本 pdf 到 png 转换的示例代码:

import fitz  # PyMuPDF, imported as fitz for backward compatibility reasons
file_path = "my_file.pdf"
doc = fitz.open(file_path)  # open document
for i, page in enumerate(doc):
    pix = page.get_pixmap()  # render page to an image
    pix.save(f"page_{i}.png")
Run Code Online (Sandbox Code Playgroud)


Jor*_*Kie 10

下面是生成任意分辨率 (dpi) 的 PNG 图像的片段:

import fitz
file_path = "my_file.pdf"
dpi = 300  # choose desired dpi here
zoom = dpi / 72  # zoom factor, standard: 72 dpi
magnify = fitz.Matrix(zoom, zoom)  # magnifies in x, resp. y direction
doc = fitz.open(fname)  # open document
for page in doc:
    pix = page.get_pixmap(matrix=magnify)  # render page to an image
    pix.save(f"page-{page.number}.png")
Run Code Online (Sandbox Code Playgroud)

生成 PNG 文件名称page-0.png, page-1.png, ... 通过选择dpi < 72缩略图页面图像将被创建。

  • 第二行应该是 fname =,而不是 file_path = (2认同)