Python調(diào)整PDF文檔頁邊距的方法小結(jié)
引言
PDF 文檔中的邊距是指環(huán)繞每頁內(nèi)容的空白區(qū)域,充當(dāng)文本或圖像與頁面邊緣之間的緩沖區(qū)。在需要進(jìn)行調(diào)整版式布局、加入批注或注解,以及準(zhǔn)備文檔打印或演示時(shí),增加或減少 PDF 文檔的頁邊距,能夠得到更適合的頁面空白區(qū)域,幫助用戶更好地進(jìn)行這些操作。
本文將介紹如何使用 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)建一個(gè)新的 PDF 文檔,并使該文檔的頁面大小等于原始文檔的頁面大小加上增加的頁邊距值,然后將原文檔的每一頁復(fù)制并粘貼(繪制)到新文檔中,來實(shí)現(xiàn)增加 PDF 文檔頁邊距的操作。
以下是使用 Python 增加 PDF 文檔頁邊距的詳細(xì)操作步驟:
- 創(chuàng)建一個(gè) PdfDocument 類的實(shí)例,并使用 PdfDocument.LoadFromFile() 方法加載原 PDF 文檔。
- 創(chuàng)建另一個(gè) PdfDocument 類的實(shí)例,從而創(chuàng)建一個(gè)新的 PDF 文檔。
- 指定頂部、底部、左邊和右邊頁邊距的期望增加值。
- 通過將頁邊距增加值添加到原始頁面尺寸來計(jì)算新的頁面尺寸。
- 使用 PdfPageBase.CreateTemplate() 方法基于原始 PDF 頁面創(chuàng)建一個(gè)模板。
- 使用 PdfDocument.Pages.Add() 方法向新文檔添加一個(gè)頁面,頁面大小為前面計(jì)算出的頁面大小。
- 使用 PdfTemplate.Draw() 方法將模板繪制到添加的頁面上。
- 對原始 PDF 文檔中的每一頁重復(fù)步驟 5-7。
- 使用 PdfDocument.SaveToFile() 方法保存新建的 PDF 文檔。
from spire.pdf.common import * from spire.pdf import * # 創(chuàng)建一個(gè)PdfDocument對象 originalPdf = PdfDocument() # 加載一個(gè)PDF文件 originalPdf.LoadFromFile("示例.pdf") # 獲取第一頁 firstPage = originalPdf.Pages[0] # 創(chuàng)建另一個(gè)PdfDocument對象以創(chuàng)建新文檔 newPdf = PdfDocument() # 設(shè)置邊距的增加值 marginsToAdd = newPdf.PageSettings.Margins marginsToAdd.Top = 40 marginsToAdd.Bottom = 40 marginsToAdd.Left = 40 marginsToAdd.Right = 40 # 計(jì)算新頁面的大小 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)建一個(gè)模板 pdfTemplate = originalPdf.Pages[i].CreateTemplate() # 在新的PDF中添加一個(gè)頁面 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)建一個(gè)新的 PDF 文檔,并使該文檔的頁面大小等于原始文檔的頁面大小減去要減少的頁邊距值,然后將原始文檔的每一頁復(fù)制并粘貼(繪制)到新文檔頁面的相應(yīng)位置,來實(shí)現(xiàn)減少 PDF 文檔頁邊距的操作。
以下是使用 Python 減少 PDF 文檔頁邊距的詳細(xì)操作步驟:
- 創(chuàng)建一個(gè) PdfDocument 類的實(shí)例,并使用 PdfDocument.LoadFromFile() 方法加載原 PDF 文檔。
- 創(chuàng)建另一個(gè) PdfDocument 類的實(shí)例,從而創(chuàng)建一個(gè)新的 PDF 文檔。
- 指定頂部、底部、左邊和右邊頁邊距的期望減少值。
- 通過從原始頁面大小中減去要減少的頁邊距值來計(jì)算新的頁面大小。
- 使用 PdfPageBase.CreateTemplate() 方法基于原始 PDF 頁面創(chuàng)建一個(gè)模板。
- 使用 PdfDocument.Pages.Add() 方法向新文檔添加一個(gè)頁面,其頁面大小為計(jì)算出的頁面大小。
- 使用 PdfTemplate.Draw() 方法將模板繪制到添加的頁面上。
- 對原 PDF 文檔中的每一頁重復(fù)步驟 5-7。
- 使用 PdfDocument.SaveToFile() 方法保存新 PDF 文檔。
from spire.pdf.common import * from spire.pdf import * # 創(chuàng)建一個(gè)PdfDocument對象 originalPdf = PdfDocument() # 加載一個(gè)PDF文件 originalPdf.LoadFromFile("示例.pdf") # 獲取第一頁 firstPage = originalPdf.Pages[0] # 創(chuàng)建另一個(gè)PdfDocument對象 newPdf = PdfDocument() # 設(shè)置邊距的減少值 topToReduce = 20.0 bottomToReduce = 20.0 leftToReduce = 20.0 rightToReduce = 20.0 # 計(jì)算新頁面的大小 sizeF = SizeF(firstPage.Size.Width - leftToReduce - rightToReduce, firstPage.Size.Height - topToReduce - bottomToReduce) # 遍歷原始文檔中的頁面 for i in range(originalPdf.Pages.Count): # 基于特定頁面創(chuàng)建一個(gè)模板 pdfTemplate = originalPdf.Pages[i].CreateTemplate() # 在新的PDF中添加一個(gè)頁面 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文檔頁邊距的方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python PDF頁邊距的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python request post上傳文件常見要點(diǎn)
這篇文章主要介紹了Python request post上傳文件常見要點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11python3.6環(huán)境下安裝freetype庫和基本使用方法(推薦)
這篇文章主要介紹了python3.6環(huán)境下如何安裝freetype庫和基本使用方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能,結(jié)合實(shí)例形式分析了Python針對字符串序列的遍歷、計(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ì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10