除了将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即可。