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

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

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


脚本代码

先安装PyMuPDF库,

pip install PyMuPDF

代码: 

import fitz  # PyMuPDF

def split_pdf(input_pdf, output_folder):
    pdf_document = fitz.open(input_pdf)
    
    for page_num in range(pdf_document.page_count):
        page = pdf_document[page_num]
        
        # 构建输出文件名,以页数命名
        output_pdf = f"{output_folder}/Page_{page_num + 1}.pdf"
        
        # 创建一个新的Document对象,包含当前页面
        new_pdf = fitz.open()
        new_pdf.insert_pdf(pdf_document, from_page=page_num, to_page=page_num)
        
        # 保存单独的PDF文件
        new_pdf.save(output_pdf)
        new_pdf.close()
    
    pdf_document.close()

if __name__ == "__main__":
    input_pdf = "157-GGCG[2021]157成套门--武汉******有限公司356996.80.pdf"  
    output_folder = "C:\\Users\\cx\\Desktop\\pdf"  
    split_pdf(input_pdf, output_folder)

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

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

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


其他用法:

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

  1. 提取文本内容

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

    import fitz
    
    def extract_text_from_pdf(pdf_file):
        pdf_document = fitz.open(pdf_file)
        text = ""
        for page_num in range(pdf_document.page_count):
            page = pdf_document[page_num]
            text += page.get_text()
        pdf_document.close()
        return text
    
    pdf_text = extract_text_from_pdf("your_pdf.pdf")
    print(pdf_text)
    

  2. 获取页面信息

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

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

  3. 旋转页面

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

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

  4. 插入页面

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

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

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

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

猜你喜欢

转载自blog.csdn.net/weixin_46277779/article/details/133172063