问题描述
我正在使用以下代码打开PDF文件,并将其转换为图像文件作为输出。现在,我试图弄清楚如何循环下一页并将其转换为相同的输出文件。任何帮助深表感谢!
# display image on the canvas
def openFile(self,_value=False):
global fileImg,output
path = os.path.dirname(ustr(self.filePath)) if self.filePath else '.'
fileImg = QFileDialog.getopenFileName(self,'%s - Choose file' % __appname__,path)
# convert PDF to image file
pdffile = fileImg
doc = fitz.open(pdffile)
page = doc.loadPage(0)
pix = page.getpixmap(matrix=fitz.Matrix(100 / 72,100 / 72))
output = "output.png"
pix.writePNG(output)
解决方法
您可以使用minecart并使用此代码段将pdf拆分为图像
import minecart
from PIL import Image
file =open('Yourdoc.pdf','rb')
doc = minecart.Document(file)
page=doc.iter_pages()
pageref=[]
for j,i in enumerate( page):
im = i.images[0].as_pil()
im.save(f"folderlocation/{j}.jpg")
,
您可以简单地在doc
对象上循环以获取下一页。
doc = fitz.open(file_name) # open document
for page in doc: # iterate through the pages
pix = page.getPixmap(...) # render page to an image
pix.writePNG("page-%i.png" % page.number) # store image as a PNG
检查PyMuPDF documentation以获得更多信息。