詳解如何通過C#/VB.NET調(diào)整PDF文檔頁邊距
PDF邊距是頁面主要內(nèi)容區(qū)域和頁面邊緣之間的距離。與Word頁邊距不同,PDF文檔的頁邊距很難更改。因為Adobe沒有提供操作頁邊距的直接方法。但是,您可以通過縮放頁面內(nèi)容來改變頁邊距。本文將介紹如何在不更改頁面大小的情況下使用C#/VB.NET 代碼調(diào)整PDF文檔的頁邊距。
- 增加PDF文檔的頁邊距
- 縮短PDF文檔的頁邊距
增加PDF文檔的頁邊距
擴大PDF文檔邊距的方法是新建一個頁面尺寸更大的PDF,然后在大頁面的合適位置繪制源頁面。以下是增加 PDF 文檔邊距的步驟。
- 初始化PdfDocument對象。
- 創(chuàng)建另一個PdfDocument對象,該對象用于創(chuàng)建頁面尺寸更大的新PDF文檔。
- 設置邊距的增加值。
- 計算新PDF文檔的頁面大小。
- 循環(huán)遍歷原始文檔中的頁面,并使用PdfPageBase.CreateTemplate() 方法基于特定頁面創(chuàng)建模板。
- 使用PdfDocument.Pages.Add() 方法將頁面添加到新的PDF文檔中。
- 使用PdfTemplate.Draw() 方法在頁面上的坐標(0,0)處繪制模板。
- 使用PdfDocument.SaveToFile()方法將新的PDF文檔保存到文件中。
完整代碼
C#
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace IncreaseMargins { class Program { static void Main(string[] args) { //加載原始PDF文檔 PdfDocument originalPdf = new PdfDocument("極晝極夜是怎么形成的.pdf"); //獲取第一頁 PdfPageBase firstPage = originalPdf.Pages[0]; //創(chuàng)建新的PdfDocument對象 PdfDocument newPdf = new PdfDocument(); //設置邊距的增加值 PdfMargins margins = newPdf.PageSettings.Margins; margins.Top = 40; margins.Bottom = 40; margins.Left = 40; margins.Right = 40; //計算新頁面大小 SizeF sizeF = new SizeF(firstPage.Size.Width + margins.Left + margins.Right, firstPage.Size.Height + margins.Top + margins.Bottom); //循環(huán)遍歷原始文檔中的頁面 for (int i = 0; i < originalPdf.Pages.Count; i++) { //基于特定頁面創(chuàng)建模板 PdfTemplate pdfTemplate = originalPdf.Pages[i].CreateTemplate(); //將頁面添加到新的PDF PdfPageBase page = newPdf.Pages.Add(sizeF); //在頁面上繪制模板 pdfTemplate.Draw(page, 0, 0); } //保存新文檔 newPdf.SaveToFile("增加頁邊距.pdf", FileFormat.PDF); } } }
VB.NET
Imports Spire.Pdf Imports Spire.Pdf.Graphics Imports System.Drawing Namespace IncreaseMargins Friend Class Program Private Shared Sub Main(ByVal args As String()) '加載原始PDF文檔 Dim originalPdf As PdfDocument = New PdfDocument("極晝極夜是怎么形成的.pdf") '獲取第一頁 Dim firstPage As PdfPageBase = originalPdf.Pages(0) '創(chuàng)建新的PdfDocument對象 Dim newPdf As PdfDocument = New PdfDocument() '設置邊距的增加值 Dim margins As PdfMargins = newPdf.PageSettings.Margins margins.Top = 40 margins.Bottom = 40 margins.Left = 40 margins.Right = 40 '計算新頁面大小 Dim sizeF As SizeF = New SizeF(firstPage.Size.Width + margins.Left + margins.Right, firstPage.Size.Height + margins.Top + margins.Bottom) '循環(huán)遍歷原始文檔中的頁面 For i As Integer = 0 To originalPdf.Pages.Count - 1 '基于特定頁面創(chuàng)建模板 Dim pdfTemplate As PdfTemplate = originalPdf.Pages(i).CreateTemplate() '將頁面添加到新的PDF Dim page As PdfPageBase = newPdf.Pages.Add(sizeF) '在頁面上繪制模板 pdfTemplate.Draw(page, 0, 0) Next '保存新文檔 newPdf.SaveToFile("增加頁邊距.pdf", FileFormat.PDF) End Sub End Class End Namespace
效果圖
縮小PDF文檔的頁邊距
縮小PDF 邊距的方法是新建一個頁面尺寸較小的PDF,然后在指定坐標的小頁面上繪制源頁面。以下是使用 Spire.PDF for .NET 縮小 PDF 文檔邊距的步驟。
- 在初始化PdfDocument對象時加載原始PDF文檔。
- 創(chuàng)建另一個PdfDocument對象,該對象用于創(chuàng)建頁面尺寸較小的新PDF文檔。
- 設置邊距的減少值。
- 計算新PDF文檔的頁面大小。
- 循環(huán)遍歷原始文檔中的頁面,并使用PdfPageBase.CreateTemplate() 方法基于特定頁面創(chuàng)建模板。
- 使用PdfDocument.Pages.Add() 方法將頁面添加到新的PDF文檔中。
- 使用PdfTemplate.Draw() 方法在頁面上的指定坐標處繪制模板。
- 使用PdfDocument.SaveToFile() 方法將新的PDF文檔保存到文件中。
完整代碼
C#
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace DecreaseMargins { class Program { static void Main(string[] args) { //加載原始PDF文檔 PdfDocument originalPdf = new PdfDocument("極晝極夜是怎么形成的.pdf"); //獲取第一頁 PdfPageBase firstPage = originalPdf.Pages[0]; //創(chuàng)建新的PdfDocument對象 PdfDocument newPdf = new PdfDocument(); //設置邊距的減少值 float left = -20; float right = -20; float top = -20; float bottom = -20; //計算新頁面大小 SizeF sizeF = new SizeF(firstPage.Size.Width + left + right, firstPage.Size.Height + top + bottom); //循環(huán)遍歷原始文檔中的頁面 for (int i = 0; i < originalPdf.Pages.Count; i++) { //基于特定頁面創(chuàng)建模板 PdfTemplate pdfTemplate = originalPdf.Pages[i].CreateTemplate(); //將頁面添加到新的PDF PdfPageBase page = newPdf.Pages.Add(sizeF, new PdfMargins(0)); //在頁面上繪制模板 pdfTemplate.Draw(page, left, top); } //保存新文檔 newPdf.SaveToFile("縮小頁邊距.pdf", FileFormat.PDF); } } }
VB.NET
Imports Spire.Pdf Imports Spire.Pdf.Graphics Imports System.Drawing Namespace DecreaseMargins Friend Class Program Private Shared Sub Main(ByVal args As String()) '加載原始PDF文檔 Dim originalPdf As PdfDocument = New PdfDocument("極晝極夜是怎么形成的.pdf") '獲取第一頁 Dim firstPage As PdfPageBase = originalPdf.Pages(0) '創(chuàng)建新的PdfDocument對象 Dim newPdf As PdfDocument = New PdfDocument() '設置邊距的減少值 Dim left As Single = -20 Dim right As Single = -20 Dim top As Single = -20 Dim bottom As Single = -20 '計算新頁面大小 Dim sizeF As SizeF = New SizeF(firstPage.Size.Width + left + right, firstPage.Size.Height + top + bottom) '循環(huán)遍歷原始文檔中的頁面 For i As Integer = 0 To originalPdf.Pages.Count - 1 '基于特定頁面創(chuàng)建模板 Dim pdfTemplate As PdfTemplate = originalPdf.Pages(i).CreateTemplate() '將頁面添加到新的PDF Dim page As PdfPageBase = newPdf.Pages.Add(sizeF, New PdfMargins(0)) '在頁面上繪制模板 pdfTemplate.Draw(page, left, top) Next '保存新文檔 newPdf.SaveToFile("縮小頁邊距.pdf", FileFormat.PDF) End Sub End Class End Namespace
到此這篇關于詳解如何通過C#/VB.NET調(diào)整PDF文檔頁邊距的文章就介紹到這了,更多相關C#調(diào)整PDF頁邊距內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C#?使用?Filestream?修改大文件指定位置數(shù)據(jù)
這篇文章主要介紹了C#?使用?Filestream修改大文件指定位置數(shù)據(jù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09C#實現(xiàn)基于XML配置MenuStrip菜單的方法
這篇文章主要介紹了C#實現(xiàn)基于XML配置MenuStrip菜單的方法,涉及C#使用XML配置MenuStrip菜單的原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08C#使用三層架構(gòu)開發(fā)Winform的詳細案例
這篇文章介紹了C#使用三層架構(gòu)開發(fā)Winform的詳細案例,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04