
正文
pdf函数python python pdf函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何利用Python抓取PDF中的某些内容
可以转换成TXT再抓取
from cStringIO import StringIO
from pdfminer.pdfinterp
import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParamsfrom pdfminer.pdfpage
import PDFPage
def convert_pdf_2_text(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())
interpreter = PDFPageInterpreter(rsrcmgr, device)
with open(path, 'rb') as fp:
for page in PDFPage.get_pages(fp, set()):
interpreter.process_page(page)
text = retstr.getvalue()
device.close()
retstr.close()
return text
相关问答
Q1: python自动化-pdf文档操作
使用第三方库
官方文档:pymupdf.readthedocs.io/en/latest/
提取图片的整体逻辑如下:
将每一页转换为一张张图片
安装pdf2image, github:github.com/Belval/pdf2…
安装:
使用库: github.com/2Dou/waterm…
步骤:
1.获得一个带水印pdf文件
1.1在图片添加水印,图片插入到word,word保存为pdf
1.2python处理:参考
github.com/2Dou/waterm…
mp.weixin.qq.com/s/_oJA6lbsd…
2.将水印pdf文件合并到源目标pdf文件的每一页
法1,直接在word,插入文本框,旋转,设置无边框,注意设置背景透明,然后复制多个。导出为pdf。
法2,word本身自己的增加水印,设计-水印-自定义文字或图片。缺点是只能是单个水印。
缺点是水印在内容pdf上方,如果设置过大,颜色不太透明,会遮挡内容。
解密:并不是破解,而是在已知密码的情况下解密
作者:秦与商
链接:
Q2: Python解析PDF表格——PDFPlumber vs Camelot
题图来自 Camelot: List o’ 10 Intriguing Mythical Places
为获取LEED认证项目pdf函数python的评分表明细,可以从USGBC的项目页面上爬取,或者从pdf格式的项目评分表中解析得到。以 重庆某LEED EM:OB v2009 Gold项目 为例,USGBC上公布的 LEED项目得分表 其格式并不统一,利用XPath爬取后需要进一步清洗处理。相对而言,LEED项目所对应的 项目评分表PDF文件 的数据更为规范完整。因此考虑尝试解析出PDF文件中的表格,以便后续分析。
Python 处理PDF文件的程序包,pdfminer、tabula、pdfplumber、camelot……查询资料表明,似乎普遍认为pdfminer的效果不怎么好,而tabula需要java支持 ,想偷懒于是只试pdf函数python了pdfplumber和camelot。
安装过程不赘述,直接来看运行结果。
pdfplumber无法直接解析出Scorecard.pdf文件中的表格,但实际上要解决此问题也并非难事。调整下思路,可先解析出pdf文件中的文本,让后通过分列来得到表格。
利用pdfplumber的extract_text()命令可解析出pdf文件中的文本,但由于本次需要解析的得分表pdf文件的排版的原因,左右两个表格的文本行并未完全对齐,因此如果直接解析完整页面上的文本的话,文字会出错。先用corp()命令指定识别范围,然后再extract_text(),识别得到的文本列表如下所示。
对于类似本例中Scorecard.pdf表格排版有错位的情况,也可以按照表格在页面中所处的位置,指定表格识别的范围。所用到的指令:camelot.plot()可以绘制出页面的略图,table_area参数可以指定表格识别的范围。
又及,Camelot原来是亚瑟王和圆桌骑士们的宫殿所在地,和Asgard的Valhalla一样,也是传说中的圣域。搜索camelot程序安装包时无意中学到的,涨知识pdf函数python了。
[1] Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比
[2] 用Python提取pdf文件中的表格数据
[3] python读取pdf文件
[4] Github: pdfplumber
[5] Camelot: PDF Table Extraction for Humans
[6] ImageMagick Installation
[7] ImageMagick之PDF转换成图片(image)
[8] LEED 2009 for Existing Buildings: Operations Maintenance
[9] Camelot - Wikipedia
[10] List o’ 10 Intriguing Mythical Places
[11] Camelot识别pdf表格时的参数设置补充
Q3: 一个用于合并pdf的简单Python脚本
在学校打印店pdf函数python,有时会打印很多文件,因为文件数量多,过程会比较繁琐。自己没事动手写pdf函数python了一个pdf合并pdf函数python的python脚本,方便将多个pdf文件合并为一。这样打印时候只需点开一个文件打印即可。
需要 Python 和 PyPDF2 。Python安装可在官网找到pdf函数python;PyPDF2可以通过pip安装,可以利用命令行工具输入一下命令
将需要合并的文件与本文后面的Python脚本放在同一目录下,运行脚本得到 Merged.pdf 即为合并的pdf文件。
如果需要按照一定顺序合并pdf文件,可以将pdf文件重命名,按顺序将文件重命名为 1.pdf 、 2.pdf 以此类推。
如果需要将某一pdf文件在合并文件中重复多次,可以将该文件直接在当前目录下拷贝成多个副本。
Q4: python如何检测是不是需要旋转pdf
是的,1.导入PyPDF2模块之后使用open()方法打开pdf文件并且调用Reader方法直接将这个pdf文件之中的所有页面都给读取出来,读取出来之后返回的是一个可迭代对象。然后使用getPage()方法获取其中的某一个页面,代码如下所示:
import PyPDF2
reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
page = reader.getPage(0)
2.以上代码之中的page所返回的就是pdf文件第一页,使用它去调用rotateClockwise()方法就能够将其90度旋转,示例如下:
page.rotateClockwise(180)
这个方法一次只能够对一个页面进行修改操作,并且参数必须为90度及其倍数。也就是只能选择90、180、270、360这四个度数,而且选择是顺时针选择的,旋转之后的页面会自动调整格式。
3.页面旋转完毕之后还需要实例化出来一个文件写入对象,然后使用这个对象将修改旋转后的页面添加到原pdf文件之中。再打开一个新的pdf文件用来保存,然后使用write()方法将页面写入之后将其关闭掉就好了,代码示例如下:
output = PyPDF2.PdfFileWriter()
outputStream = open ("b.pdf","wb")
output.write(outputStream)
outputStream.close()
Q5: VBA 或 python 如何批量将JPG文件转PDF??
# -*- coding:utf-8 -*-
#!/usr/bin/env python
import os
from reportlab.lib.pagesizes import A4, landscape
from reportlab.pdfgen import canvas
from tkinter import *
import time
# 图片文件名称列表
IMAGEFILES = []
class pdfTk(object):
def __init__(self):
'''用于生成主界面用于填写'''
self.top = Tk()
self.sw = self.top.winfo_screenwidth()
self.sh = self.top.winfo_screenheight()
self.topw = 500
self.toph = 200
self.top.title('图片转pdf生成器')
self.top.geometry("%dx%d+%d+%d" % (self.topw, self.toph, (self.sw - self.topw) / 2, (self.sh - self.toph) / 2))
self._DIRPATH = StringVar(self.top)
self.emptfmone = Frame(self.top, height=50)
self.emptfmone.pack()
self.dirfm = Frame(self.top)
self.descriptLabel = Label(self.dirfm, width=4, text='路径:')
self.descriptLabel.pack(side=LEFT)
self.dirn = Entry(self.dirfm, width=50, textvariable=self._DIRPATH)
#self.dirn.bind('Return', self.setPath)
self.dirn.pack(side=LEFT)
self.dirfm.pack()
self.emptfmtwo = Frame(self.top, height=30)
self.emptfmtwo.pack()
self.btnfm = Frame(self.top)
self.converBtn = Button(self.btnfm, width=10, text='生成PDF', command=self.doneAnyThing,
activeforeground='white', activebackground='blue')
self.quitBtn = Button(self.btnfm, width=10, text='退出', command=self.top.quit, activeforeground='white',
activebackground='blue')
self.converBtn.pack(side=LEFT, padx=10)
self.quitBtn.pack(side=LEFT, padx=10)
self.btnfm.pack()
def doneAnyThing(self):
self.getListImages(self._DIRPATH.get())
pdfFile = self.converPath(self._DIRPATH.get()) + self.dateStr() + ".pdf"
self.convertpdf(pdfFile)
def convertpdf(self, pdfFile):
'''多个图片合成一个pdf文件'''
(w, h) = landscape(A4) #
cv = canvas.Canvas(pdfFile, pagesize=landscape(A4))
for imagePath in IMAGEFILES:
cv.drawImage(imagePath, 0, 0, w, h)
cv.showPage()
cv.save()
def getListImages(self, dirPath):
'''读取指定文件夹下所有pdf函数python的JPEG图片pdf函数python,存入列表'''
if dirPath is None or len(dirPath) == 0:
raise ValueError('dirPath不能为空,该值为存放图片的具体路径文件夹pdf函数python!')
if os.path.isfile(dirPath):
raise ValueError('dirPath不能为具体文件,该值为存放图片的具体路径文件夹!')
if os.path.isdir(dirPath):
for imageName in os.listdir(dirPath):
if imageName.endswith('.jpg') or imageName.endswith('.jpeg'):
absPath = self.converPath(dirPath) + imageName
IMAGEFILES.append(absPath)
def converPath(self, dirPath):
'''用于转换路径,判断路径后是否为\\,如果有则直接输出,如果没有则添加'''
if dirPath is None or len(dirPath) == 0:
raise ValueError('dirPath不能为空!')
if os.path.isfile(dirPath):
raise ValueError('dirPath不能为具体文件,该值为文件夹路径!')
if not str(dirPath).endswith("\\"):
return dirPath + "\\"
return dirPath
def dateStr(self):
'''用于生成指定格式的日期,目的是为了拼接字符串'''
return time.strftime("%Y-%m-%d", time.localtime())
def main():
'''该函数主要用于生成PDF文件'''
pdfTk()
mainloop()
if __name__ == '__main__':
'''主函数,进行启动'''
main()
关于pdf函数python和python pdf函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








