翼度科技»论坛 编程开发 .net 查看内容

如何通过C#/VB.NET 代码调整PDF文档的页边距

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
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#
  1. using Spire.Pdf;
  2. using Spire.Pdf.Graphics;
  3. using System.Drawing;
  4. namespace IncreaseMargins
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             //加载原始PDF文档
  11.             PdfDocument originalPdf = new PdfDocument("极昼极夜是怎么形成的.pdf");
  12.             //获取第一页
  13.             PdfPageBase firstPage = originalPdf.Pages[0];
  14.             //创建新的PdfDocument对象
  15.             PdfDocument newPdf = new PdfDocument();
  16.             //设置边距的增加值
  17.             PdfMargins margins = newPdf.PageSettings.Margins;
  18.             margins.Top = 40;
  19.             margins.Bottom = 40;
  20.             margins.Left = 40;
  21.             margins.Right = 40;
  22.             //计算新页面大小
  23.             SizeF sizeF = new SizeF(firstPage.Size.Width + margins.Left + margins.Right, firstPage.Size.Height + margins.Top + margins.Bottom);
  24.             //循环遍历原始文档中的页面
  25.             for (int i = 0; i < originalPdf.Pages.Count; i++)
  26.             {
  27.                 //基于特定页面创建模板
  28.                 PdfTemplate pdfTemplate = originalPdf.Pages[i].CreateTemplate();
  29.                 //将页面添加到新的PDF
  30.                 PdfPageBase page = newPdf.Pages.Add(sizeF);
  31.                 //在页面上绘制模板
  32.                 pdfTemplate.Draw(page, 0, 0);
  33.             }
  34.             //保存新文档
  35.             newPdf.SaveToFile("增加页边距.pdf", FileFormat.PDF);
  36.         }
  37.     }
  38. }
复制代码
VB.NET
  1. Imports Spire.Pdf
  2. Imports Spire.Pdf.Graphics
  3. Imports System.Drawing
  4. Namespace IncreaseMargins
  5.     Friend Class Program
  6.         Private Shared Sub Main(ByVal args As String())
  7.             '加载原始PDF文档
  8.             Dim originalPdf As PdfDocument = New PdfDocument("极昼极夜是怎么形成的.pdf")
  9.             '获取第一页
  10.             Dim firstPage As PdfPageBase = originalPdf.Pages(0)
  11.             '创建新的PdfDocument对象
  12.             Dim newPdf As PdfDocument = New PdfDocument()
  13.             '设置边距的增加值
  14.             Dim margins As PdfMargins = newPdf.PageSettings.Margins
  15.             margins.Top = 40
  16.             margins.Bottom = 40
  17.             margins.Left = 40
  18.             margins.Right = 40
  19.             '计算新页面大小
  20.             Dim sizeF As SizeF = New SizeF(firstPage.Size.Width + margins.Left + margins.Right, firstPage.Size.Height + margins.Top + margins.Bottom)
  21.             '循环遍历原始文档中的页面
  22.             For i As Integer = 0 To originalPdf.Pages.Count - 1
  23.                 '基于特定页面创建模板
  24.                 Dim pdfTemplate As PdfTemplate = originalPdf.Pages(i).CreateTemplate()
  25.                 '将页面添加到新的PDF
  26.                 Dim page As PdfPageBase = newPdf.Pages.Add(sizeF)
  27.                 '在页面上绘制模板
  28.                 pdfTemplate.Draw(page, 0, 0)
  29.             Next
  30.             '保存新文档
  31.             newPdf.SaveToFile("增加页边距.pdf", FileFormat.PDF)
  32.         End Sub
  33.     End Class
  34. 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#
  1. using Spire.Pdf;
  2. using Spire.Pdf.Graphics;
  3. using System.Drawing;
  4. namespace DecreaseMargins
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             //加载原始PDF文档
  11.             PdfDocument originalPdf = new PdfDocument("极昼极夜是怎么形成的.pdf");
  12.             //获取第一页
  13.             PdfPageBase firstPage = originalPdf.Pages[0];
  14.             //创建新的PdfDocument对象
  15.             PdfDocument newPdf = new PdfDocument();
  16.             //设置边距的减少值
  17.             float left = -20;
  18.             float right = -20;
  19.             float top = -20;
  20.             float bottom = -20;
  21.             //计算新页面大小
  22.             SizeF sizeF = new SizeF(firstPage.Size.Width + left + right, firstPage.Size.Height + top + bottom);
  23.             //循环遍历原始文档中的页面
  24.             for (int i = 0; i < originalPdf.Pages.Count; i++)
  25.             {
  26.                 //基于特定页面创建模板
  27.                 PdfTemplate pdfTemplate = originalPdf.Pages[i].CreateTemplate();
  28.                 //将页面添加到新的PDF
  29.                 PdfPageBase page = newPdf.Pages.Add(sizeF, new PdfMargins(0));
  30.                 //在页面上绘制模板
  31.                 pdfTemplate.Draw(page, left, top);
  32.             }
  33.             //保存新文档
  34.             newPdf.SaveToFile("缩小页边距.pdf", FileFormat.PDF);
  35.         }
  36.     }
  37. }
复制代码
VB.NET
  1. Imports Spire.Pdf
  2. Imports Spire.Pdf.Graphics
  3. Imports System.Drawing
  4. Namespace DecreaseMargins
  5.     Friend Class Program
  6.         Private Shared Sub Main(ByVal args As String())
  7.             '加载原始PDF文档
  8.             Dim originalPdf As PdfDocument = New PdfDocument("极昼极夜是怎么形成的.pdf")
  9.             '获取第一页
  10.             Dim firstPage As PdfPageBase = originalPdf.Pages(0)
  11.             '创建新的PdfDocument对象
  12.             Dim newPdf As PdfDocument = New PdfDocument()
  13.             '设置边距的减少值
  14.             Dim left As Single = -20
  15.             Dim right As Single = -20
  16.             Dim top As Single = -20
  17.             Dim bottom As Single = -20
  18.             '计算新页面大小
  19.             Dim sizeF As SizeF = New SizeF(firstPage.Size.Width + left + right, firstPage.Size.Height + top + bottom)
  20.             '循环遍历原始文档中的页面
  21.             For i As Integer = 0 To originalPdf.Pages.Count - 1
  22.                 '基于特定页面创建模板
  23.                 Dim pdfTemplate As PdfTemplate = originalPdf.Pages(i).CreateTemplate()
  24.                 '将页面添加到新的PDF
  25.                 Dim page As PdfPageBase = newPdf.Pages.Add(sizeF, New PdfMargins(0))
  26.                 '在页面上绘制模板
  27.                 pdfTemplate.Draw(page, left, top)
  28.             Next
  29.             '保存新文档
  30.             newPdf.SaveToFile("缩小页边距.pdf", FileFormat.PDF)
  31.         End Sub
  32.     End Class
  33. End Namespace
复制代码
效果图
  1. <img src="https://img2023.cnblogs.com/blog/2859233/202304/2859233-20230427103514988-1015828610.jpg" alt="">
复制代码
—本文完—
  1.  
复制代码
来源:https://www.cnblogs.com/Carina-baby/archive/2023/04/27/17358256.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具