我有一组pdf文件,每个文件都包含一张A4纸的扫描件,尺寸不同。我想将它们转换为图像并修复传出图像的分辨率。
我要转换为jpg(不调整大小)的代码:
from pdf2image import convert_from_path
filename_in = 'myfile.pdf'
filename_out = 'myfile.jpg'
jpeg = convert_from_path( filename_in )
jpeg[0].save( filename_out , 'JPEG' )
如果我尝试转换的pdf中有任何颜色,则以上操作无效,并且传出的图像完全是白色的(尺寸非零)。这是一个已知问题,是否存在解决方案?
我正在使用Python 3.7.3。
我无法共享pdf文件,因为它们包含私人信息。
答案 0 :(得分:0)
您可以尝试提取图像并纠正分辨率,而不用转换PDF。
尝试pdfreader,这是从文档中提取所有图像(内联图像和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
然后,您可以将图像转换为PIL/Pillow对象并保存(或执行所需的任何操作)
for i, img in enumerate(images):
img.to_Pillow().save("{}.png".format(i))