Python下数据处理-PDF

Python读出pdf文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/1/10 14:46
# @Author  : lingxiangxiang
# @File    : demon1.py
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfparser import PDFPage
from pdfminer.pdfinterp import PDFResourceManager, PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
from pdfminer.layout import LAParams
from pdfminer.converter import PDFPageAggregator
#获取文档对象,你把algorithm.pdf换成你自己的文件名即可。
fp=open("test.pdf","rb")
#创建一个与文档相关联的解释器
parser=PDFParser(fp)
#PDF文档对象,提供密码初始化,没有就不用带password参数。
doc=PDFDocument()
 
parser.set_document(doc)
doc.set_parser(parser)
 
doc.initialize()
#检查文件是否允许文本提取
if not doc.is_extractable:
    raise PDFTextExtractionNotAllowed
#链接解释器和文档对象
# parser.set_document(doc)
#doc.set_paeser(parser)
#初始化文档
#doc.initialize("")
#创建PDF资源管理器对象来存储共享资源
resource=PDFResourceManager()
#参数分析器
laparam=LAParams()
#创建一个聚合器
device=PDFPageAggregator(resource, laparams=laparam)
#创建PDF页面解释器
interpreter=PDFPageInterpreter(resource,device)
#使用文档对象得到页面集合
for page in doc.get_pages():
  #使用页面解释器来读取
  interpreter.process_page(page)
  #使用聚合器来获取内容
  layout=device.get_result()
  for out in layout:
    if hasattr(out, "get_text"):
      print(out.get_text())
 
 
Html转pdf文件
转换成pdf的三种方法:
在工作中,我们可能会遇到把html文件转换成pdf文件,而python给我们提供了pdfkit这个模块,我们直接安装使用就可以了,下面我们就下来介绍一个pdfkit模块的几种用法,
首先,我们安装该模块:
pip install pdfkit
1.网页转换成pdf
直接把url转换成pdf文件
import pdfkit
pdfkit.from_url('http://google.com';, 'out1.pdf')
 
2. Html转换成pdf
Import pdfkit
pdfkit.from_file('test.html', 'out2.pdf')
 
3. 字符创转换成pdf
Import pdfkit
pdfkit.from_string('Hello lingxiangxiang!', 'out3.pdf')
 
 
 
抓取aming的linux教程,然后制作成pdf文件
先抓取每个的网页,然后生成pdf文件
 
import codecs
import os
import sys
 
import pdfkit
import requests
 
if not os.path.exists("aming"):
    os.mkdir("aming")
 
os.chdir("aming")
s = requests.session()
 
for i in range(1, 27):
    url = base_url + 'chapter' + str(i) + '.html'
    print(url)
    file = str(i) + '.pdf'
    print(file)
    config = pdfkit.configuration(wkhtmltopdf=r"D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe")
    try:
        pdfkit.from_url(url, file)
    except:
        continue
 
合并多个pdf文件为一个pdf文件
 
import PyPDF2
import os
 
#建立一个装pdf文件的数组
pdfFiles = []
 
for fileName in os.listdir('aming'):    #遍历该程序所在文件夹内的文件
    if fileName.endswith('.pdf'):   #找到以.pdf结尾的文件
        pdfFiles.append(fileName)   #将pdf文件装进pdfFiles数组内
 
# pdfFiles.sort()     #文件排序
print(pdfFiles)
 
os.chdir("aming")
pdfWriter = PyPDF2.PdfFileWriter()     #生成一个空白的pdf文件
 
for fileName in pdfFiles:
    pdfReader = PyPDF2.PdfFileReader(open(fileName,'rb'))   #以只读方式依次打开pdf文件
    for pageNum in range(pdfReader.numPages):
        print(pdfReader.getPage(pageNum))
        pdfWriter.addPage(pdfReader.getPage(pageNum))    #将打开的pdf文件内容一页一页的复制到新建的空白pdf里
 
pdfOutput = open('combine.pdf','wb')     #生成combine.pdf文件
pdfWriter.write(pdfOutput)               #将复制的内容全部写入combine.pdf
pdfOutput.close()
 
 
posted @ 2018-01-15 16:15  岁月不可追  阅读(169)  评论(0)    收藏  举报