Spire.PDF for .NET【页面设置】演示:旋放大 PDF 边距而不改变页面大小

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.Drawing

Namespace 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 = 50

For 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))
Next

destDoc.SaveToFile("result.pdf", FileFormat.PDF)
End Sub
End Class
End Namespace
相关推荐
界面开发小八哥5 小时前
界面控件DevExpress WinForms v25.1新功能预览 - 功能区组件全新升级
人工智能·.net·界面控件·winform·devexpress
Kookoos6 小时前
ABP vNext + EF Core 实战性能调优指南
数据库·后端·c#·.net·.netcore
winfredzhang6 小时前
使用Python 打造多格式文件预览工具 — 图、PDF、Word、Excel 一站式查看
python·pdf·word·excel·照片·查看,zip,复制
FuckPatience6 小时前
关于C#项目中 服务层使用接口的问题
java·开发语言·c#
CodeCraft Studio7 小时前
国产Excel处理控件Spire.XLS系列教程:C# 将Excel文件转换为Markdown格式
c#·excel
ᥬ 小月亮8 小时前
Uniapp编写微信小程序,使用canvas进行绘图
微信小程序·uni-app·c#
钢铁男儿10 小时前
C# 方法(值参数和引用参数)
java·前端·c#
一个会的不多的人11 小时前
C# NX二次开发:宏录制实战讲解(第一讲)
开发语言·c#
Scholar61812 小时前
序列化和反序列化
c#
罗迪尼亚的熔岩12 小时前
C# 的异步任务中, 如何暂停, 继续,停止任务
开发语言·c#