您当前的位置:首页 >> 业界 >  >> 
环球热门:如何通过C#/VB.NET 代码调整PDF文档的页边距
来源: 博客园      时间:2023-04-27 11:40:10


(资料图)

PDF边距是页面主要内容区域和页面边缘之间的距离。与Word页边距不同,PDF文档的页边距很难更改。因为Adobe没有提供操作页边距的直接方法。但是,您可以通过缩放页面内容来改变页边距。本文将介绍如何在不更改页面大小的情况下使用C#/VB.NET 代码调整PDF文档的页边距。

增加PDF文档的页边距缩短PDF文档的页边距增加PDF文档的页边距扩大PDF文档边距的方法是新建一个页面尺寸更大的PDF,然后在大页面的合适位置绘制源页面。以下是增加 PDF 文档边距的步骤。初始化PdfDocument对象。创建另一个PdfDocument对象,该对象用于创建页面尺寸更大的新PDF文档。设置边距的增加值。计算新PDF文档的页面大小。循环遍历原始文档中的页面,并使用PdfPageBase.CreateTemplate() 方法基于特定页面创建模板。使用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];            //创建新的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);            //循环遍历原始文档中的页面            for (int i = 0; i < originalPdf.Pages.Count; i++)            {                //基于特定页面创建模板                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.PdfImports Spire.Pdf.GraphicsImports System.DrawingNamespace 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)            "创建新的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)            "循环遍历原始文档中的页面            For i As Integer = 0 To originalPdf.Pages.Count - 1                "基于特定页面创建模板                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 ClassEnd Namespace
效果图缩小PDF文档的页边距

缩小PDF 边距的方法是新建一个页面尺寸较小的PDF,然后在指定坐标的小页面上绘制源页面。以下是使用 Spire.PDF for .NET 缩小 PDF 文档边距的步骤。

在初始化PdfDocument对象时加载原始PDF文档。创建另一个PdfDocument对象,该对象用于创建页面尺寸较小的新PDF文档。设置边距的减少值。计算新PDF文档的页面大小。循环遍历原始文档中的页面,并使用PdfPageBase.CreateTemplate() 方法基于特定页面创建模板。使用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];            //创建新的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);            //循环遍历原始文档中的页面            for (int i = 0; i < originalPdf.Pages.Count; i++)            {                //基于特定页面创建模板                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.PdfImports Spire.Pdf.GraphicsImports System.DrawingNamespace 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)            "创建新的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)            "循环遍历原始文档中的页面            For i As Integer = 0 To originalPdf.Pages.Count - 1                "基于特定页面创建模板                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 ClassEnd Namespace
效果图

—本文完—

              
标签:

X 关闭

X 关闭