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