PDF 页边距是正文内容和页面边缘之间的空白。与 Word 不同,PDF 文档中的页边距不易修改,因为 Adobe 不提供任何功能供用户自由操作页边距。但是,您可以更改页面缩放比例(放大/压缩内容)或裁剪页面以获得合适的页边距。在本文中,您将学习如何通过压缩内容来扩大 PDF 页边距。
Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。
E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for.net下载https://www.evget.com/product/3377/download
步骤 1:创建一个 PdfDocument 对象来加载原始 PDF 文档。
PdfDocument origDoc = new PdfDocument(); origDoc.LoadFromFile("sample.pdf");
第 2 步:创建另一个 PdfDocument 对象。
PdfDocument destDoc = new PdfDocument();
步骤 3:设置您想要添加到现有 PDF 文档边距的增量。
float top = 50; float bottom = 50; float left = 50; float right = 50;
步骤 4:将原始文档中的压缩内容传输到新的 PDF 文档。
foreach (PdfPageBase page in origDoc.Pages) { PdfPageBase newPage = destDoc.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)); }
步骤 5:保存到文件。
destDoc.SaveToFile("result.pdf", FileFormat.PDF);
原始PDF:
结果:
完整代码:
[C#]
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing;namespace ChangeMargins { class Program { static void Main(string[] args) { PdfDocument origDoc = new PdfDocument(); origDoc.LoadFromFile("sample.pdf"); PdfDocument destDoc = new PdfDocument();float top = 50; float bottom = 50; float left = 50; float right = 50;foreach (PdfPageBase page in origDoc.Pages) { PdfPageBase newPage = destDoc.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)); }destDoc.SaveToFile("result.pdf", FileFormat.PDF); } } }
[VB.NET]
Imports Spire.Pdf Imports Spire.Pdf.Graphics Imports System.DrawingNamespace ChangeMargins Class Program Private Shared Sub Main(args As String()) Dim origDoc As New PdfDocument() origDoc.LoadFromFile("sample.pdf") Dim destDoc As New PdfDocument()Dim top As Single = 50 Dim bottom As Single = 50 Dim left As Single = 50 Dim right As Single = 50For Each page As PdfPageBase In origDoc.Pages Dim newPage As PdfPageBase = destDoc.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)) NextdestDoc.SaveToFile("result.pdf", FileFormat.PDF) End Sub End Class End Namespace