【Python】PyMuPDF模块将PDF转换为图片

浅浅的花香味﹌ 2023-06-06 08:24 75阅读 0赞

上一篇文章介绍了pdf2image模块+poppler将PDF转换为图片,这篇文章主要介绍另外一个模块PyMuPDF。
PyMuPDF(又名“fitz”):MuPDF的Python绑定,它是一个轻量级的PDF和XPS查看器。该库可以访问PDF,XPS,OpenXPS,epub,漫画和小说书籍格式的文件,并以其顶级性能和高渲染质量而闻名。
第三方库 PyMuPDF 在 python 环境下对 PDF 文件的操作,特别是图片和pdf之间相互转换比较方便,并且能较方便的执行一些如追加删除之类的功能。
文档地址:https://pymupdf.readthedocs.io/en/latest/

github地址:https://github.com/pymupdf/PyMuPDF

  1. # -*- coding: utf-8 -*-
  2. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  3. #作者:cacho_37967865
  4. #博客:https://blog.csdn.net/sinat_37967865
  5. #文件:PyMuPDFModel.py
  6. #日期:2019-10-10
  7. #备注:pip install PyMuPDF
  8. https://github.com/pymupdf/PyMuPDF
  9. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  10. import fitz
  11. from operator import itemgetter
  12. import os
  13. import time
  14. from saveFile import a_save_txt
  15. # 将pdf转换为图片
  16. def pdf_to_image(pdfPath, imagePath):
  17. pdfDoc = fitz.open(pdfPath)
  18. for pg in range(pdfDoc.pageCount):
  19. page = pdfDoc[pg]
  20. pix = page.getPixmap(alpha=False) # 默认是720*x尺寸
  21. if not os.path.exists(imagePath):
  22. os.makedirs(imagePath)
  23. pix.writePNG(imagePath+'/'+'images_%s.jpg' % pg) #将图片写入指定的文件夹内
  24. # 将pdf转换为txt文字
  25. def pdf_to_text(pdfPath, textPath):
  26. doc = fitz.open(pdfPath)
  27. for page in doc:
  28. text = page.getText()
  29. print(text)
  30. a_save_txt(textPath,text)
  31. def pdf_to_TextBlocks(pdfPath, textPath):
  32. doc = fitz.open(pdfPath)
  33. for page in doc:
  34. blocks = page.getTextBlocks()
  35. sb = sorted(blocks, key=itemgetter(1, 0))
  36. for b in sb:
  37. print(b[4])
  38. def main():
  39. sTime = time.time()
  40. #pdf_to_image('1.pdf', 'F:\image\\output\\')
  41. pdf_to_text('1.pdf', 'F:\image\pdftxt.txt')
  42. #pdf_to_TextBlocks('1.pdf', 'F:\image\pdftxt.txt')
  43. eTime = time.time()
  44. s = eTime - sTime
  45. print('花费的时间为:%.2f秒' % (s))
  46. if __name__ == '__main__':
  47. main()

发表评论

表情:
评论列表 (有 0 条评论,75人围观)

还没有评论,来说两句吧...

相关阅读