幾個(gè)關(guān)于python Pdf 技巧的分享
前言:
PyPDF2是一個(gè)純Python的開源庫,能夠分割或合并PDF文件,也可以裁剪或轉(zhuǎn)換PDF文件中的頁面。我們還可以使用PyPDF2查看PDF文件的元信息,對(duì)PDF文件進(jìn)行加密等。
PyPDF2是一個(gè)開源的庫,因此在使用之前需要先安裝。
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())首先導(dǎo)入PyPDF2模塊,然后以二進(jìn)制讀模式打開a.pdf文件,并將它傳遞給PdfFileReader類的初始化函數(shù)。PdfFileReader的初始化函數(shù)會(huì)返回一個(gè)PdfFileReader類的對(duì)象,我們可以使用這個(gè)對(duì)象來獲取PDF文件的信息。
通過getNumPages函數(shù)獲取pdf的總頁數(shù),通過getIsEncrypted函數(shù)獲取文件是否加密,通過getDocumentInfo函數(shù)獲取文件的元數(shù)據(jù),通過傳遞下標(biāo)給getPage函數(shù)的方式獲取PDF頁面,下標(biāo)從0開始,與Python內(nèi)置的字符串、列表和元組等保持一致。通過PageObject類的extractText方法提取頁面中的文本。從該方法的返回結(jié)果來看,提取PDF文本的效果并不理想。
2.刪除pdf的某些頁
思路:PyPDF2并不能直接編輯PDF文件,但是我們可以利用PyPDF2從一個(gè)PDF文檔拷貝需要的頁面到另一個(gè)PDF文檔,通過這種迂回的方式實(shí)現(xiàn)編輯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.旋轉(zhuǎn)頁面
PageObject類中有部分方法可以修改PDF頁面,其中rotateClockwise和rotateCounterClockwise方法用來旋轉(zhuǎn)頁面。這兩個(gè)方法只接受一個(gè)參數(shù),且參數(shù)取值必須是90的倍數(shù),表示旋轉(zhuǎn)多少度。
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參數(shù)確定要添加的PDF文件,通過pages參數(shù)指定要將哪些PDF頁面添加到新的PDF文件中,并將要添加的頁面添加到merger對(duì)象的末尾。merge方法相對(duì)于append方法,增加了position參數(shù),我們可以通過position參數(shù)指定頁面插人的位置。append方法和merge方法的pages參數(shù)非常靈活,該參數(shù)是一個(gè)三元組(start,stop[,step]),分別表示起點(diǎn)、終點(diǎn)和步長(zhǎng)。我們可以通過該參數(shù)指定合并PDF文件中的頁面。
到此這篇關(guān)于python使用技巧Pdf的詳細(xì)內(nèi)容介紹的文章就介紹到這了,更多相關(guān)python使用技巧Pdf介紹內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python讀取圖片為16進(jìn)制表示簡(jiǎn)單代碼
這篇文章主要介紹了Python讀取圖片為16進(jìn)制表示簡(jiǎn)單代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Python3爬蟲中關(guān)于Ajax分析方法的總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Python3爬蟲中關(guān)于Ajax分析方法的總結(jié),需要的朋友們可以學(xué)習(xí)下。2020-07-07
python+numpy實(shí)現(xiàn)的基本矩陣操作示例
這篇文章主要介紹了python+numpy實(shí)現(xiàn)的基本矩陣操作,結(jié)合實(shí)例形式分析了Python使用numpy模塊針對(duì)矩陣進(jìn)行創(chuàng)建、增刪查改、索引、運(yùn)算相關(guān)操作實(shí)現(xiàn)技巧,注釋中包含有詳細(xì)的說明,需要的朋友可以參考下2019-07-07
python實(shí)現(xiàn)將range()函數(shù)生成的數(shù)字存儲(chǔ)在一個(gè)列表中
這篇文章主要介紹了python實(shí)現(xiàn)將range()函數(shù)生成的數(shù)字存儲(chǔ)在一個(gè)列表中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python 實(shí)現(xiàn)mysql自動(dòng)增刪分區(qū)的方法
這篇文章主要介紹了python 實(shí)現(xiàn)mysql自動(dòng)增刪分區(qū)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
python Django實(shí)戰(zhàn)之歌曲搜索功能實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用python Django實(shí)現(xiàn)歌曲搜索功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,有需要的小伙伴開業(yè)了解下2023-10-10

