本文将展示如何使用spire.pdf组件对pdf文档进行合并与拆分。
合并 pdf 文档
spire.pdf.pdfdocument类为用户提供了一个静态方法mergefiles () ,该方法共有以下三种重载方法:
c#
//从指定流合并pdf文档
public static pdfdocumentbase mergefiles(stream[] streams);
//从指定数组合并pdf文档
public static pdfdocumentbase mergefiles(string[] inputfiles);
//从指定路径合并pdf文档
public static pdfdocumentbase mergefiles(string firstinputfile, string secinputfile);
vb.net
'从指定流合并pdf文档
public shared function mergefiles(streams as stream()) as pdfdocumentbase
end function
'从指定数组合并pdf文档
public shared function mergefiles(inputfiles as string()) as pdfdocumentbase
end function
'从指定路径合并pdf文档
public shared function mergefiles(firstinputfile as string, secinputfile as string) as pdfdocumentbase
end function
用户可以根据自己的需求从中选择相应的重载方法来合并两个或多个pdf文档。示例:
string[] files = new string[] { "文档1.pdf", "文档2.pdf", "文档3.pdf" };
pdfdocumentbase doc = pdfdocument.mergefiles(files);
doc.save("合并1.pdf", fileformat.pdf);
vb.net
dim files as [string]() = new [string]() {"文档1.pdf", "文档2.pdf", "文档3.pdf"}
dim doc as pdfdocumentbase = pdfdocument.mergefiles(files)
doc.save("合并1.pdf", fileformat.pdf)
合并前:
合并后:
拆分 pdf 文档
该部分将介绍两种拆分方式:将pdf文档按每一页拆分及按指定页码范围拆分。
将pdf文档按每一页拆分
用户可以通过调用spire.pdf.pdfdocument类中的split()方法来实现将一个pdf文档的每一页拆分为一个单独的pdf文档:
c#
pdfdocument doc = new pdfdocument("合并1.pdf");
string pattern = "拆分{0}.pdf";
doc.split(pattern);
doc.close();
vb.net
dim doc as new pdfdocument("合并1.pdf")
dim pattern as [string] = "拆分{0}.pdf"
doc.split(pattern)
doc.close()
拆分前:
拆分后:
将 pdf 文档按指定页码范围拆分
该方式与上一种拆分方式不同,它是通过创建新的pdf文档并将原文档页面的元素画到新文档上来实现的。
c#
//加载一个现有的pdf文档
pdfdocument pdf = new pdfdocument();
pdf.loadfromfile("教程.pdf");
//新建1个pdf文档
pdfdocument pdf1 = new pdfdocument();
pdfpagebase page;
//将现有pdf文档的第1-10页拆分为一个文档
for (int i = 0; i < 10; i )
{
//向新建文档添加与现有文档页面大小一致的页面
page = pdf1.pages.add(pdf.pages[i].size, new pdfmargins(0));
//为现有文档的页面创建模板并将模板画到新建文档的页面上
pdf.pages[i].createtemplate().draw(page, new pointf(0, 0));
}
//保存文档
pdf1.savetofile("1-10.pdf");
//新建第2个pdf文档
pdfdocument pdf2 = new pdfdocument();
//将现有pdf文档的第11-18页拆分为另一个文档
for (int i = 10; i < 18; i )
{
//向新建文档添加与现有文档页面大小一致的页面
page = pdf2.pages.add(pdf.pages[i].size, new pdfmargins(0));
//为现有文档的页面创建模板并将模板画到新建文档的页面上
pdf.pages[i].createtemplate().draw(page, new pointf(0, 0));
}
//保存文档
pdf2.savetofile("11-18.pdf");
vb.net
'加载一个现有的pdf文档
dim pdf as new pdfdocument()
pdf.loadfromfile("教程.pdf")
'新建1个pdf文档
dim pdf1 as new pdfdocument()
dim page as pdfpagebase
'将现有pdf文档的第1-10页拆分为一个文档
for i as integer = 0 to 9
'向新建文档添加与现有文档页面大小一致的页面
page = pdf1.pages.add(pdf.pages(i).size, new pdfmargins(0))
'为现有文档的页面创建模板并将模板画到新建文档的页面上
pdf.pages(i).createtemplate().draw(page, new pointf(0, 0))
next
'保存文档
pdf1.savetofile("1-10.pdf")
'新建第2个pdf文档
dim pdf2 as new pdfdocument()
'将现有pdf文档的第11-18页拆分为另一个文档
for i as integer = 10 to 17
'向新建文档添加与现有文档页面大小一致的页面
page = pdf2.pages.add(pdf.pages(i).size, new pdfmargins(0))
'为现有文档的页面创建模板并将模板画到新建文档的页面上
pdf.pages(i).createtemplate().draw(page, new pointf(0, 0))
next
'保存文档
pdf2.savetofile("11-18.pdf")
拆分前:
拆分后: