將多種文件類型合并為一個 PDF 文件
Spire.PDF for .NET 是一款專門對 Word 文檔進(jìn)行操作的 .NET 類庫。致力于在于幫助開發(fā)人員輕松快捷高效地創(chuàng)建、編輯、轉(zhuǎn)換和打印 Microsoft Word 文檔,而無需安裝 Microsoft Word。
行號用于在每行文本旁邊顯示 Word 自動計算的行數(shù)。當(dāng)我們需要參考合同或法律文件等文檔中的特定行時,它非常有用。word中的行號功能允許我們設(shè)置起始值、編號間隔、與文本的距離以及行號的編號方式。使用 Spire.Doc,我們可以實現(xiàn)上述所有功能。本文將介紹如何將 HTML 轉(zhuǎn)換為 PDF。
歡迎加入spire技術(shù)交流群:767755948
在工作中遇到過這種情況:您會收到很多不同文件類型的文件,有的是 Word,有的是 PowerPoint 幻燈片,有的是 Excel 等,您需要將這些文件合并為一個 PDF,以便于共享。在本文中,我將向您介紹如何將每種文件類型轉(zhuǎn)換為 Adobe PDF,然后同時使用 Spire.Office 將它們合并為一個 PDF 文檔。
在本示例中,我首先準(zhǔn)備了四種類型的文件(.doc、.docx、.xls、.pdf)。在 Spire.Office 中,它提供了 SaveToStream() 方法,允許我們將 Word 和 Excel 文檔保存到數(shù)據(jù)流中,然后通過調(diào)用 PdfDocument(Stream stream) 方法將這些數(shù)據(jù)流轉(zhuǎn)換為 PDF 文檔。最后,我們可以使用 PdfDocument.AppendPage() 方法將這些 PDF 文件合并為一個文件。更多詳情如下:
將多個文件類型合并為一個 PDF 的代碼片段
第 1 步:創(chuàng)建四個新的 PDF 文檔。
PdfDocument[] documents = new PdfDocument[4];第 2 步:加載 .doc 文件,將其保存到數(shù)據(jù)流中,然后從數(shù)據(jù)流中生成新的 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 步:重復(fù)第 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