• Python自动化小技巧23——PDF文件拆分为单独页面(PyMuPDF)


    其实编辑PDF用Adobe就行,它功能超级齐全,可是这玩意要收费...去弄免费破解版,找资源又得半天,所以用python来拆分PDF文件吧,可以批量化处理。

    至于为什么不用WPS.....别问,问就是不想开会员。


    脚本代码

    安装PyMuPDF库,

    pip install PyMuPDF
    

    代码: 

    1. import fitz # PyMuPDF
    2. def split_pdf(input_pdf, output_folder):
    3. pdf_document = fitz.open(input_pdf)
    4. for page_num in range(pdf_document.page_count):
    5. page = pdf_document[page_num]
    6. # 构建输出文件名,以页数命名
    7. output_pdf = f"{output_folder}/Page_{page_num + 1}.pdf"
    8. # 创建一个新的Document对象,包含当前页面
    9. new_pdf = fitz.open()
    10. new_pdf.insert_pdf(pdf_document, from_page=page_num, to_page=page_num)
    11. # 保存单独的PDF文件
    12. new_pdf.save(output_pdf)
    13. new_pdf.close()
    14. pdf_document.close()
    15. if __name__ == "__main__":
    16. input_pdf = "157-GGCG[2021]157成套门--武汉******有限公司356996.80.pdf"
    17. output_folder = "C:\\Users\\cx\\Desktop\\pdf"
    18. split_pdf(input_pdf, output_folder)

    把输入路径和输出路径都改一下就行了,整个PDF就会被拆分为一页一页的单独的文件。

    如果只需要某一页的话,按照文件名拿出来就行。

    需要某些面的话,按照PyMuPDF的语法改就行。


    其他用法:

    PyMuPDF(也称为fitz)是一个强大的Python库,用于处理PDF文件。除了拆分PDF文件,它还提供了许多其他常用的方法和功能。以下是一些常见的PyMuPDF方法和用法示例:

    1. 提取文本内容

      使用get_page_text方法可以提取PDF页的文本内容。以下是一个示例:

      1. import fitz
      2. def extract_text_from_pdf(pdf_file):
      3. pdf_document = fitz.open(pdf_file)
      4. text = ""
      5. for page_num in range(pdf_document.page_count):
      6. page = pdf_document[page_num]
      7. text += page.get_text()
      8. pdf_document.close()
      9. return text
      10. pdf_text = extract_text_from_pdf("your_pdf.pdf")
      11. print(pdf_text)

    2. 获取页面信息

      您可以使用get_page_info方法来获取PDF页的信息,如大小和旋转。以下是一个示例:

      1. import fitz
      2. def get_page_info(pdf_file):
      3. pdf_document = fitz.open(pdf_file)
      4. for page_num in range(pdf_document.page_count):
      5. page = pdf_document[page_num]
      6. page_info = page.get_page_info()
      7. print(f"Page {page_num + 1}: Size={page_info['size']}, Rotation={page_info['rotate']}")
      8. get_page_info("your_pdf.pdf")

    3. 旋转页面

      您可以使用set_rotation方法来旋转PDF页面。以下是一个示例:

      1. import fitz
      2. def rotate_page(pdf_file, page_num, degrees):
      3. pdf_document = fitz.open(pdf_file)
      4. page = pdf_document[page_num - 1]
      5. page.set_rotation(degrees)
      6. pdf_document.save("rotated_pdf.pdf")
      7. pdf_document.close()
      8. rotate_page("your_pdf.pdf", 1, 90) # 将第一页旋转90度

    4. 插入页面

      使用insert_pdf方法可以将一个PDF文件的页面插入到另一个PDF文件中。以下是一个示例:

      1. import fitz
      2. def insert_page(source_pdf, target_pdf, page_num):
      3. source_document = fitz.open(source_pdf)
      4. target_document = fitz.open(target_pdf)
      5. target_document.insert_pdf(source_document, from_page=page_num - 1, to_page=page_num - 1)
      6. target_document.save("merged_pdf.pdf")
      7. source_document.close()
      8. target_document.close()
      9. insert_page("insert.pdf", "target.pdf", 2) # 将insert.pdf的第二页插入到target.pdf中

    这些示例展示了PyMuPDF的一些常见用法。PyMuPDF还提供了许多其他功能,如合并PDF、添加注释、提取图像等等。您可以根据需要查阅PyMuPDF的文档以了解更多详细信息和用法。

    咱也不装,这都是chatgpt写的....但是很对,是有用的。

  • 相关阅读:
    HIPPO-4J 1.3.0 正式发布:支持 Dubbo、RibbitMQ、RocketMQ 框架线程池
    【yarn】CDP集群 Yarn配置capacity调度器批量分配
    嵌入式开发--Altium技巧:原理图设置
    《WEB前端框架开发技术》HTML5响应式旅游景区网站——榆林子州HTML+CSS+JavaScript
    [附源码]Python计算机毕业设计Django基于Java的图书购物商城
    Http提高性能的两种方案:缓存、懒加载
    HSRP热备份路由器协议的解析和配置
    js数组常用方法
    JUC系列(三) 不安全的集合类
    SpringCloud微服务 【实用篇】| Eureka注册中心、Ribbon负载均衡
  • 原文地址:https://blog.csdn.net/weixin_46277779/article/details/133172063