Bootstrap

Spire.PDF for .NET【文档操作】演示:将多种文件类型合并为一个 PDF

也许您在工作中遇到过这种情况:您收到很多不同文件类型的文件,有些是Word,有些是PowerPoint幻灯片,有些是Excel等,您需要将这些文件合并为一个PDF以供使用轻松分享。在本文中,我将向您介绍如何使用 Spire.Office 将每种文件类型转换为 Adobe PDF,然后同时将它们合并为单个 PDF 文档。

Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。

E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式

Spire.PDF for.net下载   Spire.PDF for java下载

在此示例中,我首先准备了四种类型的文件(.doc、.docx、.xls、.pdf)。在 Spire.Office 中,它提供了SaveToStream()方法,允许我们将 Word 和 Excel 文档保存到流中,然后可以通过调用PdfDocument(Stream stream)方法将这些流转换为 PDF 文档。最后,我们可以使用PdfDocument.AppendPage()方法将这些 PDF 文件合并为一个文件。更多细节如下:

用于将多种文件类型合并为一个 PDF 的代码片段

第 1 步:创建四个新的 PDF 文档。

PdfDocument[] documents = new PdfDocument[4];

步骤 2:加载 .doc 文件,将其保存到流中并从流中生成新的 PDF 文档。

using (MemoryStream ms1 = new MemoryStream())
{
Document doc = new Document("01.doc", Spire.Doc.FileFormat.Doc);
doc.SaveToStream(ms1, Spire.Doc.FileFormat.PDF);
documents[0] = new PdfDocument(ms1);
}

步骤3:重复步骤2,从.docx文件和.xls文件生成两个PDF文档。

using (MemoryStream ms2 = new MemoryStream())
{
Document docx = new Document("02.docx", Spire.Doc.FileFormat.Docx2010);
docx.SaveToStream(ms2, Spire.Doc.FileFormat.PDF);
documents[1] = new PdfDocument(ms2);
}
using (MemoryStream ms3 = new MemoryStream())
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("03.xls", ExcelVersion.Version97to2003);
workbook.SaveToStream(ms3, Spire.Xls.FileFormat.PDF);
documents[2] = new PdfDocument(ms3);
}

步骤 4:加载 .pdf 文件并将其保存到文档[3]。

documents[3] = new PdfDocument("04.pdf");

步骤5:将文档[0]、[1]、[2]附加到文档[3]并另存为新的PDF文档。

for (int i = 2; i > -1; i--)
{
documents[3].AppendPage(documents[i]);
}
documents[3].SaveToFile("Result.pdf");

效果截图:

将多种文件类型合并为一个 PDF

完整代码:

[C#]

using Spire.Doc;
using Spire.Xls;
using Spire.Pdf;

namespace MergeMultiTypestoOnePDF
{
class Program
{
static void Main(string[] args)
{
PdfDocument[] documents = new PdfDocument[4];
using (MemoryStream ms1 = new MemoryStream())
{
Document doc = new Document("01.doc", Spire.Doc.FileFormat.Doc);
doc.SaveToStream(ms1, Spire.Doc.FileFormat.PDF);
documents[0] = new PdfDocument(ms1);
}
using (MemoryStream ms2 = new MemoryStream())
{
Document docx = new Document("02.docx", Spire.Doc.FileFormat.Docx2010);
docx.SaveToStream(ms2, Spire.Doc.FileFormat.PDF);
documents[1] = new PdfDocument(ms2);
}
using (MemoryStream ms3 = new MemoryStream())
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("03.xls", ExcelVersion.Version97to2003);
workbook.SaveToStream(ms3, Spire.Xls.FileFormat.PDF);
documents[2] = new PdfDocument(ms3);
}
documents[3] = new PdfDocument("04.pdf");

for (int i = 2; i > -1; i--)
{
documents[3].AppendPage(documents[i]);
}

documents[3].SaveToFile("Result.pdf");

}
}
}

[VB.NET]

Imports Spire.Doc
Imports Spire.Xls
Imports Spire.Pdf

Namespace MergeMultiTypestoOnePDF
Class Program
Private Shared Sub Main(args As String())
Dim documents As PdfDocument() = New PdfDocument(3) {}
Using ms1 As New MemoryStream()
Dim doc As New Document("01.doc", Spire.Doc.FileFormat.Doc)
doc.SaveToStream(ms1, Spire.Doc.FileFormat.PDF)
documents(0) = New PdfDocument(ms1)
End Using
Using ms2 As New MemoryStream()
Dim docx As New Document("02.docx", Spire.Doc.FileFormat.Docx2010)
docx.SaveToStream(ms2, Spire.Doc.FileFormat.PDF)
documents(1) = New PdfDocument(ms2)
End Using
Using ms3 As New MemoryStream()
Dim workbook As New Workbook()
workbook.LoadFromFile("03.xls", ExcelVersion.Version97to2003)
workbook.SaveToStream(ms3, Spire.Xls.FileFormat.PDF)
documents(2) = New PdfDocument(ms3)
End Using
documents(3) = New PdfDocument("04.pdf")

For i As Integer = 2 To -1 + 1 Step -1
documents(3).AppendPage(documents(i))
Next

documents(3).SaveToFile("Result.pdf")

End Sub
End Class
End Namespace
;