使用Python實(shí)現(xiàn)PDF頁(yè)面設(shè)置操作
前言
在將紙質(zhì)文檔掃描成PDF電子文檔時(shí),有時(shí)可能會(huì)出現(xiàn)頁(yè)面方向翻轉(zhuǎn)或者頁(yè)面順序混亂的情況。為了確保更好地瀏覽和查看PDF文件,本文將分享一個(gè)使用Python來(lái)旋轉(zhuǎn)PDF頁(yè)面或者調(diào)整PDF頁(yè)面順序的解決方案。
要實(shí)現(xiàn)Python對(duì)PDF頁(yè)面進(jìn)行設(shè)置,我們需要用到第三方庫(kù) Spire.PDF for Python。該庫(kù)支持在Python中生成、操作、轉(zhuǎn)換PDF等各項(xiàng)操作??梢韵螺d后手動(dòng)安裝或者使用pip命令來(lái)安裝:
pip install Spire.PDF
使用Python旋轉(zhuǎn)PDF頁(yè)面
Spire.PDF for Python支持在當(dāng)前頁(yè)面旋轉(zhuǎn)角度的基礎(chǔ)上順時(shí)針旋轉(zhuǎn)0度、90度、180度和270度。以下為示例代碼:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建PdfDocument對(duì)象
pdf = PdfDocument()
# 加載PDF文件
pdf.LoadFromFile("分析.pdf")
# 獲取第一頁(yè)
page = pdf.Pages[0]
# 獲取頁(yè)面原始旋轉(zhuǎn)角度
rotation = int(page.Rotation.value)
# 基于原始旋轉(zhuǎn)角度將頁(yè)面順時(shí)針旋轉(zhuǎn)90度
rotation += int(PdfPageRotateAngle.RotateAngle90.value)
page.Rotation = PdfPageRotateAngle(rotation)
# 保存文件
pdf.SaveToFile("旋轉(zhuǎn)PDF頁(yè)面.pdf")
pdf.Close()
在以上示例中,我們先使用 PdfPageBase.Rotation.value 屬性獲取頁(yè)面的原始旋轉(zhuǎn)角度,然后指定順時(shí)針90度的旋轉(zhuǎn)角度,再通過(guò)PdfPageBase.Rotation 屬性來(lái)旋轉(zhuǎn)PDF頁(yè)面。
效果圖:

使用Python調(diào)整PDF頁(yè)面順序
按照文檔內(nèi)容的邏輯性、相關(guān)聯(lián)性來(lái)重新排列PDF頁(yè)面可以增強(qiáng)PDF文檔可讀性。在Python中,我們使用Spire.PDF for Python庫(kù)提供的 PdfDocument.Pages.ReArrange(orderArray: List[int]) 方法可以輕松調(diào)整PDF頁(yè)面順序。
其中參數(shù)orderArray是一個(gè)整數(shù)列表,用于指定新的頁(yè)面順序。例如,假設(shè)我們有一個(gè)包含 4 頁(yè)的 PDF 文檔,頁(yè)碼分別為 1、2、3、4。如果我們想重新排列這些頁(yè)面,使得頁(yè)面順序變?yōu)?3、1、4、2,那么 orderArray 應(yīng)該是 [2, 0, 3, 1](PDF頁(yè)面索引從 0 開(kāi)始)。
以下為示例代碼:
from spire.pdf.common import * from spire.pdf import * inputFile = "測(cè)試文檔.pdf" outputFile = "重排PDF頁(yè)面順序.pdf" # 創(chuàng)建PdfDocument對(duì)象 pdf = PdfDocument() # 加載PDF文件 pdf.LoadFromFile(inputFile) # 調(diào)整PDF頁(yè)面順序 pdf.Pages.ReArrange([1, 0, 2]) # 保存文件 pdf.SaveToFile(outputFile, FileFormat.PDF) pdf.Close()
效果圖:

到此這篇關(guān)于使用Python實(shí)現(xiàn)PDF頁(yè)面設(shè)置操作的文章就介紹到這了,更多相關(guān)Python PDF頁(yè)面設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pyqt5 使用setStyleSheet設(shè)置單元格的邊框樣式操作
這篇文章主要介紹了pyqt5 使用setStyleSheet設(shè)置單元格的邊框樣式操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
python神經(jīng)網(wǎng)絡(luò)pytorch中BN運(yùn)算操作自實(shí)現(xiàn)
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)pytorch中BN運(yùn)算操作自實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python在同步方法中執(zhí)行協(xié)程方法的實(shí)現(xiàn)
Python同步方法無(wú)法直接執(zhí)行協(xié)程,因其返回協(xié)程對(duì)象需事件循環(huán)調(diào)度,五種解決方案涵蓋不同場(chǎng)景:asyncio.run()適用于腳本,loop.run()需顯式控制,nest_asyncio解決嵌套問(wèn)題但不推薦生產(chǎn),線程安全方法用于框架內(nèi)任務(wù),線程池運(yùn)行協(xié)程為通用推薦方案2025-09-09
Python實(shí)現(xiàn)將多張圖片合成視頻并加入背景音樂(lè)
這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)將多張圖片合成mp4視頻,并加入背景音樂(lè)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04
Python?pandas修剪函數(shù)clip使用實(shí)例探究
在數(shù)據(jù)處理和分析中,經(jīng)常面臨著需要限制數(shù)據(jù)范圍的情況,而pandas庫(kù)提供的clip函數(shù)就是一個(gè)強(qiáng)大的工具,可以方便地對(duì)數(shù)據(jù)進(jìn)行修剪,本文將深入介紹clip函數(shù)的基本用法、常見(jiàn)參數(shù)以及實(shí)際場(chǎng)景中的應(yīng)用,以幫助大家充分理解并靈活運(yùn)用這一功能2024-01-01
對(duì)PyQt5的輸入對(duì)話框使用(QInputDialog)詳解
今天小編就為大家分享一篇對(duì)PyQt5的輸入對(duì)話框使用(QInputDialog)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06

