Python - wand 不会转换所有页面?
Python - wand does not convert all the pages?
我正在尝试将 PDF 转换为 jpg 文件。如果我转换一个大的 pdf 文件(~80 页)Wand 只转换前 22 页。
with Img(filename=file, resolution=300) as pic:
library.MagickResetIterator(pic.wand)
pic.scene = 1 # Start cpt of filename at 1 instead of 0
pic.compression_quality = 100
pic.background_color = Color("white")
pic.alpha_channel = 'remove'
pic.save(filename=(self.output_dir + '/result.jpg'))
我不明白为什么,任何帮助都会很棒
谢谢
我倾向于认为这与该操作的工作方式有关。当您打开 .pdf
文件时,它会将 objects
保存在内存中,这受到系统允许的限制。这意味着您的内存不允许超过 22 页。加载 80 页 pdf 页面会占用大量内存 space,您的解决方案不适用于此类任务。
我会推荐这样的东西 (credit)
使用pdf2image
pip install pdf2image
然后用它从pdf中获取图像
from pdf2image import convert_from_path
pages = convert_from_path('pdf_file', 500)
for page in pages:
page.save('out.png', 'png')
我正在尝试将 PDF 转换为 jpg 文件。如果我转换一个大的 pdf 文件(~80 页)Wand 只转换前 22 页。
with Img(filename=file, resolution=300) as pic:
library.MagickResetIterator(pic.wand)
pic.scene = 1 # Start cpt of filename at 1 instead of 0
pic.compression_quality = 100
pic.background_color = Color("white")
pic.alpha_channel = 'remove'
pic.save(filename=(self.output_dir + '/result.jpg'))
我不明白为什么,任何帮助都会很棒
谢谢
我倾向于认为这与该操作的工作方式有关。当您打开 .pdf
文件时,它会将 objects
保存在内存中,这受到系统允许的限制。这意味着您的内存不允许超过 22 页。加载 80 页 pdf 页面会占用大量内存 space,您的解决方案不适用于此类任务。
我会推荐这样的东西 (credit)
使用pdf2image
pip install pdf2image
然后用它从pdf中获取图像
from pdf2image import convert_from_path
pages = convert_from_path('pdf_file', 500)
for page in pages:
page.save('out.png', 'png')