赞
踩
除了将PDF文档拆分为多个PDF以外,有时候我们也需要将一个PDF页面分割为2个或多个页面。这篇文章介绍如何使用C#将一个PDF页面横向和纵向地分割为2页或多页。
本文所使用PDF组件:Spire.PDF for .NET(Version 5.1.4及以上版本)
使用以下代码前,可通过以下两个地址之一下载Spire.Pdf.dll:
1. 官网下载
2. Visual Studio--》工具--》NuGet包管理器--》管理解决方案的NuGet包,在浏览中搜索Spire.PDF for .NET--》直接安装到项目
原PDF页面如下:
横向拆分
- using System.Drawing;
- using Spire.Pdf;
- using Spire.Pdf.Graphics;
-
- namespace SplitPDFPage
- {
- class Program
- {
- static void Main(string[] args)
- {
- //加载PDF文档
- PdfDocument pdf = new PdfDocument();
- pdf.LoadFromFile("Sample.pdf");
-
- //获取第一页
- PdfPageBase page = pdf.Pages[0];
-
- //创建一个新的PDF文档
- PdfDocument newPdf = new PdfDocument();
-
- //移除新建PDF文档的页边距
- newPdf.PageSettings.Margins.All = 0;
-
- //设置新建PDF文档的页面宽度等于原PDF文档第一页的页面宽度,高度等于原PDF文档第一页的页面高度的一半
- newPdf.PageSettings.Width = page.Size.Width;
- newPdf.PageSettings.Height = page.Size.Height / 2;
-
- //添加一个新页面到新建PDF文档
- PdfPageBase newPage = newPdf.Pages.Add();
-
- //页面内容写满之后自动分页
- PdfTextLayout format = new PdfTextLayout();
- format.Break = PdfLayoutBreakType.FitPage;
- format.Layout = PdfLayoutType.Paginate;
-
- //将原PDF文档的第一页的内容画到新建PDF的页面上
- page.CreateTemplate().Draw(newPage, new PointF(0, 0), format);
-
- //保存文档
- newPdf.SaveToFile("HorizontallySplit.pdf");
-
- //关闭
- newPdf.Close();
- pdf.Close();
- }
- }
- }

横向拆分为2页效果:
纵向拆分
- using System.Drawing;
- using Spire.Pdf;
- using Spire.Pdf.Graphics;
-
- namespace SplitPDFPage
- {
- class Program
- {
- static void Main(string[] args)
- {
- //加载PDF文档
- PdfDocument pdf = new PdfDocument();
- pdf.LoadFromFile("Sample.pdf");
-
- //获取第一页
- PdfPageBase page = pdf.Pages[0];
-
- //创建一个新的PDF文档
- PdfDocument newPdf = new PdfDocument();
-
- //移除新建PDF文档的页边距
- newPdf.PageSettings.Margins.All = 0;
-
- //设置新建PDF文档的页面宽度等于原PDF文档第一页的页面宽度的一半,高度等于原PDF文档第一页的页面高度
- newPdf.PageSettings.Width = page.Size.Width / 2;
- newPdf.PageSettings.Height = page.Size.Height;
-
- //添加一个新页面到新建PDF文档
- PdfPageBase newPage = newPdf.Pages.Add();
-
- //页面内容写满之后自动分页
- PdfTextLayout format = new PdfTextLayout();
- format.Break = PdfLayoutBreakType.FitPage;
- format.Layout = PdfLayoutType.Paginate;
-
- //将原PDF文档第一页的内容画到新建PDF文档的页面上
- page.CreateTemplate().Draw(newPage, new PointF(0, 0), format);
-
- //保存文档
- newPdf.SaveToFile("VerticallySplit.pdf");
-
- //关闭
- newPdf.Close();
- pdf.Close();
- }
- }
- }

纵向拆分为2页的效果:
以上代码只将PDF页面拆分为了2页,如果需要拆分为多页,例如横向拆分为4页,将新建PDF的页面高度设置为原页面高度的1/4即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。