PDF的页边距是指页面的主内容区域和页面边缘之间的距离。它和Word的页边距不同,PDF文档中的页边距很难更改。因为Adobe没有提供直接的方法用于操作页边距。但是我们可以通过缩放页面内容,从而达到改变页边距的目的。本文将为您介绍如何在不改变页面大小的情况下,使用Spire.PDF调整页边距。
C#
//创建PDFDocument实例并加载文档
PdfDocument testDoc = new PdfDocument();
testDoc.LoadFromFile(@"F:\201711工作\Demo-PDF\Spire.Pdf\Demos\Data\AddImageStamp.pdf");
//创建一个新文档实例
PdfDocument newDoc = new PdfDocument();
//定义新文档要增加的页边距
float top = 50;
float bottom = 50;
float left = 50;
float right = 50;
foreach (PdfPageBase page in testDoc.Pages)
{
//给新文档添加新页面,设置页面大小与源文档相同
PdfPageBase newPage = newDoc.Pages.Add(page.Size, new PdfMargins(0));
//设置新文档内容的缩放比例
newPage.Canvas.ScaleTransform((page.ActualSize.Width - left - right)/page.ActualSize.Width ,
(page.ActualSize.Height - top - bottom)/page.ActualSize.Height);
//以模板的形式将源文档画到新文档
newPage.Canvas.DrawTemplate(page.CreateTemplate(), new PointF(left, top));
}
//保存并打开结果文档
newDoc.SaveToFile(@"result.pdf", FileFormat.PDF);
System.Diagnostics.Process.Start(@"result.pdf");
VB.NET
'创建PDFDocument实例并加载文档
Dim testDoc As New PdfDocument()
testDoc.LoadFromFile("F:\201711工作\Demo-PDF\Spire.Pdf\Demos\Data\AddImageStamp.pdf")
'创建一个新文档实例
Dim newDoc As New PdfDocument()
'定义新文档要增加的页边距
Dim top As Single = 50
Dim bottom As Single = 50
Dim left As Single = 50
Dim right As Single = 50
For Each page As PdfPageBase In testDoc.Pages
'给新文档添加新页面,设置页面大小与源文档相同
Dim newPage As PdfPageBase = newDoc.Pages.Add(page.Size, New PdfMargins(0))
'设置新文档内容的缩放比例
newPage.Canvas.ScaleTransform((page.ActualSize.Width - left - right) / page.ActualSize.Width, (page.ActualSize.Height - top - bottom) / page.ActualSize.Height)
'以模板的形式将源文档画到新文档
newPage.Canvas.DrawTemplate(page.CreateTemplate(), New PointF(left, top))
Next
'保存并打开结果文档
newDoc.SaveToFile("result.pdf", FileFormat.PDF)
System.Diagnostics.Process.Start("result.pdf")
源文档:
结果文档: