Python調(diào)整PDF文檔頁邊距的方法小結
引言
PDF 文檔中的邊距是指環(huán)繞每頁內(nèi)容的空白區(qū)域,充當文本或圖像與頁面邊緣之間的緩沖區(qū)。在需要進行調(diào)整版式布局、加入批注或注解,以及準備文檔打印或演示時,增加或減少 PDF 文檔的頁邊距,能夠得到更適合的頁面空白區(qū)域,幫助用戶更好地進行這些操作。
本文將介紹如何使用 Spire.PDF for Python 修改 PDF 文檔的頁邊距,為不同使用場景定制合適的文檔布局。
安裝 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通過以下 pip 命令將它們輕松安裝到 Windows 中。
pip install Spire.PDF
如果您不清楚如何安裝,請參考:詳解如何在VS Code中安裝Spire.PDF for Python_python_腳本之家 (jb51.net)
用 Python 增加 PDF 文檔頁邊距
利用 Spire.PDF for Python,開發(fā)者可以通過創(chuàng)建一個新的 PDF 文檔,并使該文檔的頁面大小等于原始文檔的頁面大小加上增加的頁邊距值,然后將原文檔的每一頁復制并粘貼(繪制)到新文檔中,來實現(xiàn)增加 PDF 文檔頁邊距的操作。
以下是使用 Python 增加 PDF 文檔頁邊距的詳細操作步驟:
- 創(chuàng)建一個 PdfDocument 類的實例,并使用 PdfDocument.LoadFromFile() 方法加載原 PDF 文檔。
- 創(chuàng)建另一個 PdfDocument 類的實例,從而創(chuàng)建一個新的 PDF 文檔。
- 指定頂部、底部、左邊和右邊頁邊距的期望增加值。
- 通過將頁邊距增加值添加到原始頁面尺寸來計算新的頁面尺寸。
- 使用 PdfPageBase.CreateTemplate() 方法基于原始 PDF 頁面創(chuàng)建一個模板。
- 使用 PdfDocument.Pages.Add() 方法向新文檔添加一個頁面,頁面大小為前面計算出的頁面大小。
- 使用 PdfTemplate.Draw() 方法將模板繪制到添加的頁面上。
- 對原始 PDF 文檔中的每一頁重復步驟 5-7。
- 使用 PdfDocument.SaveToFile() 方法保存新建的 PDF 文檔。
from spire.pdf.common import * from spire.pdf import * # 創(chuàng)建一個PdfDocument對象 originalPdf = PdfDocument() # 加載一個PDF文件 originalPdf.LoadFromFile("示例.pdf") # 獲取第一頁 firstPage = originalPdf.Pages[0] # 創(chuàng)建另一個PdfDocument對象以創(chuàng)建新文檔 newPdf = PdfDocument() # 設置邊距的增加值 marginsToAdd = newPdf.PageSettings.Margins marginsToAdd.Top = 40 marginsToAdd.Bottom = 40 marginsToAdd.Left = 40 marginsToAdd.Right = 40 # 計算新頁面的大小 sizeF = SizeF(firstPage.Size.Width + marginsToAdd.Left + marginsToAdd.Right, firstPage.Size.Height + marginsToAdd.Top + marginsToAdd.Bottom) # 遍歷原始文檔中的頁面 for i in range(originalPdf.Pages.Count): # 基于特定頁面創(chuàng)建一個模板 pdfTemplate = originalPdf.Pages[i].CreateTemplate() # 在新的PDF中添加一個頁面 page = newPdf.Pages.Add(sizeF) # 在頁面上繪制模板 pdfTemplate.Draw(page, 0.0, 0.0) # 保存新文檔 newPdf.SaveToFile("output/增加PDF頁邊距.pdf", FileFormat.PDF) # 釋放資源 originalPdf.Dispose() newPdf.Dispose()
用 Python 減少 PDF 文檔頁邊距
同樣,開發(fā)者可以通過創(chuàng)建一個新的 PDF 文檔,并使該文檔的頁面大小等于原始文檔的頁面大小減去要減少的頁邊距值,然后將原始文檔的每一頁復制并粘貼(繪制)到新文檔頁面的相應位置,來實現(xiàn)減少 PDF 文檔頁邊距的操作。
以下是使用 Python 減少 PDF 文檔頁邊距的詳細操作步驟:
- 創(chuàng)建一個 PdfDocument 類的實例,并使用 PdfDocument.LoadFromFile() 方法加載原 PDF 文檔。
- 創(chuàng)建另一個 PdfDocument 類的實例,從而創(chuàng)建一個新的 PDF 文檔。
- 指定頂部、底部、左邊和右邊頁邊距的期望減少值。
- 通過從原始頁面大小中減去要減少的頁邊距值來計算新的頁面大小。
- 使用 PdfPageBase.CreateTemplate() 方法基于原始 PDF 頁面創(chuàng)建一個模板。
- 使用 PdfDocument.Pages.Add() 方法向新文檔添加一個頁面,其頁面大小為計算出的頁面大小。
- 使用 PdfTemplate.Draw() 方法將模板繪制到添加的頁面上。
- 對原 PDF 文檔中的每一頁重復步驟 5-7。
- 使用 PdfDocument.SaveToFile() 方法保存新 PDF 文檔。
from spire.pdf.common import * from spire.pdf import * # 創(chuàng)建一個PdfDocument對象 originalPdf = PdfDocument() # 加載一個PDF文件 originalPdf.LoadFromFile("示例.pdf") # 獲取第一頁 firstPage = originalPdf.Pages[0] # 創(chuàng)建另一個PdfDocument對象 newPdf = PdfDocument() # 設置邊距的減少值 topToReduce = 20.0 bottomToReduce = 20.0 leftToReduce = 20.0 rightToReduce = 20.0 # 計算新頁面的大小 sizeF = SizeF(firstPage.Size.Width - leftToReduce - rightToReduce, firstPage.Size.Height - topToReduce - bottomToReduce) # 遍歷原始文檔中的頁面 for i in range(originalPdf.Pages.Count): # 基于特定頁面創(chuàng)建一個模板 pdfTemplate = originalPdf.Pages[i].CreateTemplate() # 在新的PDF中添加一個頁面 page = newPdf.Pages.Add(sizeF, PdfMargins(0.0)) # 在頁面上繪制模板 pdfTemplate.Draw(page, -leftToReduce, -topToReduce) # 保存新文檔 newPdf.SaveToFile("Output/減少PDF頁邊距.pdf", FileFormat.PDF) # 釋放資源 originalPdf.Dispose() newPdf.Dispose()
以上就是Python調(diào)整PDF文檔頁邊距的方法小結的詳細內(nèi)容,更多關于Python PDF頁邊距的資料請關注腳本之家其它相關文章!
相關文章
python3.6環(huán)境下安裝freetype庫和基本使用方法(推薦)
這篇文章主要介紹了python3.6環(huán)境下如何安裝freetype庫和基本使用方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05Python實現(xiàn)的統(tǒng)計文章單詞次數(shù)功能示例
這篇文章主要介紹了Python實現(xiàn)的統(tǒng)計文章單詞次數(shù)功能,結合實例形式分析了Python針對字符串序列的遍歷、計算等相關操作技巧,需要的朋友可以參考下2019-07-07python常用的各種排序算法原理與實現(xiàn)方法小結
這篇文章主要介紹了python常用的各種排序算法原理與實現(xiàn)方法,結合實例形式總結分析了冒泡排序、插入排序、選擇排序、快速排序等排序算法的相關原理與實現(xiàn)方法,需要的朋友可以參考下2023-04-04Python使用socket_TCP實現(xiàn)小文件下載功能
這篇文章主要介紹了Python使用socket_TCP實現(xiàn)小文件下載功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10