zoukankan      html  css  js  c++  java
  • 使用python进行pdf文件分割

    Python代码

    import os
    from pyPdf import PdfFileWriter, PdfFileReader
    def split(pdf_file, delta, output_dir):
        if not os.path.exists(output_dir):
            os.makedirs(output_dir)
        if not os.path.exists(pdf_file):
            return
    
        print('----------参数信息---------------')
        print('File:' + pdf_file)
        print('PageNums:' + str(delta))
        print('Dest:' + output_dir)
        print('-----------pdf开始切分-----------')
        file_name = pdf_file.split('/')[-1].split('.')[0]
        output_dir = os.path.join(out_dir, file_name)
        if not os.path.exists(output_dir):
            os.mkdir(output_dir)
        input_stream = file(pdf_file, 'rb')
        pdf_input = PdfFileReader(input_stream)
        page_count = pdf_input.getNumPages()
        sum_page_count = int(page_count / (delta * 1.0))
        remind_page = page_count % delta
        for i in range(0, sum_page_count + 1):
            start = i * delta
            end = (i + 1) * delta
            pdf_out = PdfFileWriter()
            file_path = os.path.join(output_dir, os.path.split(pdf_file)[1]) #
            if i < sum_page_count:
                full_file_name = file_name + str(start + 1) + '-' + str(end) + ".pdf"
                file_path = os.path.join(output_dir, full_file_name)
                print(full_file_name + '切分完成')
                for j in range(start, end):
                    page = pdf_input.getPage(j)
                    pdf_out.addPage(page)
            else:
                full_file_name = file_name + str(start + 1) + '-' + str(start + remind_page) + ".pdf"
                file_path = os.path.join(output_dir, full_file_name)
                print(full_file_name + '切分完成')
                for j in range(delta * (sum_page_count), page_count):
                    page = pdf_input.getPage(j)
                    pdf_out.addPage(page)
            out_stream = file(file_path, 'wb')
            pdf_out.write(out_stream)
            out_stream.close()
        input_stream.close()
        print('-----------pdf切分完成-----------')
    
    if __name__ == '__main__':
        import sys
    #python splitPdf.py /Users/xxxxx/Downloads/UNIX网络编程卷1:套接字联网API(第3版).pdf 180 /Users/xxxxx/Documents/output try: pdf_path = sys.argv[1] page_count = int(sys.argv[2]) out_dir = sys.argv[3] split(pdf_path, page_count, out_dir) except: pass

    使用方法

    $ python splitPdf.py /Users/xxxxx/Downloads/UNIX网络编程卷1:套接字联网API(第3版).pdf 180 /Users/xxxxx/Documents/output
    ----------参数信息---------------
    File:/Users/xxxxx/Downloads/UNIX网络编程卷1:套接字联网API(第3版).pdf
    PageNums:180
    Dest:/Users/xxxxx/Documents/output
    -----------pdf开始切分-----------
    UNIX网络编程卷1:套接字联网API(第3版)1-180.pdf切分完成
    UNIX网络编程卷1:套接字联网API(第3版)181-360.pdf切分完成
    UNIX网络编程卷1:套接字联网API(第3版)361-540.pdf切分完成
    UNIX网络编程卷1:套接字联网API(第3版)541-720.pdf切分完成
    UNIX网络编程卷1:套接字联网API(第3版)721-823.pdf切分完成
    -----------pdf切分完成-----------
  • 相关阅读:
    A Complete Guide to the <Picture> Element
    html5 在移动端的缩放控制
    新版itunes添加铃声
    html5 背景音乐 js控制播放 暂停
    thinkphp mysql 坐标按距离排序
    jquery ajax跨域 thinkphp getjson
    webkit-box
    Javascript 获取页面高度(多种浏览器)
    怎样实现iMessage群发
    css3背景透明文字不透明
  • 原文地址:https://www.cnblogs.com/yeyang/p/11831244.html
Copyright © 2011-2022 走看看