将多种文件类型合并为一个 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

QQ交谈
在线咨询

渝公网安备
50010702500608号

客服热线