精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

超全總結!聊聊 python 操作PDF的幾種方法

新聞 前端
大家好,有關Python操作PDF的案例之前已經寫過一個PDF批量合并,這個案例初衷只是給大家提供一個便利的腳本,并沒有太多講解原理,其中涉及的就是PDF處理很實用的模塊PyPDF2。

  一、前言

大家好,有關Python操作PDF的案例之前已經寫過一個PDF批量合并,這個案例初衷只是給大家提供一個便利的腳本,并沒有太多講解原理,其中涉及的就是PDF處理很實用的模塊PyPDF2,本文就好好剖析一下這個模塊,主要將涉及

  • os 模塊綜合應用
  • glob 模塊綜合應用
  • PyPDF2 模塊操作

二、基本操作

PyPDF2 導入模塊的代碼常常是:

  1. from PyPDF2 import PdfFileReader, PdfFileWriter 

這里導入了兩個方法:

  • PdfFileReader 可以理解為讀取器
  • PdfFileWriter可以理解為寫入器

接下來通過幾個案例進一步認識這兩個工具的奇妙之處,用到的示例文件是5個發(fā)票的pdf

最全總結!聊聊 python 操作PDF的幾種方法

每個發(fā)票的PDF都由兩頁組成:

最全總結!聊聊 python 操作PDF的幾種方法

三、合并

第一個工作是將5個發(fā)票pdf合并成10頁。這里讀取器和寫入器應該怎么配合呢?

邏輯如下:

  1. 讀取器將所有pdf讀取一遍
  2. 讀取器將讀取的內容交給寫入器
  3. 寫入器統(tǒng)一輸出到一個新pdf

這里還有一個重要的知識點:讀取器只能將讀取的內容一頁一頁交給寫入器。

因此,邏輯中第1步和第2步實際上不是彼此獨立的步驟,而是讀取器讀取完一個pdf后,就將這個pdf全部頁循環(huán)一遍,挨頁交給寫入器。最后等讀取工作全部結束后再輸出。

看一下代碼可以讓思路更清楚:

  1. from PyPDF2 import PdfFileReader, PdfFileWriter 
  2. path = r'C:\Users\xxxxxx' 
  3. pdf_writer = PdfFileWriter()for i in range(16): 
  4.     pdf_reader = PdfFileReader(path + '/INV{}.pdf'.format(i)) 
  5.     for page in range(pdf_reader.getNumPages()): 
  6.         pdf_writer.addPage(pdf_reader.getPage(page))with open(path + r'\合并PDF\merge.pdf''wb') as out: 
  7.     pdf_writer.write(out) 

由于全部內容都需要交給同一個寫入器最后一起輸出,所以寫入器的初始化一定是在循環(huán)體之外的.

如果在循環(huán)體內則會變成每次訪問讀取一個pdf就生成一個新的寫入器,這樣每一個讀取器交給寫入器的內容就會被反復覆蓋,無法實現我們的合并需求!

循環(huán)體開頭的代碼:

  1. for i in range(16): 
  2.     pdf_reader = PdfFileReader(path + '/INV{}.pdf'.format(i)) 

目的就是每次循環(huán)讀取一個新的pdf文件交給讀取器進行后續(xù)操作。實際上這種寫法不是很提倡,由于各pdf命名恰好很規(guī)則,所以可以直接人為指定數字進行循環(huán)。更好的方法是用 glob 模塊:

  1. import glob 
  2. for file in glob.glob(path + '/*.pdf'): 
  3.     pdf_reader = PdfFileReader(path) 

代碼中 pdf_reader.getNumPages(): 能夠獲取讀取器的頁數,配合range就能遍歷讀取器的所有頁。

pdf_writer.addPage(pdf_reader.getPage(page))能夠將當前頁交給寫入器。

最后,用with新建一個pdf并由寫入器的 pdf_writer.write(out)方法輸出即可

四、拆分

如果明白了合并操作中讀取器和寫入器的配合,那么拆分就很好理解了,這里我們以拆分INV1.pdf為2個單獨的pdf文檔為例,同樣也先來捋一捋邏輯:

  1. 讀取器讀取PDF文檔
  2. 讀取器一頁一頁交給寫入器
  3. 寫入器每獲取一頁就立即輸出

通過這個代碼邏輯我們也可以明白,寫入器初始化和輸出的位置一定都在讀取PDF循環(huán)每一頁的循環(huán)體內,而不是在循環(huán)體外

代碼很簡單:

  1. from PyPDF2 import PdfFileReader, PdfFileWriter 
  2. path = r'C:\Users\xxx' 
  3. pdf_reader = PdfFileReader(path + '\INV1.pdf'
  4. for page in range(pdf_reader.getNumPages()): 
  5.     # 遍歷到每一頁挨個生成寫入器 
  6.     pdf_writer = PdfFileWriter() 
  7.     pdf_writer.addPage(pdf_reader.getPage(page)) 
  8.     # 寫入器被添加一頁后立即輸出產生pdf 
  9.     with open(path + '\INV1-{}.pdf'.format(page + 1), 'wb') as out: 
  10.         pdf_writer.write(out) 

五、水印

本次的工作是將下圖作為水印添加到INV1.pdf中

[[342208]]

首先是準備工作,將需要作為水印的圖片插入word中調整合適位置后保存為PDF文件。然后就可以碼代碼了,需要額外用到copy模塊,具體解釋見下圖:

最全總結!聊聊 python 操作PDF的幾種方法

就是把讀取器和寫入器初始化,并且把水印PDF頁先讀取好備用,核心代碼稍微比較難理解:

最全總結!聊聊 python 操作PDF的幾種方法

加水印本質上就是把水印PDF頁和需要加水印的每一頁都合并一遍

由于需要加水印的PDF可能有很多頁,而水印PDF只有一頁,因此如果直接把水印PDF拿來合并,可以抽象理解成加完第一頁,水印PDF頁就沒有了

因此不能直接拿來合并,而要把水印PDF頁不斷copy出來成新的一頁備用new_page,再運用.mergePage方法完成跟每一頁合并,把合并后的頁交給寫入器待最后統(tǒng)一輸出!

關于.mergePage的使用:出現在下面的頁.mergePage(出現在上面的頁),最后效果如圖:

[[342209]]

六、加密

加密很簡單,只需要記住:「加密是針對寫入器加密」

因此只需要在相關操作完成后調用pdf_writer.encrypt(密碼)

以單個PDF的加密為例:

最全總結!聊聊 python 操作PDF的幾種方法

寫在最后

當然除了對PDF的合并、拆分、加密、水印,我們還可以使用Python結合Excel和Word實現更多的自動化需求,這些就留給讀者自己開發(fā)。

最后還是希望大家能夠理解Python辦公自動化的一個核心就是批量操作-解放雙手,讓復雜的工作自動化!

 

責任編輯:張燕妮 來源: 早起Python
相關推薦

2021-12-29 09:00:36

Go文件syscall

2010-05-17 15:17:06

MySQL常用操作

2024-05-10 12:59:58

PyTorch人工智能

2024-03-01 20:55:40

Pytorch張量Tensor

2021-03-08 09:32:04

Python文件命令

2024-06-03 08:26:34

Android開發(fā)監(jiān)聽器

2025-01-20 08:00:00

圖像增強深度學習AI

2009-09-18 12:29:55

2013-08-21 11:31:21

iPhone圖片方法

2010-06-03 08:55:43

LINQ

2024-06-11 07:34:58

C#字符串性能

2024-12-31 07:00:00

2010-01-22 14:46:25

C++語言

2010-04-30 16:22:07

Unix終端

2010-10-26 09:23:03

Web Service

2020-07-14 09:58:01

Python開發(fā)工具

2009-09-09 11:24:46

PHP實現MVC

2011-06-16 10:48:33

session

2020-08-24 08:05:47

JavaScriptJavaScript 頁面

2021-02-26 13:20:48

Shell空行Linux
點贊
收藏

51CTO技術棧公眾號

精品久久久久久久久久久久久| 日韩伦理一区| 性感美女久久精品| 欧美日韩精品免费在线观看视频| 毛片在线免费播放| 综合在线视频| 精品一区电影国产| 午夜激情影院在线观看| 一个人看的www视频在线免费观看| 久久久久国产精品麻豆| 国产精品久久久久久久美男 | 91片在线免费观看| 国产精品亚洲美女av网站| 强行糟蹋人妻hd中文| 精品精品久久| 日韩av影片在线观看| 五月天丁香花婷婷| gogo亚洲高清大胆美女人体 | 精品人妻一区二区三区潮喷在线| 亚洲精品va| 亚洲人永久免费| 日批视频免费看| 国产人妖一区| 色94色欧美sute亚洲13| 久草视频国产在线| 大片免费在线看视频| 国产拍欧美日韩视频二区| 国产伦精品一区二区三区照片| 中文字幕一区二区三区人妻四季| 国产亚洲网站| 欧美精品久久久久久久久久| 日韩激情小视频| 精品视频免费| 亚洲欧美日韩高清| 喷水视频在线观看| 超碰成人免费| 日韩视频免费观看高清在线视频| 亚洲老女人av| 久久天堂av| 91黄色免费版| 免费裸体美女网站| 蜜桃视频在线观看播放| 亚洲大片在线观看| 欧洲精品在线播放| 视频在线观看入口黄最新永久免费国产| 国产欧美日韩精品在线| 日产精品高清视频免费| 欧美日韩影视| 久久嫩草精品久久久精品| 91精品久久久久久综合乱菊| 中文字幕福利视频| 久久精品国产秦先生| 国产欧美一区二区三区四区| 中文字幕在线观看免费| 美国三级日本三级久久99| 国产精品高潮视频| 日批视频免费观看| 六月丁香综合在线视频| 成人黄色av播放免费| 国产色视频在线| 国产成人av自拍| 成人动漫在线观看视频| 黄色av小说在线观看| 成年人午夜久久久| 精品视频导航| 欧美成熟毛茸茸| 欧美国产日本视频| 日本黄色播放器| 宅男在线观看免费高清网站| 亚洲综合成人网| 精品视频在线观看一区| 手机av在线| 欧美色区777第一页| 日韩av加勒比| 欧美成人午夜77777| 亚洲视频一区二区三区| 任我爽在线视频| 欧美日韩伊人| 91精品国产乱码久久久久久蜜臀| 中文字幕国产在线观看| 美国av一区二区| 91在线观看网站| 亚洲 小说区 图片区 都市| 成人av在线资源网| 日本一区二区在线视频| 成人a在线视频免费观看| 亚洲福利视频三区| 国产裸体免费无遮挡| 亚洲免费资源| 日韩精品视频在线免费观看 | 成人羞羞视频在线看网址| 久久中文字幕在线视频| 国产精品suv一区二区三区| 日本91福利区| 国产区一区二区| 二人午夜免费观看在线视频| 亚洲综合在线视频| 日本美女高潮视频| 99久热这里只有精品视频免费观看| 精品偷拍各种wc美女嘘嘘| fc2ppv在线播放| 亚洲激情另类| 亚洲mm色国产网站| 黄色片在线播放| 一区二区三区在线观看网站| 99精品视频播放| 视频欧美一区| 最好看的2019年中文视频| 久久亚洲av午夜福利精品一区| 日韩精彩视频在线观看| 国产精品免费一区二区三区在线观看 | 成人短视频在线观看免费| 午夜欧美巨大性欧美巨大| 欧美一区二区三区公司| 国产亚洲精品熟女国产成人| 韩日成人av| 91精品视频观看| 国产小视频在线观看| 亚洲第一搞黄网站| 五月天六月丁香| 久久在线视频| 国产成人精品在线观看| 青青草娱乐在线| 亚洲va天堂va国产va久| 免费高清视频在线观看| 99久久夜色精品国产亚洲96| 国产精品久久久久久搜索| 青青免费在线视频| 精品日韩视频在线观看| 日本成人xxx| 希岛爱理一区二区三区| 国产欧美久久一区二区| 成人在线免费观看| 91久久国产最好的精华液| 加勒比一区二区| 国产美女一区| 国外成人在线视频网站| 色呦呦在线视频| 日韩美女一区二区三区四区| 97精品在线播放| 老鸭窝一区二区久久精品| 神马影院我不卡| 91精品店在线| 日韩av在线免播放器| 日韩无码精品一区二区三区| 成人av网站大全| 久久这里只有精品23| jazzjazz国产精品久久| 久久久久久久久国产| 丰满人妻一区二区| 亚洲成人综合视频| theav精尽人亡av| 欧美亚洲专区| 台湾成人av| 未满十八勿进黄网站一区不卡| www.亚洲成人| a级片在线播放| 亚洲妇女屁股眼交7| 国产又黄又粗又猛又爽的视频 | 国模无码一区二区三区| 亚洲电影第三页| 在线天堂www在线国语对白| 99国产精品视频免费观看一公开| 久久这里精品国产99丫e6| 精品极品在线| 国产亚洲精品久久| 91女人18毛片水多国产| 一区二区三区在线看| 国产精品九九视频| 丝袜美腿一区二区三区| 亚洲欧美影院| 动漫av一区| 青青草成人在线| 一区二区三区视频网站| 日韩三级在线观看| 无码人妻精品一区二| 国产精品久久久久久久久晋中| 中文字幕 欧美 日韩| 99在线精品视频在线观看| 少妇特黄a一区二区三区| 欧美国产中文高清| 欧美中文字幕在线观看| 男人在线资源站| 亚洲国产精久久久久久久| 免费看一级视频| 亚洲视频一区在线| 中文在线永久免费观看| 美女在线一区二区| 久久亚洲精品无码va白人极品| 欧美日韩xxxx| 99久久精品免费看国产一区二区三区 | 日韩av地址| 欧美一区二区大片| 无码人妻丰满熟妇区bbbbxxxx| 亚洲免费大片在线观看| 老熟妇一区二区| 成人丝袜高跟foot| 日韩av片专区| 亚洲欧美成人综合| 91免费国产精品| 国产一区二区亚洲| 国产综合 伊人色| 精品久久国产一区| 国产精品麻豆va在线播放| 国产免费拔擦拔擦8x高清在线人| 日韩有码在线播放| 天堂在线视频免费| 91麻豆精品国产91久久久更新时间| 国内精品福利视频| 亚洲成人自拍偷拍| 麻豆精品一区二区三区视频| 欧美国产精品久久| www.超碰97| 国产成人综合精品三级| mm131亚洲精品| 久久久久久久高潮| 欧美日韩在线一| 亚洲人妖在线| www.国产亚洲| 911久久香蕉国产线看观看| 日韩高清国产精品| 亚洲a级精品| 国产偷久久久精品专区| 亚洲福利合集| 亚洲综合色av| 国产美女精品视频免费播放软件| 国产精品嫩草视频| 韩国理伦片久久电影网| 国产成一区二区| 天天免费亚洲黑人免费| 欧美综合在线第二页| 国产精品yjizz视频网| 久久久久久久亚洲精品| 久草成色在线| 欧美激情网友自拍| 日本h片在线| 久久99精品国产99久久6尤物| 国产91在线视频蝌蚪| 久久精品久久精品亚洲人| 色网站免费在线观看| 色偷偷88888欧美精品久久久| 亚洲s色大片| 日韩中文在线中文网三级| 午夜在线小视频| 日韩中文在线不卡| 国产美女福利在线| 久久91亚洲精品中文字幕奶水| 亚洲综合影视| 久久久久久久久久国产精品| sm在线播放| 91干在线观看| 精品国产免费人成网站| 国产精品精品视频一区二区三区| 国内精品伊人| 99理论电影网| 久久久久97| 欧美1o一11sex性hdhd| 国产亚洲欧美日韩在线观看一区二区 | 91精品国产综合久久精品麻豆| 国产精品女同一区二区| 日韩一区二区三区精品视频| 国产成人自拍一区| 国产午夜精品久久久| 国产午夜在线视频| www.日韩.com| 久久免费电影| 日韩av电影在线网| 亚洲免费看片| 国产一区免费视频| 欧美精品一区二区三区中文字幕 | 青青草视频在线免费直播| 97久久精品在线| 成人视屏在线观看| 91精品在线观看视频| 精品综合久久88少妇激情| 午夜精品美女久久久久av福利| 68国产成人综合久久精品| 国产一区二区四区| 日韩二区在线观看| 久久无码专区国产精品s| 久久人人爽人人爽| 91日韩中文字幕| 色偷偷久久人人79超碰人人澡| 亚洲性生活大片| 精品国产髙清在线看国产毛片| 蜜桃视频在线观看视频| 久久不射电影网| 高清av不卡| 亚洲字幕在线观看| 精品高清在线| 福利视频免费在线观看| 日韩专区中文字幕一区二区| 在线成人精品视频| 国产欧美日韩在线| 久久久国产精品黄毛片| 欧美体内she精视频| 欧美 日韩 国产 成人 在线 91| 国产亚洲综合久久| 黄污视频在线观看| 国产精品中文字幕在线观看| 久久99精品久久久久久欧洲站 | 在线三级中文| 国产精品欧美风情| 亚洲精华一区二区三区| 欧美一级特黄aaaaaa在线看片| 久久精品一区| 污污免费在线观看| 亚洲欧美成aⅴ人在线观看| 亚洲黄网在线观看| 亚洲精品久久久一区二区三区 | 91精品国产一区| 日韩中文字幕| 成人手机视频在线| 喷水一区二区三区| 李宗瑞91在线正在播放| 婷婷丁香久久五月婷婷| 丰满人妻一区二区| 另类天堂视频在线观看| 欧洲午夜精品| 亚洲精品久久区二区三区蜜桃臀| 先锋影音久久久| 国产婷婷在线观看| 亚洲影院在线观看| av无码精品一区二区三区宅噜噜| 自拍视频国产精品| 精品欧美一区二区三区在线观看 | 日韩欧美在线观看一区二区三区| av在线中文| 国产欧美日韩精品在线观看| 精品国产美女| 人妻丰满熟妇av无码区app| 久久日韩精品一区二区五区| 中文字幕超碰在线| 精品一区二区亚洲| 黄色成人免费网| 视频在线99re| 免费看欧美美女黄的网站| 一级特黄曰皮片视频| 欧美亚洲动漫制服丝袜| av色图一区| 国产精品久久久久久影视| 欧美色女视频| 国产亚洲视频一区| 综合久久久久久久| 国内精品久久久久久久久久 | 影音先锋在线亚洲| 九九视频精品免费| 免费国产羞羞网站美图| 欧美一级生活片| 啦啦啦中文在线观看日本| 高清国产在线一区| 夜夜嗨一区二区| av网站免费在线看| 欧美日韩亚洲综合| yellow91字幕网在线| 99视频免费观看蜜桃视频| 黄色一区二区三区四区| 真人bbbbbbbbb毛片| 日本高清视频一区二区| 午夜视频在线看| 亚洲伊人一本大道中文字幕| 黄色精品免费| 中文字幕av网址| 欧美日韩日本视频| 七七成人影院| 免费在线成人av电影| 久久超级碰视频| 国产精品9191| 亚洲色图25p| 成人国产精品一区二区网站| 国产一级不卡视频| 国产午夜精品一区二区| 国产精品无码一区二区桃花视频| 欧美激情啊啊啊| 精品国产不卡| 美女被艹视频网站| 黑人巨大精品欧美一区二区| 3d成人动漫在线| 国产精品久久国产精品| 免费在线亚洲欧美| 中文字幕电影av| 日韩精品极品在线观看| 亚洲网站免费| 成人三级视频在线播放| 亚洲摸摸操操av| 日本大臀精品| 91青青草免费观看| 日韩中文字幕av电影| 久操免费在线视频| 一区二区三区视频免费在线观看| 欧美专区一区| 国产超碰在线播放| 亚洲国产一区二区视频| 1pondo在线播放免费| 精品无码久久久久久久动漫| 久久99久久99精品免视看婷婷 | 老牛国产精品一区的观看方式| 国产免费无码一区二区视频| 亚洲天堂成人在线视频| 国产66精品|