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
base_url = 'http://www.apelearn.com/study_v2/';
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()

浙公网安备 33010602011771号