日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python | 实现pdf文件分页

發布時間:2023/12/20 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python | 实现pdf文件分页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不知道大家有沒有遇到過這么一種情況,就比如一個pdf格式的電子書,我們經常瀏覽的是其中的一部分,而這電子書的頁數很大,每當需要瀏覽時,就需要翻到對應的頁碼,就有點兒繁瑣。

還有一些情況,比如,我們想分享pdf文件里的部分內容給別人,我們也需要用到pdf分頁,不僅可以分析指定內容,而且也可以減少發送文件的大小O(∩_∩)O哈哈~

總之,pdf的分頁,我們在現實生活中,是難免會遇到的事。當你遇到時,你是怎么解決的呢?

在Python中,實現pdf分頁,是及其簡單的,只需要運行幾行代碼,即可實現,不管你的pdf文件有多大,下面讓我們一起看看吧~
注:每部分代碼的作用,我都注釋在了代碼后面,注意查看喔~

from PyPDF2 import PdfFileReader, PdfFileWriter import osdef split(path, page_num):try: # 捕獲值異常錯誤,就是只輸入了一個頁數的時候page_start, page_end = page_num.split()except ValueError:page_start = page_numpage_end = page_numoutput_name = os.path.splitext(path)[0] + f'({page_start}-{page_end}).pdf' # 輸出分割后的pdf文件page_start, page_end = int(page_start), int(page_end) # 將頁碼轉為整數類型if os.path.splitext(path)[1] == '': # 判斷文件格式是否以.pdf結尾path = path + ".pdf"try:pdf = PdfFileReader(path) # 讀取pdfexcept FileNotFoundError:print("Error:請確認您輸入的pdf文件是否存在!")returnpdf_writer = PdfFileWriter() # pdf寫入對象if page_start < 1 or page_end > pdf.getNumPages(): # 判斷頁碼是否在合理范圍內,即有沒有小于或大于pdf文件的頁數print("Error:頁碼超出合理范圍,請確定您輸入的頁數區間在合理范圍之內!")returnfor page in range(page_start-1, page_end): # 需要分割的pdf頁數區間,因為讀取的頁數是從0開始計數的,所以減1pdf_writer.addPage(pdf.getPage(page)) # pdf頁數讀取,存于內存,并未開始寫入with open(output_name, 'wb') as output_pdf:pdf_writer.write(output_pdf) # 開始寫入指定頁數區間的pdfprint("分頁完成,注意查收:" + output_name)if __name__ == '__main__':source_path = input("請輸入需要分割的pdf的文件:") # 需要分割的pdf文件pages = input("請輸入分割的起始頁和終止頁,以空格分開:")split(source_path, pages)

其實最主要的代碼就下面的幾行:

pdf = PdfFileReader(path) # 讀取pdf pdf_writer = PdfFileWriter() # pdf寫入對象 for page in range(page_start, page_end): # 需要分割的pdf頁數區間pdf_writer.addPage(pdf.getPage(page)) # pdf頁數讀取,存于內存,并未開始寫入 with open(output_name, 'wb') as output_pdf:pdf_writer.write(output_pdf) # 開始寫入指定頁數區間的pdf

我只是在其基礎上增加了一些異常錯誤捕獲并解決的代碼,并實現代碼的循環利用,而不是只針對于一個pdf文件。

代碼使用展示:
1.源文件

書的頁數還是挺大的

2.目標頁數區間

注意,雖然這里的頁碼是271,但并不代表就是271,因為讀取的pdf文件頁碼是整個文件的頁碼,就比如書的封面,目錄的頁數也得包含進去。

所以,我們可以簡單算一下,書的頁碼第一頁與到封面差了幾頁,我這里差的是13頁,所以就是271+13=284作為分割起始頁,需要截取的頁數對應書上的頁碼是276,276+13=289,所以終止頁就是289了

3.代碼運行

4.異常捕獲的代碼展示:
輸入的起始頁小于1:

pdf頁碼一共才600頁,然后輸入了終止頁為700:

5.其它
要求的是區間,但你可以輸入1 1,1:

代碼還可以繼續完善,感興趣的小伙伴可以開動開動一下自己聰明的腦袋瓜子haha

總結

以上是生活随笔為你收集整理的Python | 实现pdf文件分页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。