如何通过C#/VB.NET 代码调整PDF文档的页边距
|
PDF边距是页面主要内容区域和页面边缘之间的距离。与Word页边距不同,PDF文档的页边距很难更改。因为Adobe没有提供操作页边距的直接方法。但是,您可以通过缩放页面内容来改变页边距。本文将介绍如何在不更改页面大小的情况下使用C#/VB.NET 代码调整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.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")
- '获取第一页
- 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 Class
- End 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.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")
- '获取第一页
- 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 Class
- End Namespace
复制代码 效果图
- <img src="https://img2023.cnblogs.com/blog/2859233/202304/2859233-20230427103514988-1015828610.jpg" alt="">
复制代码 —本文完—来源:https://www.cnblogs.com/Carina-baby/archive/2023/04/27/17358256.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2023-4-27 12:48:26
举报
回复
分享
|
|
|
|