pdf及word文档的读取 pyPDF2,docx

#!python3

#-*- coding:utf8 -*-

#PyPDF2可能会打不开某些pdf文档,也不能提取图片,图表或者其他媒介从PDF文件中。但是它能提取文本从PDF中,转化为字符。

import PyPDF2

#以二进制方式 读模式打开一个pdf文件

pdfFileObj=open(‘e:\work\data_service.pdf‘,‘rb‘)

#读取pdf文档

pdfReader=PyPDF2.PdfFileReader(pdfFileObj)

#返回的是pdf文档的总页数

print(pdfReader.numPages)

#获取单页的内容,页码数从0开始

pageObj=pdfReader.getPage(0)

#返回单页的文本内容

pageObj.extractText()

#对于有加密的pdf文档其读对象有属性 isEncrypted

print(pdfReader.isEncrypted) #若有加密,则属性值为True。直接获取某页的文本内容会报错。

#通过方法decrypt()传递解密密码后可正常获取文本内容,密码以字符串形式传入。

#pdfReader.decrypt(‘rosebud‘)

#写pdf文档

#创建pdf写对象

pdfWriter=PyPDF2.PdfFileWriter()

for pageNum in range(pdfReader.numPages):

pageObj=pdfReader.getPage(pageNum)

#向pdf写对象里添加内容(内容为pdf某个页面对象)

pdfWriter.addPage(pageObj)

#pdfWriter.addPage(pdfReader.getPage(3))

#创建新的pdf文件

pdfOutputFile=open(‘combinedminutes.pdf‘,‘wb‘)

#将pdf写对象中的内容加进新建的pdf文件中

#pdfWriter.write(pdfOutputFile) 此语句写入失败

#写完后关闭pdf文件

pdfOutputFile.close()

#word文档读写

import docx

doc=docx.Document(‘C:\\Users\\li.wu\\Desktop\\有趣的植物.docx‘)

#文档的总段落数

print(len(doc.paragraphs))

#可以一段一段的返回文本内容

print(doc.paragraphs[0].text)

#‘第一章\xa0\xa0了解MySQL‘

#每个段落都有一个runs属性,runs的长度表示这个段落的格式的变化次数。

len(doc.paragraphs[1].runs)

#10

#每个runs元素也都有一个text属性

print(doc.paragraphs[1].runs[0].text)

#‘\xa0\xa0\xa0‘

#如果只关心文档中的内容,不在意格式的话,可以写一个函数直接获取整段文本:

def getText(filename):

doc=docx.Document(filename)

fullText=[]

for para in doc.paragraphs:

fullText.append(para.text)

return ‘\n‘.join(fullText)

a=getText(‘e:\work\mysqll.docx‘)

print(a.encode(‘utf-8‘))

‘‘‘

默认的字体的类型有:

‘Normal‘ ‘Heading5‘ ‘ListBullet‘ ‘ListParagraph‘ ‘BodyText‘ ‘Heading6‘ ‘ListBullet2‘ ‘MacroText‘ ‘BodyText2‘ ‘Heading7‘

‘ListBullet3‘ ‘NoSpacing‘ ‘BodyText3‘ ‘Heading8‘ ‘ListContinue‘ ‘Quote‘ ‘Caption‘ ‘Heading9‘ ‘ListContinue2‘ ‘Subtitle‘

‘Heading1‘ ‘IntenseQuote‘ ‘ListContinue3‘ ‘TOCHeading‘ ‘Heading2‘ ‘List‘ ‘ListNumber‘ ‘Title‘ ‘Heading3‘ ‘List2‘

‘ListNumber2‘ ‘Heading4‘ ‘List3‘ ‘ListNumber3‘

‘‘‘

#有3种类型的风格,段落风格可以应用于Paragraph对象,个性风格可以应用于Run对象。关联风格可以应用于前两种风格。

#设置风格属性时,风格类型名中间不要使用空格,例Subtle Emphasis ,入参应写成‘SubtleEmphasis‘

#Paragraph和Run对象都有属相style,通过设置style的值可以设置段落和文字的格式。

#当使用关联风格属性应用于Run对象时,需要在风格名后加上’Char‘。例如要将Quote类的关联风格应用于Paragraph对象时,使用paragraphObj.style=‘Quote‘,

#但是应用于Run对象时,应该使用runObj.style=‘QuoteChar‘.

#目前的Python-Docx(0.7.4)只支持默认的word风格。

#run对象的text属性,每个text属相有三种值 True(打开) False(关闭) None(默认值)

#run对象的text属性:

‘‘‘

bold            : The text appears in bold.

italic          : The text appears in italic.

underline       : The text is underlined.

strike          : The text appears with strikethrough.

double_strike   : The text appears with double strikethrough.

all_caps        : The text appears in capital letters.

small_caps      : The text appears in capital letters, with lowercase letters two points smaller.

shadow          : The text appears with a shadow.

outline         : The text appears outlined rather than solid.

rtl             : The text is written right-to-left.

imprint         : The text appears pressed into the page.

emboss          : The text appears raised off the page in relief.

‘‘‘

doc.paragraphs[1].runs[0].underline=True

doc.save(‘restyled.docx‘)

#创建新的word文档

doc=docx.Document()

#添加段落

doc.add_paragraph(‘Hello world!‘)

a=doc.add_paragraph(‘this is a second paragraph‘)

#在段落后添加语句

a.add_run(‘This text is being addded to the second paragraph‘)

#添加段落时可设置段落格式

doc.add_paragraph(‘Hello world !‘,‘Title‘)

#add_heading()方法是以某一种标题格式添加一个段落数据范围从0~4,0是主标题,4是第4级副标题。

doc.add_heading(‘Header 0‘,0) #格式为标题1

doc.add_heading(‘Header 1‘,1) #格式为标题2

#通过在第一个末尾设置一个break,转到下一页

doc.paragraphs[2].runs[0].add_break(docx.enum.text.WD_BREAK.PAGE)

#Enumeration – WD_BREAK_TYPE

‘‘‘

WD_BREAK.LINE

WD_BREAK.LINE_CLEAR_LEFT

WD_BREAK.LINE_CLEAR_RIGHT

WD_BREAK.TEXT_WRAPPING (e.g. LINE_CLEAR_ALL)

WD_BREAK.PAGE

WD_BREAK.COLUMN

WD_BREAK.SECTION_NEXT_PAGE

WD_BREAK.SECTION_CONTINUOUS

WD_BREAK.SECTION_EVEN_PAGE

WD_BREAK.SECTION_ODD_PAGE

‘‘‘

doc.add_paragraph(‘This is on the second page!‘)

#添加图片到文档末尾(宽设置为4英寸,高设置为1厘米)高与宽可以不设置,则为常规大小。

doc.add_picture(‘e:\work\code.jpg‘,width=docx.shared.Inches(4),height=docx.shared.Cm(1))

doc.save(‘e:\work\helloworld.docx‘)

原文地址:https://www.cnblogs.com/Ting-light/p/9548127.html

时间: 2024-08-12 14:17:13

pdf及word文档的读取 pyPDF2,docx的相关文章

Python处理PDF和Word文档常用的方法

Python处理PDF和Word文档的模块是PyPDF2,使用之前需要先导入. 打开一个PDF文档的操作顺序是:用open()函数打开文件并用一个变量来接收,然后把变量给传递给PdfFileReader对象,形成一个PdfFileReader对象,这样用PdfFileReader对象下面的各种方法.属性去操作PDF文档. PdfFileReader对象常用方法: (1).PyPDF2.PdfFileReader()方法:代表一个PdfFileReader对象. (2).getPage() 方法:

允许嵌入到PDF,Word文档和其他文件的条形码控件UPC/EAN Barcode Font Advantage Package

IDAutomation的UPC/EAN Barcode Font Advantage Package是一个先进的字体产品,它所用的工具,宏和源代码可以使用一个单一的字体文件来创建UCC-12, UPCA, UPCE, EAN8, EAN13, JAN, ISBN 和Bookland条形码.该字体满足ANSI, ISO和IEC 2000规格说明要求(ISO 15420:2000). 具体功能: 为了创建合适的UPC和EAN条形码类型,打印的字符必须要从UPC/EAN条形码字体数据表上定义的表格上

教你怎样完整的把pdf转为word文档

许多从网上找到的文献资料都是PDF格式的,你想轻松复制几段文字到Word中却发现出现了各种排版混乱的现象.如原本首行有缩进2个字符,但是在Word中却是一色的顶格,而且字体都发生变化了,每到这时我都会花费大把的是时间和精力手动修改,得不偿失. 前几天一个朋友的一句话启发了我,在经过反复的尝试后发现迅捷PDF转换器,该软件功能强大好用,界面简单,功能稳定,支持批量转换,具有多种语言转换,操作起来非常方便,支持多种流行文档格式之间转换,比如PDF转成Word,Word转换成PDF,无需安装Adobe

怎么把pdf转为word文档编辑

基于PDF文件的各种特性,现在很多资源都以PDF个还是发布在网络平台上共享,不过用户不同的需求使其对这类文件的感受天差地别.对于仅仅的下载文件阅读的用户来说,PDF文件提供了高质量的阅读效果;对于上传者来说,PDF文件的安全性也是office文档不可比拟的;但对于在网上寻找资料要进行实际操作的用户来说,这真是一场灾难,PDF是被统一认为的不理想编辑格式,在获取这类文件的资料时,往往让大家陷入困境. 其实要解决PDF格式文件无法复制,不能编辑的问题也不难,使用pdf转换成word转换器分分钟把PD

手机PDF转换Word文档转换工具的操作步骤

之前PDF转换成Word文档在电脑上才可以操作,但是随着科技的进步现在在手机上也可以实现了,这样会更大程度的节约转换的时间,也方便了我们的工作,那具体要怎样操作呢?请看下面这篇文章. 前期准备:安装运行迅捷PDF转换器.将需要转换的PDF文件保存在手机文件管理中. 操作步骤: 1:运行软件在"PDF转换其他"的页面选择"PDF转换Word" 2:在新出现的添加文件页面找到需要添加的文件,然后点击文件的名称. 3:确定转换的文件是否正确,如果正确就点击确定转换. 4:

判断pdf、word文档、图片等文件类型(格式)、大小的简便方法

很久没发文了,今天有时间就写一下吧. 关于上传文件,通常我们都需要对其进行判断,限制上传的类型,如果是上传图片,我们甚至会把图片转化成base64数据后,再进行上传.普遍的方法是直接写在上传按钮的触发方法里面,但是对于大型的项目而言,这必然是会重复着同一段代码,使得代码臃肿繁重,这样也不利于平台的优化以及后续的维护,于是,我便封装了一个小小的判断上传文件的类型,图片类型的简便方法,这样不紧节省了重复的劳动力,而且还可以更好的优化项目,提高性能,代码如下: /* Type: 该值为类型数组,例如:

用java将简单的word文档换成pdf文档

用java将简单的word文档换成pdf文档的方式很多,因为很多都没有实际测试过,所以这里就先泛泛的说一下 整体上来看分两种: 1.纯java代码实现,有很多优秀的开源软件可以用,比如poi,itext,xdocreport,docx4j等等.主要缺点是只能处理简单的文档 2.通过在操作系统安装转换软件,在java代码中调用软件命令来实现转换.常用的有OpenOffice,Pandoc,Jacob(限于Windows环境)等软件,优点是对于复杂的文档也能很好的处理.缺点是会麻烦一点,有的不能跨平

扫描PDF转换成word文档如何操作

扫描PDF文件转换成word文档如何进行操作呢?作为一般的PDF文件介于它的文件大小都不够大,普通的转换功能都能进行操作,文件过大的话就需要用到扫描PDF转word这种操作,那么关于它的操作是怎样的呢?不妨看下小编的方法来了解一下!1.针对以上提出PDF转word文档的问题,首先大家可以在电脑上安装一个PDF转换器,这个可以到浏览器或电脑的应用商店进行搜索下载.2.在桌面上双击打开PDF转换器,进入到页面中可以选择到"特色功能"中的扫描PDF转word(OCR).最大支持50M以内的P

手机PDF怎么转为Word文档?

手机PDF怎么转为Word文档,是令很多人都郁闷的问题,其实把PDF转为Word并没有大家想想的那么难,因为手机就可以实现PDF转为Word文档了,操作简单转换方便.一起来看看吧. 操作工具:PDF文件 , 手机 , 迅捷PDF转换器 操作方法:1.首先把手机连接上网络,然后在手机的应用商店里搜索迅捷PDF转换器将其运行. 2.先熟悉一下的操作和页面的整体布局,然后在PDF转换的页面选择PDF转换Word. 3.这时会出现一个添加文件的页面在此找到需要转换的文件,然后点击文件进行转换. 4.会出