Python調(diào)整PDF頁(yè)面尺寸大小的兩種方法
前言
在處理PDF文件時(shí),我們可能會(huì)遇到這樣的情況:原始PDF文檔不符合我們的閱讀習(xí)慣,或者需要適配不同顯示設(shè)備等。這時(shí),我們就需要及時(shí)調(diào)整PDF文檔中的頁(yè)面尺寸,以滿足不同應(yīng)用場(chǎng)景的需求。
利用Python語(yǔ)言的高效性和靈活性,再結(jié)合Spire.PDF for Python 庫(kù)的強(qiáng)大功能,我們可以通過(guò)Python代碼輕松實(shí)現(xiàn)對(duì)PDF頁(yè)面的批量調(diào)整。在這篇文章中,我們將介紹兩種調(diào)整PDF頁(yè)面大小的方法
首先,需要先將Spire.PDF for Python庫(kù)安裝到項(xiàng)目中。pip命令:
pip install Spire.PDF
使用Python 調(diào)整PDF頁(yè)面大小的步驟
Spire.PDF for Python 庫(kù)提供的調(diào)整PDF頁(yè)面大小的方式是將原PDF文檔的內(nèi)容復(fù)制到指定尺寸的新的PDF文檔的頁(yè)面上。主要實(shí)現(xiàn)步驟為:
- 加載原始PDF文檔,然后創(chuàng)建一個(gè)新的PDF文檔;
- 循環(huán)遍歷原始PDF文檔中的每一頁(yè);
- 使用方法在新的PDF文檔中添加指定大小的頁(yè)面;
- 基于原始PDF文檔中頁(yè)面的內(nèi)容來(lái)創(chuàng)建模板;
- 將模板繪制到新 PDF 文檔的頁(yè)面上;
- 保存新PDF文檔。
Spire.PDF for Python 支持A1, A2, A3, A4, B1, B2, B3, B4等標(biāo)準(zhǔn)頁(yè)面尺寸,也支持自定義頁(yè)面尺寸。下面將提供示例代碼分別介紹:
1. 將PDF頁(yè)面尺寸調(diào)整為常見(jiàn)標(biāo)準(zhǔn)尺寸
from spire.pdf.common import *
from spire.pdf import *
# 加載原始PDF文檔
originalPdf = PdfDocument()
originalPdf.LoadFromFile("報(bào)告.pdf")
# 創(chuàng)建新PDF文檔
newPdf = PdfDocument()
# 遍歷原始PDF文檔中的頁(yè)面
for i in range(originalPdf.Pages.Count):
page = originalPdf.Pages.get_Item(i)
# 在新PDF文檔中添加A4大小的頁(yè)面
newPage = newPdf.Pages.Add(PdfPageSize.A4(), PdfMargins(0.0))
# 創(chuàng)建PdfTextLayout實(shí)例
layout = PdfTextLayout()
# 將文本布局設(shè)置為單頁(yè),以確保內(nèi)容能夠正確適應(yīng)頁(yè)面大小
layout.Layout = PdfLayoutType.OnePage
# 基于原始PDF頁(yè)面創(chuàng)建模板
template = page.CreateTemplate()
# 將模板繪制到新PDF文檔的頁(yè)面上
template.Draw(newPage, PointF.Empty(), layout)
# 保存新PDF文檔
newPdf.SaveToFile("調(diào)整PDF頁(yè)面為A4大小.pdf")
newPdf.Close()生成文件(A4紙規(guī)格為210mm×297mm):

2. 將PDF頁(yè)面尺寸調(diào)整為自定義尺寸
from spire.pdf.common import *
from spire.pdf import *
# 加載原始PDF文檔
originalPdf = PdfDocument()
originalPdf.LoadFromFile("報(bào)告.pdf")
# 創(chuàng)建新PDF文檔
newPdf = PdfDocument()
#創(chuàng)建PdfUnitConvertor類的對(duì)象,用于轉(zhuǎn)換不同的測(cè)量單位
unitCvtr = PdfUnitConvertor()
# 將自定義尺寸的單位由毫米轉(zhuǎn)換為點(diǎn)數(shù)(磅)
width = unitCvtr.ConvertUnits(180, PdfGraphicsUnit.Millimeter, PdfGraphicsUnit.Point)
height = unitCvtr.ConvertUnits(225, PdfGraphicsUnit.Millimeter, PdfGraphicsUnit.Point)
# 創(chuàng)建一個(gè)自定義寬度和高度的SizeF對(duì)象
size = SizeF(width, height)
# 遍歷原始PDF中的頁(yè)面
for i in range(originalPdf.Pages.Count):
page = originalPdf.Pages.get_Item(i)
# 在新PDF文檔中添加自定義尺寸(180*225mm)的頁(yè)面
newPage = newPdf.Pages.Add(size, PdfMargins(0.0))
# 創(chuàng)建PdfTextLayout實(shí)例
layout = PdfTextLayout()
# 將文本布局設(shè)置為單頁(yè),以確保內(nèi)容能夠正確適應(yīng)頁(yè)面大小
layout.Layout = PdfLayoutType.OnePage
# 基于原始PDF頁(yè)面創(chuàng)建模板
template = page.CreateTemplate()
# 將模板繪制到新PDF文檔的頁(yè)面上
template.Draw(newPage, PointF.Empty(), layout)
# 保存新PDF文檔
newPdf.SaveToFile("自定義PDF頁(yè)面大小.pdf")
newPdf.Close()生成文件(此處自定義尺寸為180mm×225mm):

通過(guò)以上兩段示例代碼,我們可以根據(jù)需求將PDF頁(yè)面調(diào)整為想要的尺寸。除此之外,Spire.PDF for Python庫(kù)還支持調(diào)整PDF頁(yè)邊距、紙張方向等。
到此這篇關(guān)于Python調(diào)整PDF頁(yè)面尺寸大小的兩種方法的文章就介紹到這了,更多相關(guān)Python調(diào)整PDF頁(yè)面大小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python微信公眾號(hào)開(kāi)發(fā)簡(jiǎn)單流程實(shí)現(xiàn)
這篇文章主要介紹了python微信公眾號(hào)開(kāi)發(fā)簡(jiǎn)單流程實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python?實(shí)現(xiàn)驅(qū)動(dòng)AI機(jī)器人
這篇文章主要介紹了Python?實(shí)現(xiàn)驅(qū)動(dòng)AI機(jī)器人,下文圍繞利用Python?實(shí)現(xiàn)驅(qū)動(dòng)AI機(jī)器人的相關(guān)資料展開(kāi)內(nèi)容,需要的小伙伴可以參考一下2022-02-02
8個(gè)實(shí)用的Python程序你知道幾個(gè)
這篇文章主要為大家詳細(xì)介紹了8個(gè)實(shí)用的Python程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助<BR>2022-02-02
使用python調(diào)用zxing庫(kù)生成二維碼圖片詳解
本篇文章主要介紹了使用python調(diào)用zxing庫(kù)生成二維碼圖片,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
python getpass實(shí)現(xiàn)密文實(shí)例詳解
這篇文章主要介紹了python getpass實(shí)現(xiàn)密文實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
python cs架構(gòu)實(shí)現(xiàn)簡(jiǎn)單文件傳輸
這篇文章主要為大家詳細(xì)介紹了python cs架構(gòu)實(shí)現(xiàn)簡(jiǎn)單文件傳輸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
解讀sqlalchemy的常用數(shù)據(jù)類型有哪些
這篇文章主要介紹了解讀sqlalchemy的常用數(shù)據(jù)類型有哪些,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03

