Python 調整PDF頁面尺寸大小

E-iceblue發表於2024-06-11

在處理PDF檔案時,我們可能會遇到這樣的情況:原始PDF文件不符合我們的閱讀習慣,或者需要適配不同顯示裝置等。這時,我們就需要及時調整PDF文件中的頁面尺寸,以滿足不同應用場景的需求。

利用Python語言的高效性和靈活性,再結合Spire.PDF for Python 庫的強大功能,我們可以透過Python程式碼輕鬆實現對PDF頁面的批次調整。在這篇文章中,我們將介紹兩種調整PDF頁面大小的方法:

1. 將PDF頁面尺寸調整為常見標準尺寸

2. 將PDF頁面尺寸調整為自定義尺寸

首先,需要先將 Spire.PDF for Python 庫安裝到專案中。pip命令

pip install Spire.PDF

使用Python 調整PDF頁面大小的步驟

Spire.PDF for Python 庫提供的調整PDF頁面大小的方式是將原PDF文件的內容複製到指定尺寸的新的PDF文件的頁面上。主要實現步驟為:

  1. 載入原始PDF文件,然後建立一個新的PDF文件;
  2. 迴圈遍歷原始PDF文件中的每一頁;
  3. 使用方法在新的PDF文件中新增指定大小的頁面;
  4. 基於原始PDF文件中頁面的內容來建立模板;
  5. 將模板繪製到新 PDF 文件的頁面上;
  6. 儲存新PDF文件。

Spire.PDF for Python 支援A1, A2, A3, A4, B1, B2, B3, B4等標準頁面尺寸,也支援自定義頁面尺寸。下面將提供示例程式碼分別介紹:

1. 將PDF頁面尺寸調整為常見標準尺寸

from spire.pdf.common import *
from spire.pdf import *
 
# 載入原始PDF文件
originalPdf = PdfDocument()
originalPdf.LoadFromFile("報告.pdf")
 
# 建立新PDF文件
newPdf = PdfDocument()
 
# 遍歷原始PDF文件中的頁面
for i in range(originalPdf.Pages.Count):
    page = originalPdf.Pages.get_Item(i)
 
    # 在新PDF文件中新增A4大小的頁面
    newPage = newPdf.Pages.Add(PdfPageSize.A4(), PdfMargins(0.0))
 
    # 建立PdfTextLayout例項
    layout = PdfTextLayout()
 
    # 將文字佈局設定為單頁,以確保內容能夠正確適應頁面大小
    layout.Layout = PdfLayoutType.OnePage
 
    # 基於原始PDF頁面建立模板
    template = page.CreateTemplate()
 
    # 將模板繪製到新PDF文件的頁面上
    template.Draw(newPage, PointF.Empty(), layout)
 
# 儲存新PDF文件
newPdf.SaveToFile("調整PDF頁面為A4大小.pdf")
newPdf.Close()

生成檔案(A4紙規格為210mm×297mm):

2. 將PDF頁面尺寸調整為自定義尺寸

from spire.pdf.common import *
from spire.pdf import *
 
# 載入原始PDF文件
originalPdf = PdfDocument()
originalPdf.LoadFromFile("報告.pdf")
 
# 建立新PDF文件
newPdf = PdfDocument()
 
#建立PdfUnitConvertor類的物件,用於轉換不同的測量單位
unitCvtr = PdfUnitConvertor()
 
# 將自定義尺寸的單位由毫米轉換為點數(磅)
width = unitCvtr.ConvertUnits(180, PdfGraphicsUnit.Millimeter, PdfGraphicsUnit.Point)
height = unitCvtr.ConvertUnits(225, PdfGraphicsUnit.Millimeter, PdfGraphicsUnit.Point)
 
# 建立一個自定義寬度和高度的SizeF物件
size = SizeF(width, height)
 
# 遍歷原始PDF中的頁面
for i in range(originalPdf.Pages.Count):
    page = originalPdf.Pages.get_Item(i)
 
    # 在新PDF文件中新增自定義尺寸(180*225mm)的頁面
    newPage = newPdf.Pages.Add(size, PdfMargins(0.0))
 
    # 建立PdfTextLayout例項
    layout = PdfTextLayout()
 
    # 將文字佈局設定為單頁,以確保內容能夠正確適應頁面大小
    layout.Layout = PdfLayoutType.OnePage
 
    # 基於原始PDF頁面建立模板
    template = page.CreateTemplate()
 
    # 將模板繪製到新PDF文件的頁面上
    template.Draw(newPage, PointF.Empty(), layout)
 
# 儲存新PDF文件
newPdf.SaveToFile("自定義PDF頁面大小.pdf")
newPdf.Close()

生成檔案(此處自定義尺寸為180mm×225mm):


透過以上兩段示例程式碼,我們可以根據需求將PDF頁面調整為想要的尺寸。除此之外,Spire.PDF for Python庫還支援調整PDF頁邊距、紙張方向等。使用過程中遇到任何問題,都可以前往論壇交流。

相關文章