Python实现简单拆分PDF文件的方法

本文实例讲述了Python实现简单拆分PDF文件的方法。分享给大家供大家参考。具体如下:

依赖pyPdf处理PDF文件
切分pdf文件

使用方法:
1)将要切分的文件放在input_dir目录下
2)在configure.txt文件中设置要切分的份数(如要切分4份,则设置part_num=4)
3)执行程序
4)切分后的文件保存在output_dir目录下
5)运行日志写在pp_log.txt中

P.S. 本程序可以批量切割多个pdf文件

from pyPdf import PdfFileWriter, PdfFileReader
import os
import time
import sys
def part_pdf(input_file, output_file, config_count, f_w, now, file_name):
  file1 = file(input_file, 'rb')
  pdf = PdfFileReader(file1)
  pdf_pages_len = len(pdf.pages)
  if config_count <= pdf_pages_len:
    ye = pdf_pages_len / config_count
    lst_ye = pdf_pages_len % config_count
    part_count = 0
    part_count_ye = 0
    for fen in range(config_count):
      part_count += 1
      if part_count == config_count:
        part_ye = ye + lst_ye
      else:
        part_ye = ye
      write_pdf(pdf, part_count_ye, part_count_ye+part_ye, fen, output_file)
      part_count_ye += ye
  else:
    f_w.writelines('time: '+now+' file name: '+file_name+' status: part_num > pdf pages [error]\n')
    sys.exit(1)
def write_pdf(pdf, part_count_ye, part_count_ye_end, fen, output_file):
  out = PdfFileWriter()
  for pp in range(part_count_ye, part_count_ye_end):
    out.addPage(pdf.getPage(pp))
  ous = file(output_file+'_'+str(fen+1)+'.pdf', 'wb')
  out.write(ous)
  ous.close()
def pdf_main():
  f = open('configure.txt', 'r')
  f_w = open('pp_log.txt', 'a')
  now = time.strftime('%Y-%m-%d %H:%M:%S')
  for i in f:
    i_ = i.strip()
    aa = i_.split('=')[1]
    if i_.find('part_num=') != -1 and aa.isdigit():
      config_count = int(aa)
    else:
      f_w.writelines('time: '+now+' status: part_num in configure.txt is error [error]\n')
      sys.exit(1)
  files = os.listdir('input_dir/')
  for each in files:
    input_file = 'input_dir/'+each
    file_name = input_file[input_file.index('/'):input_file.index('.')]
    output_file = 'output_dir/'+file_name
    part_pdf(input_file, output_file, config_count, f_w, now, file_name)
    f_w.writelines('time: '+now+' file name: '+file_name+' status: success\n')
pdf_main()

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • 利用Python的Django框架生成PDF文件的教程

    便携文档格式 (PDF) 是由 Adobe 开发的格式,主要用于呈现可打印的文档,其中包含有 pixel-perfect 格式,嵌入字体以及2D矢量图像. You can think of a PDF document as the digital equivalent of a printed document; indeed, PDFs are often used in distributing documents for the purpose of printing them. 可以方

  • Python实现将DOC文档转换为PDF的方法

    本文实例讲述了Python实现将DOC文档转换为PDF的方法.分享给大家供大家参考.具体实现方法如下: import sys, os from win32com.client import Dispatch, constants, gencache def usage(): sys.stderr.write ("doc2pdf.py input [output]") sys.exit(2) def doc2pdf(input, output): w = Dispatch("W

  • Python2.7读取PDF文件的方法示例

    本文实例讲述了Python2.7读取PDF文件的方法.分享给大家供大家参考,具体如下: 这篇文章示例代码采用的Python版本是2.7,需要下载的插件是PDFMiner,下载地址是http://www.unixuser.org/~euske/python/pdfminer/,地址里有安装方法,我就不再细说了,需要说明的是Python2只能使用PDFMiner,Python3不能使用,Python3可以使用PDFMiner3K,下载地址为https://pypi.python.org/pypi/p

  • python将html转成PDF的实现代码(包含中文)

    前提: 安装xhtml2pdf https://pypi.python.org/pypi/xhtml2pdf/下载字体:微软雅黑:给个地址:http://www.jb51.net/fonts/8481.html 待转换的文件:1.htm 复制代码 代码如下: <meta charset="utf8"/><style type='text/css'>@font-face {         font-family: "code2000";   

  • Python生成pdf文件的方法

    本文实例演示了Python生成pdf文件的方法,是比较实用的功能,主要包含2个文件.具体实现方法如下: pdf.py文件如下: #!/usr/bin/python from reportlab.pdfgen import canvas def hello(): c = canvas.Canvas("helloworld.pdf") c.drawString(100,100,"Hello,World") c.showPage() c.save() hello() di

  • Python实现批量把SVG格式转成png、pdf格式的代码分享

    需要提前安装cairosvg模块,下载地址http://cairosvg.org/download/ Code: #! encoding:UTF-8 import cairosvg import os   loop = True while loop:     svgDir = raw_input("请输入SVG文件目录")     if os.path.exists(svgDir) and os.path.isdir(svgDir):         loop = False    

  • 利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用freemarker这样的模板引擎这样的方式.php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的.其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中. 1. unoconv 功能: 1.支持将本地html文档转换为docx

  • Python使用PDFMiner解析PDF代码实例

    近期在做爬虫时有时会遇到网站只提供pdf的情况,这样就不能使用scrapy直接抓取页面内容了,只能通过解析PDF的方式处理,目前的解决方案大致只有pyPDF和PDFMiner.因为据说PDFMiner更适合文本的解析,而我需要解析的正是文本,因此最后选择使用PDFMiner(这也就意味着我对pyPDF一无所知了). 首先说明的是解析PDF是非常蛋疼的事,即使是PDFMiner对于格式不工整的PDF解析效果也不怎么样,所以连PDFMiner的开发者都吐槽PDF is evil. 不过这些并不重要.

  • python使用reportlab实现图片转换成pdf的方法

    本文实例讲述了python使用reportlab实现图片转换成pdf的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import os import sys from reportlab.lib.pagesizes import A4, landscape from reportlab.pdfgen import canvas f = sys.argv[1] filename = ''.join(f.split('/')[-1:])[:-4] f_j

  • Python爬取读者并制作成PDF

    学了下beautifulsoup后,做个个网络爬虫,爬取读者杂志并用reportlab制作成pdf.. crawler.py 复制代码 代码如下: #!/usr/bin/env python #coding=utf-8 """     Author:         Anemone     Filename:       getmain.py     Last modified:  2015-02-19 16:47     E-mail:         anemone@82

  • 基于Python实现对PDF文件的OCR识别

    最近在做一个项目的时候,需要将PDF文件作为输入,从中输出文本,然后将文本存入数据库中.为此,我找寻了很久的解决方案,最终才确定使用tesseract.所以不要浪费时间了,我们开始吧. 1.安装tesseract 在不同的系统中安装tesseract非常容易.为了简便,我们以Ubuntu为例. 在Ubuntu中你仅仅需要运行以下命令: 这将会安装支持3种不同语言的tesseract. 2.安装PyOCR 现在我们还需要安装tesseract的Python接口.幸运的是,有许多出色的Python接

  • Python使用reportlab将目录下所有的文本文件打印成pdf的方法

    本文实例讲述了Python使用reportlab将目录下所有的文本文件打印成pdf的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: utf8 -*- #~ #---------------------------------------------------------------------- import wlab #pip install wlab import reportlab.pdfbase.ttfonts #reportlab.pdfbase.pdfm

  • 用python 制作图片转pdf工具

    最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用python自己DIY一下: 这里主要用了reportlab.开始打算随便写几行,结果为若干坑纠结了挺久,于是乎就想想干脆把代码写好点吧. 实现了以下的几项功能: 将当前文件夹下的图片保存到一个pdf中,支持选择pdf大小等 如果有需要可以遍历它下面的所有文件夹 简单的来说完全满足我将漫画转成pdf格式的需求了. 碰到了一些问题,这里记录下: 一.中文路径: 这个实在是略蛋疼,总之就是尽量都decode一

随机推荐