ToB企服应用市场:ToB评测及商务社交产业平台

标题: 如何通过C#/VB.NET 代码调整PDF文档的页边距 [打印本页]

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

扩大PDF文档边距的方法是新建一个页面尺寸更大的PDF,然后在大页面的合适位置绘制源页面。以下是增加 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 文档边距的步骤。
完整代码

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.  
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4