将 PDF 转换为透明的 PNG

问题描述 投票:0回答:1

我的目标是从PDF文件中获取具有透明背景的PNG文件。

convert
工具可以完成这项工作:

$ convert test.pdf test.png 
$ file test.png 
test.png: PNG image data, 595 x 842, 8-bit gray+alpha, non-interlaced

但我想在 python 中以编程方式完成此操作,而不依赖于

convert
或任何其他工具。我想出了
pdf2image
包,但我不知道如何获得透明度。这是我的尝试:

import pdf2image
with open("test.pdf", "rb") as fd:
    pdf = pdf2image.convert_from_bytes(fd.read(), transparent=True)
pdf[0].save("test.png")

不幸的是我失去了透明度:

$ python test.py
$ file test.png 
test.png: PNG image data, 1654 x 2339, 8-bit/color RGB, non-interlaced

有没有什么方法可以在不依赖外部工具的情况下使用

pdf2image
或任何其他包来做到这一点?

python pdf python-imaging-library png transparency
1个回答
0
投票

使用 PyMuPDF,您可以执行以下操作:

import pymupdf
doc=pymupdf.open("test.pdf")
for page in doc:
    pix = page.get_pixmap(alpha=True, dpi=150)
    pix.save(f"{doc.name}-{page.number}.png")

生成名为“test.pdf-0.png”等的透明 PNG 图像。 在上述情况下,图像的分辨率为 150 DPI。

注意:我是PyMuPDF的维护者和原始创建者。

© www.soinside.com 2019 - 2024. All rights reserved.