欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python對(duì)pdf文件進(jìn)行加密等操作

 更新時(shí)間:2024年12月18日 08:53:09   作者:樂茵安全  
這篇文章主要為大家詳細(xì)介紹了使用python對(duì)pdf文件進(jìn)行加密等操作的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

利用python對(duì)pdf文件進(jìn)行操作

讀取pdf-源碼

import PyPDF2
# 讀取pdf格式的文件
reader = PyPDF2.PdfFileReader('示例文件/aaa.pdf')
print(reader)
 
# 讀取指定頁(yè)面的文件
page = reader.getPage(0)
# 輸出當(dāng)前頁(yè)面的文本數(shù)據(jù)
print(page.extractText())

讀取pdf-源碼解析

這段代碼使用了PyPDF2庫(kù)來(lái)讀取和處理PDF文件。以下是對(duì)這段代碼的詳細(xì)分析:

1. 導(dǎo)入庫(kù)

import PyPDF2

這行代碼導(dǎo)入了PyPDF2庫(kù),該庫(kù)提供了處理PDF文件的功能。

2. 讀取PDF文件

reader = PyPDF2.PdfFileReader('示例文件/aaa.pdf')
print(reader)

PyPDF2.PdfFileReader('示例文件/aaa.pdf'):創(chuàng)建一個(gè)PdfFileReader對(duì)象,用于讀取指定的PDF文件。這里的文件路徑是'示例文件/aaa.pdf'。

print(reader):打印reader對(duì)象。這個(gè)對(duì)象包含了PDF文件的元數(shù)據(jù)和頁(yè)面信息。

3. 讀取指定頁(yè)面

page = reader.getPage(0)

reader.getPage(0):從PDF文件中獲取第一頁(yè)(索引為0)。getPage方法返回一個(gè)PageObject對(duì)象,表示PDF文件中的一頁(yè)。

4. 提取并輸出文本數(shù)據(jù)

print(page.extractText())

page.extractText():從當(dāng)前頁(yè)面(page對(duì)象)中提取文本數(shù)據(jù)。這個(gè)方法會(huì)嘗試解析頁(yè)面中的文本并返回一個(gè)字符串。

print(page.extractText()):打印提取到的文本數(shù)據(jù)。

代碼執(zhí)行流程

導(dǎo)入庫(kù):導(dǎo)入PyPDF2庫(kù)。

創(chuàng)建讀取器對(duì)象:使用PdfFileReader讀取指定的PDF文件。

獲取頁(yè)面對(duì)象:使用getPage方法獲取PDF文件的第一頁(yè)。

提取文本:使用extractText方法從頁(yè)面對(duì)象中提取文本數(shù)據(jù)。

輸出文本:打印提取到的文本數(shù)據(jù)。

注意事項(xiàng)

確保PDF文件路徑正確,并且文件存在。

PyPDF2庫(kù)可能無(wú)法完美提取所有PDF文件中的文本,特別是那些包含復(fù)雜格式或圖像的PDF文件。

如果PDF文件受密碼保護(hù),需要先解密文件才能讀取內(nèi)容。

示例輸出

假設(shè)PDF文件'示例文件/aaa.pdf'的第一頁(yè)包含文本“Hello, World!”,那么代碼的輸出將是:

<PyPDF2.pdf.PageObject object at 0x...>
Hello, World!

其中<PyPDF2.pdf.PageObject object at 0x...>是PageObject對(duì)象的表示,后面的文本是提取到的內(nèi)容。

通過這段代碼,你可以讀取PDF文件的指定頁(yè)面并提取其中的文本內(nèi)容。

旋轉(zhuǎn)和創(chuàng)建空白pdf-源碼

import PyPDF2
 
# 創(chuàng)建讀取pdf文件的對(duì)象
reader = PyPDF2.PdfFileReader(r'示例文件/aaa.pdf')
# 創(chuàng)建寫入pdf文件的對(duì)象
writer = PyPDF2.PdfFileWriter()
# print(reader,writer)
 
# 獲取pdf文件中所有頁(yè)碼
# print(reader.numPages)
 
# 對(duì)pdf文件中的所有頁(yè)碼進(jìn)行遍歷
for page_num in range(reader.numPages):
    # print(page_num)
    # 獲取當(dāng)前頁(yè)面對(duì)象
    current_page = reader.getPage(page_num)
    # 若是奇數(shù)頁(yè)順時(shí)針旋轉(zhuǎn)90°
    if page_num % 2 == 0:
        current_page.rotateClockwise(90)
    else:
        # 若是奇數(shù)頁(yè)逆時(shí)針旋轉(zhuǎn)90°
        current_page.rotateCounterClockwise(90)
    writer.addPage(current_page)
 
# 添加空白頁(yè),并且旋轉(zhuǎn)90°
page = writer.addBlankPage()
page.rotateClockwise(90)
 
# 通過writer對(duì)象里面的write方法,將pdf文件做的調(diào)整保存到新的文件中
with open(r'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf', 'wb') as file:
    writer.write(file)

旋轉(zhuǎn)和創(chuàng)建空白pdf-源碼解析

這段代碼使用了PyPDF2庫(kù)來(lái)讀取一個(gè)PDF文件,對(duì)每一頁(yè)進(jìn)行旋轉(zhuǎn)操作,并添加一個(gè)空白頁(yè),最后將修改后的內(nèi)容保存到一個(gè)新的PDF文件中。以下是對(duì)這段代碼的詳細(xì)解析:

1. 導(dǎo)入庫(kù)

import PyPDF2

這行代碼導(dǎo)入了PyPDF2庫(kù),該庫(kù)提供了處理PDF文件的功能。

2. 創(chuàng)建讀取和寫入PDF文件的對(duì)象

reader = PyPDF2.PdfFileReader(r'示例文件/aaa.pdf')
writer = PyPDF2.PdfFileWriter()

reader = PyPDF2.PdfFileReader(r'示例文件/aaa.pdf'):創(chuàng)建一個(gè)PdfFileReader對(duì)象,用于讀取指定的PDF文件。這里的文件路徑是'示例文件/aaa.pdf'。

writer = PyPDF2.PdfFileWriter():創(chuàng)建一個(gè)PdfFileWriter對(duì)象,用于寫入新的PDF文件。

3. 獲取PDF文件中所有頁(yè)碼

num_pages = reader.numPages

reader.numPages:獲取PDF文件中的總頁(yè)數(shù)。

4. 對(duì)PDF文件中的所有頁(yè)碼進(jìn)行遍歷

for page_num in range(num_pages):
    current_page = reader.getPage(page_num)
    if page_num % 2 == 0:
        current_page.rotateClockwise(90)
    else:
        current_page.rotateCounterClockwise(90)
    writer.addPage(current_page)

for page_num in range(num_pages):遍歷PDF文件中的每一頁(yè)。

current_page = reader.getPage(page_num):獲取當(dāng)前頁(yè)碼對(duì)應(yīng)的頁(yè)面對(duì)象。

if page_num % 2 == 0:判斷當(dāng)前頁(yè)碼是否為偶數(shù)。

current_page.rotateClockwise(90):如果是偶數(shù)頁(yè),順時(shí)針旋轉(zhuǎn)90度。

current_page.rotateCounterClockwise(90):如果是奇數(shù)頁(yè),逆時(shí)針旋轉(zhuǎn)90度。

writer.addPage(current_page):將旋轉(zhuǎn)后的頁(yè)面添加到writer對(duì)象中。

5. 添加空白頁(yè)并旋轉(zhuǎn)

page = writer.addBlankPage()
page.rotateClockwise(90)

page = writer.addBlankPage():在writer對(duì)象中添加一個(gè)空白頁(yè)。

page.rotateClockwise(90):將空白頁(yè)順時(shí)針旋轉(zhuǎn)90度。

6. 保存修改后的PDF文件

with open(r'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf', 'wb') as file:
    writer.write(file)

with open(r'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf', 'wb') as file:以二進(jìn)制寫模式打開一個(gè)新文件,用于保存修改后的PDF文件。

writer.write(file):將writer對(duì)象中的內(nèi)容寫入到新文件中。

代碼執(zhí)行流程

導(dǎo)入庫(kù):導(dǎo)入PyPDF2庫(kù)。

創(chuàng)建讀取器和寫入器對(duì)象:分別創(chuàng)建用于讀取和寫入PDF文件的對(duì)象。

獲取總頁(yè)數(shù):獲取PDF文件中的總頁(yè)數(shù)。

遍歷每一頁(yè):對(duì)每一頁(yè)進(jìn)行旋轉(zhuǎn)操作,并將旋轉(zhuǎn)后的頁(yè)面添加到寫入器對(duì)象中。

添加空白頁(yè)并旋轉(zhuǎn):在寫入器對(duì)象中添加一個(gè)空白頁(yè),并將其旋轉(zhuǎn)90度。

保存文件:將修改后的內(nèi)容保存到一個(gè)新的PDF文件中。

示例輸出

假設(shè)原始PDF文件'示例文件/aaa.pdf'有3頁(yè),經(jīng)過上述代碼處理后,將會(huì)生成一個(gè)新的PDF文件'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf',其中:

第1頁(yè)(原第1頁(yè))順時(shí)針旋轉(zhuǎn)90度。

第2頁(yè)(原第2頁(yè))逆時(shí)針旋轉(zhuǎn)90度。

第3頁(yè)(原第3頁(yè))順時(shí)針旋轉(zhuǎn)90度。

添加了一個(gè)空白頁(yè),并且該空白頁(yè)順時(shí)針旋轉(zhuǎn)90度。

通過這段代碼,你可以對(duì)PDF文件的每一頁(yè)進(jìn)行旋轉(zhuǎn)操作,并添加一個(gè)空白頁(yè),最后將修改后的內(nèi)容保存到一個(gè)新的PDF文件中。

對(duì)pdf文件加密-源碼

import PyPDF2
 
# 創(chuàng)建讀取pdf文件對(duì)象
reader = PyPDF2.PdfFileReader('示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf')
 
# 創(chuàng)建寫入pdf文件的對(duì)象
writer = PyPDF2.PdfFileWriter()
 
for page_num in range(reader.numPages):
    # 將原文的每一頁(yè)追加到writer對(duì)象中
    writer.addPage(reader.getPage(page_num))
 
# 給writer對(duì)象設(shè)置密碼
writer.encrypt("123456")
# 將加密后的文件寫入到新文件中
with open(r'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件_加密.pdf', 'wb') as file:
    writer.write(file)

對(duì)pdf文件加密-源碼解析

這段代碼使用了PyPDF2庫(kù)來(lái)讀取一個(gè)已有的PDF文件,將其內(nèi)容復(fù)制到一個(gè)新的PDF文件中,并給新的PDF文件設(shè)置密碼進(jìn)行加密,最后將加密后的文件保存到新的文件中。以下是對(duì)這段代碼的詳細(xì)解析:

1. 導(dǎo)入庫(kù)

import PyPDF2

這行代碼導(dǎo)入了PyPDF2庫(kù),該庫(kù)提供了處理PDF文件的功能。

2. 創(chuàng)建讀取PDF文件對(duì)象

reader = PyPDF2.PdfFileReader('示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf')

reader = PyPDF2.PdfFileReader('示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf'):創(chuàng)建一個(gè)PdfFileReader對(duì)象,用于讀取指定的PDF文件。這里的文件路徑是'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf'。

3. 創(chuàng)建寫入PDF文件的對(duì)象

writer = PyPDF2.PdfFileWriter()

writer = PyPDF2.PdfFileWriter():創(chuàng)建一個(gè)PdfFileWriter對(duì)象,用于寫入新的PDF文件。

4. 遍歷原文的每一頁(yè)并追加到writer對(duì)象中

for page_num in range(reader.numPages):
    writer.addPage(reader.getPage(page_num))

for page_num in range(reader.numPages):遍歷PDF文件中的每一頁(yè)。

writer.addPage(reader.getPage(page_num)):將當(dāng)前頁(yè)碼對(duì)應(yīng)的頁(yè)面對(duì)象添加到writer對(duì)象中。

5. 給writer對(duì)象設(shè)置密碼

writer.encrypt("123456")

writer.encrypt("123456"):給writer對(duì)象設(shè)置密碼,密碼為"123456"。加密后的PDF文件需要使用這個(gè)密碼才能打開。

6. 將加密后的文件寫入到新文件中

with open(r'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件_加密.pdf', 'wb') as file:
    writer.write(file)

with open(r'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件_加密.pdf', 'wb') as file:以二進(jìn)制寫模式打開一個(gè)新文件,用于保存加密后的PDF文件。

writer.write(file):將writer對(duì)象中的內(nèi)容寫入到新文件中。

代碼執(zhí)行流程

導(dǎo)入庫(kù):導(dǎo)入PyPDF2庫(kù)。

創(chuàng)建讀取器對(duì)象:創(chuàng)建用于讀取PDF文件的對(duì)象。

創(chuàng)建寫入器對(duì)象:創(chuàng)建用于寫入新的PDF文件的對(duì)象。

遍歷每一頁(yè):將原文的每一頁(yè)追加到寫入器對(duì)象中。

設(shè)置密碼:給寫入器對(duì)象設(shè)置密碼。

保存文件:將加密后的內(nèi)容保存到一個(gè)新的PDF文件中。

示例輸出

假設(shè)原始PDF文件'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件.pdf'有3頁(yè),經(jīng)過上述代碼處理后,將會(huì)生成一個(gè)新的PDF文件'示例文件/旋轉(zhuǎn)和創(chuàng)建空白pdf文件_加密.pdf',其中:

內(nèi)容與原始PDF文件相同。

文件被加密,需要使用密碼"123456"才能打開。

通過這段代碼,你可以讀取一個(gè)PDF文件的內(nèi)容,將其復(fù)制到一個(gè)新的PDF文件中,并給新的PDF文件設(shè)置密碼進(jìn)行加密,最后將加密后的文件保存到新的文件中。

對(duì)pdf文件添加水印-源碼

import PyPDF2
 
# 讀取源文件
reader = PyPDF2.PdfFileReader(r'示例文件/aaa.pdf')
 
# 讀取水印文件
water = PyPDF2.PdfFileReader(r'示例文件/watermark.pdf')
 
# 寫入pdf文件對(duì)象
writer = PyPDF2.PdfFileWriter()
 
# 獲取水印頁(yè)
water_page = water.getPage(0)
 
# 通過循環(huán)給原文件添加水印
for page_num in range(reader.numPages):
    # 獲取當(dāng)前頁(yè)對(duì)象
    current_page = reader.getPage(page_num)
    # 將源文件的每一頁(yè)與水印頁(yè)合并
    current_page.mergePage(water_page)
    writer.addPage(current_page)
 
# 將添加完水印頁(yè)的文件寫入到新文件當(dāng)中
with open(r'示例文件/aaa.pdf','wb') as file:
    writer.write(file)

對(duì)pdf文件添加水印-源碼解析

這段代碼使用了PyPDF2庫(kù)來(lái)讀取一個(gè)源PDF文件和一個(gè)水印PDF文件,然后將水印添加到源文件的每一頁(yè),最后將添加完水印的文件保存到一個(gè)新的文件中。以下是對(duì)這段代碼的詳細(xì)解析:

1. 導(dǎo)入庫(kù)

import PyPDF2

這行代碼導(dǎo)入了PyPDF2庫(kù),該庫(kù)提供了處理PDF文件的功能。

2. 讀取源文件和水印文件

reader = PyPDF2.PdfFileReader(r'示例文件/aaa.pdf')
water = PyPDF2.PdfFileReader(r'示例文件/watermark.pdf')

reader = PyPDF2.PdfFileReader(r'示例文件/aaa.pdf'):創(chuàng)建一個(gè)PdfFileReader對(duì)象,用于讀取源PDF文件。這里的文件路徑是'示例文件/aaa.pdf'。

water = PyPDF2.PdfFileReader(r'示例文件/watermark.pdf'):創(chuàng)建一個(gè)PdfFileReader對(duì)象,用于讀取水印PDF文件。這里的文件路徑是'示例文件/watermark.pdf'。

3. 創(chuàng)建寫入PDF文件的對(duì)象

writer = PyPDF2.PdfFileWriter()

writer = PyPDF2.PdfFileWriter():創(chuàng)建一個(gè)PdfFileWriter對(duì)象,用于寫入新的PDF文件。

4. 獲取水印頁(yè)

water_page = water.getPage(0)

water_page = water.getPage(0):獲取水印PDF文件的第一頁(yè)(索引為0),作為水印頁(yè)。

5. 通過循環(huán)給原文件添加水印

for page_num in range(reader.numPages):
    current_page = reader.getPage(page_num)
    current_page.mergePage(water_page)
    writer.addPage(current_page)

for page_num in range(reader.num頁(yè)面):遍歷源PDF文件中的每一頁(yè)。

current_page = reader.getPage(page_num):獲取當(dāng)前頁(yè)碼對(duì)應(yīng)的頁(yè)面對(duì)象。

current_page.mergePage(water_page):將水印頁(yè)合并到當(dāng)前頁(yè)上。

writer.addPage(current_page):將合并了水印的當(dāng)前頁(yè)添加到writer對(duì)象中。

6. 將添加完水印頁(yè)的文件寫入到新文件當(dāng)中

with open(r'示例文件/aaa.pdf','wb') as file:
    writer.write(file)

with open(r'示例文件/aaa.pdf','wb') as file:以二進(jìn)制寫模式打開一個(gè)新文件,用于保存添加完水印的PDF文件。

writer.write(file):將writer對(duì)象中的內(nèi)容寫入到新文件中。

代碼執(zhí)行流程

導(dǎo)入庫(kù):導(dǎo)入PyPDF2庫(kù)。

讀取源文件和水印文件:分別創(chuàng)建用于讀取源PDF文件和水印PDF文件的對(duì)象。

創(chuàng)建寫入器對(duì)象:創(chuàng)建用于寫入新的PDF文件的對(duì)象。

獲取水印頁(yè):獲取水印PDF文件的第一頁(yè)。

遍歷每一頁(yè)并添加水?。簩⑺№?yè)合并到源PDF文件的每一頁(yè)上,并將合并后的頁(yè)面添加到寫入器對(duì)象中。

保存文件:將添加完水印的文件保存到一個(gè)新的文件中。

示例輸出

假設(shè)源PDF文件'示例文件/aaa.pdf'有3頁(yè),水印PDF文件'示例文件/watermark.pdf'有1頁(yè),經(jīng)過上述代碼處理后,將會(huì)生成一個(gè)新的PDF文件'示例文件/aaa.pdf',其中:

每一頁(yè)都包含了水印。

水印的位置和大小取決于水印頁(yè)的內(nèi)容和源頁(yè)的大小。

通過這段代碼,你可以讀取一個(gè)源PDF文件和一個(gè)水印PDF文件,將水印添加到源文件的每一頁(yè),最后將添加完水印的文件保存到一個(gè)新的文件中。

以上就是使用python對(duì)pdf文件進(jìn)行加密等操作的詳細(xì)內(nèi)容,更多關(guān)于python pdf加密的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論