Python pdf2image-convert_from_path返回带有颜色的PDF的空图像

Python pdf2image-convert_from_path返回带有颜色的PDF的空图像,python,image-processing,Python,Image Processing,我有一套PDF文件,每一份都有一张A4纸的扫描,大小不一。我想将它们转换为图像,并固定输出图像的分辨率 要转换为jpg的我的代码(不调整大小): 如果我试图转换的pdf中有任何颜色,则上述内容不起作用,输出图像为完全白色(非零维)。这是一个已知的问题,是否存在解决方案 我正在使用Python 3.7.3 我无法共享pdf文件,因为它们包含私人信息 您可以尝试提取图像并纠正分辨率,而不是转换PDF 试试看,下面是从文档中提取所有图像(内联和XObject)的示例代码 from pdfreader

我有一套PDF文件,每一份都有一张A4纸的扫描,大小不一。我想将它们转换为图像,并固定输出图像的分辨率

要转换为jpg的我的代码(不调整大小):

如果我试图转换的pdf中有任何颜色,则上述内容不起作用,输出图像为完全白色(非零维)。这是一个已知的问题,是否存在解决方案

我正在使用Python 3.7.3


我无法共享pdf文件,因为它们包含私人信息

您可以尝试提取图像并纠正分辨率,而不是转换PDF

试试看,下面是从文档中提取所有图像(内联和XObject)的示例代码

from pdfreader import SimplePDFViewer, PageDoesNotExist

fd = open(you_pdf_file_name, "rb")
viewer = SimplePDFViewer(fd)

images = []
try:
    while True:
        viewer.render()
        images.extend(viewer.canvas.inline_images)
        images.extend(viewer.canvas.images.values())
        viewer.next()
except PageDoesNotExist:
    pass

然后,您可以将图像转换为对象并保存(或执行任何需要的操作)

from pdfreader import SimplePDFViewer, PageDoesNotExist

fd = open(you_pdf_file_name, "rb")
viewer = SimplePDFViewer(fd)

images = []
try:
    while True:
        viewer.render()
        images.extend(viewer.canvas.inline_images)
        images.extend(viewer.canvas.images.values())
        viewer.next()
except PageDoesNotExist:
    pass

for i, img in enumerate(images):
    img.to_Pillow().save("{}.png".format(i))