日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

幾個關于python??Pdf?技巧的分享_python

作者:zzxiaoma ? 更新時間: 2022-04-27 編程語言

前言:

PyPDF2是一個純Python的開源庫,能夠分割或合并PDF文件,也可以裁剪或轉換PDF文件中的頁面。我們還可以使用PyPDF2查看PDF文件的元信息,對PDF文件進行加密等。

PyPDF2是一個開源的庫,因此在使用之前需要先安裝。

pip install PyPDF2

1.讀取PDF

import PyPDF2

reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
print(reader.getNumPages())

print(reader.getIsEncrypted())
print(reader.getDocumentInfo())
page = reader.getPage(8)
print(page.extractText())

首先導入PyPDF2模塊,然后以二進制讀模式打開a.pdf文件,并將它傳遞給PdfFileReader類的初始化函數。PdfFileReader的初始化函數會返回一個PdfFileReader類的對象,我們可以使用這個對象來獲取PDF文件的信息。

通過getNumPages函數獲取pdf的總頁數,通過getIsEncrypted函數獲取文件是否加密,通過getDocumentInfo函數獲取文件的元數據,通過傳遞下標給getPage函數的方式獲取PDF頁面,下標從0開始,與Python內置的字符串、列表和元組等保持一致。通過PageObject類的extractText方法提取頁面中的文本。從該方法的返回結果來看,提取PDF文本的效果并不理想。

2.刪除pdf的某些頁

思路:PyPDF2并不能直接編輯PDF文件,但是我們可以利用PyPDF2從一個PDF文檔拷貝需要的頁面到另一個PDF文檔,通過這種迂回的方式實現編輯PDF的功能。例如刪掉a.pdf中的第一頁

import PyPDF2

reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
output = PyPDF2.PdfFileWriter()
for i in range(1,reader.getNumPages()):
? ? output.addPage(reader.getPage(i))
outputStream = open ("b.pdf","wb")
output.write(outputStream)
outputStream.close()

3.旋轉頁面

PageObject類中有部分方法可以修改PDF頁面,其中rotateClockwiserotateCounterClockwise方法用來旋轉頁面。這兩個方法只接受一個參數,且參數取值必須是90的倍數,表示旋轉多少度。

import PyPDF2

reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
output = PyPDF2.PdfFileWriter()
page = reader.getPage(0)
page.rotateClockwise(180)
output.addPage(page)
outputStream = open ("b.pdf","wb")
output.write(outputStream)
outputStream.close()

4.合并pdf

from PyPDF2 import PdfFileMerger

merger = PdfFileMerger()

a = open("a.pdf",'rb')
b = open("b.pdf",'rb')
c = open("c.pdf",'rb')

merger.append(fileobj = a,pages = (0,3))
merger.merge(position=2,fileobj=b,pages=(0,1))
merger.append(c)
output = open("d.pdf","wb")
merger.write(output)

append方法通過fileobj參數確定要添加的PDF文件,通過pages參數指定要將哪些PDF頁面添加到新的PDF文件中,并將要添加的頁面添加到merger對象的末尾。merge方法相對于append方法,增加了position參數,我們可以通過position參數指定頁面插人的位置。append方法和merge方法的pages參數非常靈活,該參數是一個三元組(start,stop[,step]),分別表示起點、終點和步長。我們可以通過該參數指定合并PDF文件中的頁面。

原文鏈接:https://blog.51cto.com/u_3764469/5039076

欄目分類
最近更新