将多种文件类型合并为一个 PDF 文件
Spire.PDF for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。致力于在于帮助开发人员轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档,而无需安装 Microsoft Word。
行号用于在每行文本旁边显示 Word 自动计算的行数。当我们需要参考合同或法律文件等文档中的特定行时,它非常有用。word中的行号功能允许我们设置起始值、编号间隔、与文本的距离以及行号的编号方式。使用 Spire.Doc,我们可以实现上述所有功能。本文将介绍如何将 HTML 转换为 PDF。
欢迎加入spire技术交流群:767755948
在工作中遇到过这种情况:您会收到很多不同文件类型的文件,有的是 Word,有的是 PowerPoint 幻灯片,有的是 Excel 等,您需要将这些文件合并为一个 PDF,以便于共享。在本文中,我将向您介绍如何将每种文件类型转换为 Adobe PDF,然后同时使用 Spire.Office 将它们合并为一个 PDF 文档。
在本示例中,我首先准备了四种类型的文件(.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");效果截图:
完整代码:
[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