1、安装PyPDF2
pip install PyPDF2
2、导入PyPDF2
import PyPDF2
3、读取pdf文本
代码如下:
import PyPDF2
pdfFileObj=open('meetingminutes.pdf','rb')
pdfReader=PyPDF2.PdfFileReader(pdfFileObj) #读取pdf文档
pdfReader.numPages
pageObj=pdfReader.getPage(0)
pageObj.extractText() #返回文本中的字符串
4、解密pdf decrypt()
代码如下:
import PyPDF2
pdfReader=PyPDF2.PdfFileReader(open('encrypted.pdf','rb'))
pdfReader.isEncrypted
pdfReader.getPage(0)
pdfReader.decrypt('rosebud') #使用rosebud口令解密
pageObj=pdfReader.getPage(0)
5、拷贝页面
1)打开一个或多个已有的PDF,得到PdfFileReader对象
2)打开一个新的PdfFileWriter对象
3)将页面从PdfFileReader对象拷贝到PdfFileWriter对象中
4)使用PdfFileWriter对象写入输出的PDF
代码如下:
import PyPDF2
pdf1File=open('meetingminutes.pdf','rb')
pdf2File=open('meetingminutes2.pdf','rb')
pdf1Reader=PyPDF2.PdfFileReader(pdf1File)
pdf2Reader=PyPDF2.PdfFileReader(pdf2File)
pdfWriter=PyPDF2.PdfWriter()
for pageNum in range(pdf1Reader.numPages):
pageObj=pdf1Reader.getPage(pageNum)
pdfWriter.addPage(pageObj)
for pageNum in ranger(pdf2Reader.numPages):
pageObj=pdf2Reader.getPage(pageNum)
pdfWriter.addPage(pageObj)
pdfOutputFile=open('combinedminutes.pdf','wb')
pdfWriter.write(pdfOutputFile)
pdfOutputFile.close()
pdf1File.close()
pdf2File.close()
6、旋转页面
rotateClockwise():
rotateCounterClockwise():
代码如下:
import PyPDF2
minutesFile=open('meetingminutes.pdf','rb')
pdfReader=PyPDF2.PdfFileReader(minutesFile)
page=pdfReader.getPage(0)
page.rotateClockwise(90)
pdfWriter=PyPDF2.PdfFileWriter()
pdfWriter.addPage(page)
resultPdfFile=open('rotatePage.pdf','wb')
pdfWriter.write(resultPdfFile)
resultPdfFile.close()
minutesFile.close()
7、叠加页面 mergePage()函数
代码如下:
import PyPDF2
minutesFile=open('meetingminutes.pdf','rb')
pdfReader=PyPDF2.PdfFileReader(minutesFile)
minutesFirstPage=pdfReader.getPage(0)
pdfWatermarkReader=PyPDF2.PdfFileReader(open('watermark.pdf','rb'))
minutesFirstPage.mergePage(pdfWatermarkReader.getPage(0)) #叠加页面
pdfWriter=PyPDF2.PdfFileWriter()
pdfWriter.addPage(minutesFirstPage)
for pageNum in range(1,pdfReader.numPages):
pageObj=pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
resultPdfFile=open('watermarkedCover.pdf','wb')
pdfWriter.write(resultPdfFile)
minutesFile.close()
resultPdfFile.close()
8、加密文件 encrypt()函数
代码如下:
import PyPDF2
pdfFile=open('meetingminutes.pdf','rb')
pdfReader=PyPDF2.PdfFileReader(pdfFile)
pdfWriter=PyPDF2.PdfFileWriter()
for pageNum in range(pdfReader.numPages):
pdfWriter.addPage(pdfReader.getPage(pageNum))
pdfWriter.encrypt('swordfish') #使用口令swordfish加密
resultPdf=open('encryptedminutes.pdf','wb')
pdfWriter.write(resultPdf)
resultPdf.close()
9、安装python-docx模块
pip install python-docx
10、读取word文档
import docx
doc=docx.Document('demo.docx')
len(doc.paragraphs)
doc.paragraphs[0].text
doc.paragraphs[1].runs[0].text
对象属性关系:Document>Paragraph>run>text
11、设置Run属性
Run对象的text属性:
bold 粗体
italic 斜体
underline 下划线
strike 删除线
double_strike 双删除线
all_caps 大写首字母
small_caps 大写首字母,小写字母小两磅
shadow 带阴影
outline 轮廓线
rtl 从右至左竖线
imprint 刻入页面
emboss 凸出页面
代码如下:
import docx
doc=docx.Document('demo.docx')
doc.paragraphs[0].text
doc.paragraphs[0].style='Normal'
doc.paragraphs[1].runs[0].style='QuoteChar'
doc.paragraphs[1].runs[1].underline=True
doc.paragraphs[1].runs[3].underline=True
doc.save('restyled.docx')
12、写入word文档
import docx
doc=docx.Document()
doc.add_paragraph('Hello world!') #添加内容
doc.save('helloworld.docx')
在已有段落的末尾添加文本,使用add_run()方法:
import docx
doc=docx.Document()
doc.add_paragraph('Hello World!')
paraObj1=doc.add_paragraph('This is a second paragraph.')
paraObj2=doc.add_paragraph('This is a yet another paragraph.')
paraObj1.add_run('This text is being added to the second paragraph.')
doc.save('multipleParagraphs.docx')
13、添加标题 add_heading()
doc=docx.Document()
doc.add_heading('Header 0',0)
14、添加换行符和换页符 add_break()函数
doc=docx.Document()
doc.add_paragraph('This is on the first page!')
doc.paragraphs[0].runs[0].add_break(docx.text.WD_BREAK.PAGE)
doc.add_paragraph('This is on the second page!')
doc.save('twoPage.docx')
15、添加图像 add_picture()函数
doc.add_picture('zophie.png',width=docx.shared.Inches(1),height=docx.shared.Cm(4))
获取宽度:docx.shared.Inches()
获取高度:docx.shared.Cm()