如何使用python进行pdf文件分割

 更新时间:2019年11月11日 14:36:34   作者:Ye_yang  
这篇文章主要介绍了如何使用python进行pdf文件分割,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了如何使用python进行pdf文件分割,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

代码如下

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切分完成-----------

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python过滤中英文标点符号的实例代码

    python过滤中英文标点符号的实例代码

    今天小编就为大家分享一篇python过滤中英文标点符号的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 如何利用python脚本自动部署k8s

    如何利用python脚本自动部署k8s

    这篇文章主要介绍了利用python脚本自动部署k8s的方法,本文通过脚本代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • python简单实现基于SSL的IRC bot实例

    python简单实现基于SSL的IRC bot实例

    这篇文章主要介绍了python简单实现基于SSL的IRC bot,实例分析了IRC机器人的相关实现技巧,需要的朋友可以参考下
    2015-06-06
  • python中退出多层循环的方法

    python中退出多层循环的方法

    这篇文章主要介绍了python中退出多层循环的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • 解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题

    解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题

    这篇文章主要介绍了解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题,本文给大家提供两种解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Python中基础的socket编程实战攻略

    Python中基础的socket编程实战攻略

    Python拥有内置的socket模块,可以用简洁明了的代码来进行socket通信操作,这里我们就为大家整理了一份Python中基础的socket编程实战攻略,需要的朋友可以参考下.
    2016-06-06
  • scrapy中的spider传参实现增量的方法

    scrapy中的spider传参实现增量的方法

    有时候需要根据项目的实际需求向spider传递参数来控制spider的运行方式,本文主要介绍了scrapy中的spider传参实现增量的方法,具有一定的参考价值,感兴趣的可以了解一下
    2022-06-06
  • python函数中将变量名转换成字符串实例

    python函数中将变量名转换成字符串实例

    这篇文章主要介绍了python函数中将变量名转换成字符串实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 用Python实现协同过滤的教程

    用Python实现协同过滤的教程

    这篇文章主要介绍了用Python实现协同过滤的教程,主要用于从大数据中抽取用户信息偏好等等,需要的朋友可以参考下
    2015-04-04
  • Python实现判断并移除列表指定位置元素的方法

    Python实现判断并移除列表指定位置元素的方法

    这篇文章主要介绍了Python实现判断并移除列表指定位置元素的方法,涉及Python针对列表的索引范围判断及元素删除等相关操作技巧,需要的朋友可以参考下
    2018-04-04

最新评论