詳解如何通過(guò)C#/VB.NET調(diào)整PDF文檔頁(yè)邊距
PDF邊距是頁(yè)面主要內(nèi)容區(qū)域和頁(yè)面邊緣之間的距離。與Word頁(yè)邊距不同,PDF文檔的頁(yè)邊距很難更改。因?yàn)锳dobe沒(méi)有提供操作頁(yè)邊距的直接方法。但是,您可以通過(guò)縮放頁(yè)面內(nèi)容來(lái)改變頁(yè)邊距。本文將介紹如何在不更改頁(yè)面大小的情況下使用C#/VB.NET 代碼調(diào)整PDF文檔的頁(yè)邊距。
- 增加PDF文檔的頁(yè)邊距
- 縮短PDF文檔的頁(yè)邊距
增加PDF文檔的頁(yè)邊距
擴(kuò)大PDF文檔邊距的方法是新建一個(gè)頁(yè)面尺寸更大的PDF,然后在大頁(yè)面的合適位置繪制源頁(yè)面。以下是增加 PDF 文檔邊距的步驟。
- 初始化PdfDocument對(duì)象。
- 創(chuàng)建另一個(gè)PdfDocument對(duì)象,該對(duì)象用于創(chuàng)建頁(yè)面尺寸更大的新PDF文檔。
- 設(shè)置邊距的增加值。
- 計(jì)算新PDF文檔的頁(yè)面大小。
- 循環(huán)遍歷原始文檔中的頁(yè)面,并使用PdfPageBase.CreateTemplate() 方法基于特定頁(yè)面創(chuàng)建模板。
- 使用PdfDocument.Pages.Add() 方法將頁(yè)面添加到新的PDF文檔中。
- 使用PdfTemplate.Draw() 方法在頁(yè)面上的坐標(biāo)(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");
//獲取第一頁(yè)
PdfPageBase firstPage = originalPdf.Pages[0];
//創(chuàng)建新的PdfDocument對(duì)象
PdfDocument newPdf = new PdfDocument();
//設(shè)置邊距的增加值
PdfMargins margins = newPdf.PageSettings.Margins;
margins.Top = 40;
margins.Bottom = 40;
margins.Left = 40;
margins.Right = 40;
//計(jì)算新頁(yè)面大小
SizeF sizeF = new SizeF(firstPage.Size.Width + margins.Left + margins.Right, firstPage.Size.Height + margins.Top + margins.Bottom);
//循環(huán)遍歷原始文檔中的頁(yè)面
for (int i = 0; i < originalPdf.Pages.Count; i++)
{
//基于特定頁(yè)面創(chuàng)建模板
PdfTemplate pdfTemplate = originalPdf.Pages[i].CreateTemplate();
//將頁(yè)面添加到新的PDF
PdfPageBase page = newPdf.Pages.Add(sizeF);
//在頁(yè)面上繪制模板
pdfTemplate.Draw(page, 0, 0);
}
//保存新文檔
newPdf.SaveToFile("增加頁(yè)邊距.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")
'獲取第一頁(yè)
Dim firstPage As PdfPageBase = originalPdf.Pages(0)
'創(chuàng)建新的PdfDocument對(duì)象
Dim newPdf As PdfDocument = New PdfDocument()
'設(shè)置邊距的增加值
Dim margins As PdfMargins = newPdf.PageSettings.Margins
margins.Top = 40
margins.Bottom = 40
margins.Left = 40
margins.Right = 40
'計(jì)算新頁(yè)面大小
Dim sizeF As SizeF = New SizeF(firstPage.Size.Width + margins.Left + margins.Right, firstPage.Size.Height + margins.Top + margins.Bottom)
'循環(huán)遍歷原始文檔中的頁(yè)面
For i As Integer = 0 To originalPdf.Pages.Count - 1
'基于特定頁(yè)面創(chuàng)建模板
Dim pdfTemplate As PdfTemplate = originalPdf.Pages(i).CreateTemplate()
'將頁(yè)面添加到新的PDF
Dim page As PdfPageBase = newPdf.Pages.Add(sizeF)
'在頁(yè)面上繪制模板
pdfTemplate.Draw(page, 0, 0)
Next
'保存新文檔
newPdf.SaveToFile("增加頁(yè)邊距.pdf", FileFormat.PDF)
End Sub
End Class
End Namespace效果圖

縮小PDF文檔的頁(yè)邊距
縮小PDF 邊距的方法是新建一個(gè)頁(yè)面尺寸較小的PDF,然后在指定坐標(biāo)的小頁(yè)面上繪制源頁(yè)面。以下是使用 Spire.PDF for .NET 縮小 PDF 文檔邊距的步驟。
- 在初始化PdfDocument對(duì)象時(shí)加載原始PDF文檔。
- 創(chuàng)建另一個(gè)PdfDocument對(duì)象,該對(duì)象用于創(chuàng)建頁(yè)面尺寸較小的新PDF文檔。
- 設(shè)置邊距的減少值。
- 計(jì)算新PDF文檔的頁(yè)面大小。
- 循環(huán)遍歷原始文檔中的頁(yè)面,并使用PdfPageBase.CreateTemplate() 方法基于特定頁(yè)面創(chuàng)建模板。
- 使用PdfDocument.Pages.Add() 方法將頁(yè)面添加到新的PDF文檔中。
- 使用PdfTemplate.Draw() 方法在頁(yè)面上的指定坐標(biāo)處繪制模板。
- 使用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");
//獲取第一頁(yè)
PdfPageBase firstPage = originalPdf.Pages[0];
//創(chuàng)建新的PdfDocument對(duì)象
PdfDocument newPdf = new PdfDocument();
//設(shè)置邊距的減少值
float left = -20;
float right = -20;
float top = -20;
float bottom = -20;
//計(jì)算新頁(yè)面大小
SizeF sizeF = new SizeF(firstPage.Size.Width + left + right, firstPage.Size.Height + top + bottom);
//循環(huán)遍歷原始文檔中的頁(yè)面
for (int i = 0; i < originalPdf.Pages.Count; i++)
{
//基于特定頁(yè)面創(chuàng)建模板
PdfTemplate pdfTemplate = originalPdf.Pages[i].CreateTemplate();
//將頁(yè)面添加到新的PDF
PdfPageBase page = newPdf.Pages.Add(sizeF, new PdfMargins(0));
//在頁(yè)面上繪制模板
pdfTemplate.Draw(page, left, top);
}
//保存新文檔
newPdf.SaveToFile("縮小頁(yè)邊距.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")
'獲取第一頁(yè)
Dim firstPage As PdfPageBase = originalPdf.Pages(0)
'創(chuàng)建新的PdfDocument對(duì)象
Dim newPdf As PdfDocument = New PdfDocument()
'設(shè)置邊距的減少值
Dim left As Single = -20
Dim right As Single = -20
Dim top As Single = -20
Dim bottom As Single = -20
'計(jì)算新頁(yè)面大小
Dim sizeF As SizeF = New SizeF(firstPage.Size.Width + left + right, firstPage.Size.Height + top + bottom)
'循環(huán)遍歷原始文檔中的頁(yè)面
For i As Integer = 0 To originalPdf.Pages.Count - 1
'基于特定頁(yè)面創(chuàng)建模板
Dim pdfTemplate As PdfTemplate = originalPdf.Pages(i).CreateTemplate()
'將頁(yè)面添加到新的PDF
Dim page As PdfPageBase = newPdf.Pages.Add(sizeF, New PdfMargins(0))
'在頁(yè)面上繪制模板
pdfTemplate.Draw(page, left, top)
Next
'保存新文檔
newPdf.SaveToFile("縮小頁(yè)邊距.pdf", FileFormat.PDF)
End Sub
End Class
End Namespace到此這篇關(guān)于詳解如何通過(guò)C#/VB.NET調(diào)整PDF文檔頁(yè)邊距的文章就介紹到這了,更多相關(guān)C#調(diào)整PDF頁(yè)邊距內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#?使用?Filestream?修改大文件指定位置數(shù)據(jù)
這篇文章主要介紹了C#?使用?Filestream修改大文件指定位置數(shù)據(jù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
C#實(shí)現(xiàn)基于XML配置MenuStrip菜單的方法
這篇文章主要介紹了C#實(shí)現(xiàn)基于XML配置MenuStrip菜單的方法,涉及C#使用XML配置MenuStrip菜單的原理與實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
C#使用三層架構(gòu)開(kāi)發(fā)Winform的詳細(xì)案例
這篇文章介紹了C#使用三層架構(gòu)開(kāi)發(fā)Winform的詳細(xì)案例,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
C#字符串如何提取數(shù)值(帶小數(shù)點(diǎn))
這篇文章主要介紹了C#字符串如何提取數(shù)值問(wèn)題(帶小數(shù)點(diǎn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05

