C# Word 转 PDF - DOC 转 PDF

如今,Word 到 PDF 的转换是一种常见的做法,在共享文档之前是首选。 MS Word 提供了将 Word 文档另存为 PDF 的内置功能,但是,您可能希望在 Web 应用程序中以编程方式将 Word 文档转换为 PDF,或者您可能需要在不安装 MS Office 的情况下将 Word 批量转换为 PDF。因此,在本文中,您将学习如何在 .NET 或 .NET Core 框架中使用 C# 将 DOCX 或 DOC 转换为 PDF。

C# DOCX 到 PDF 转换 - 场景

在本文中,您将学习如何:

C# .NET API 将 DOCX 转换为 PDF

Aspose.Words for .NET 是一个强大的 API,用于创建和操作流行的 Word 文档格式。该 API 还提供了一种将 Word 文档以高保真度转换为 PDF 的简便方法。因此,对于 C# 中的 Word 到 PDF 转换,我们将首先在项目中添加对 Aspose.Words for .NET DLL 的引用或使用以下方法之一安装它。

使用 NuGet 包管理器

  • 在 Visual Studio 中创建/打开项目。
  • 转到 NuGet 包管理器并搜索 Aspose.Words。
  • 安装 Aspose.Words for .NET。
将 Word 转换为 PDF C# .NET

使用包管理器控制台

PM> Install-Package Aspose.Words

C# 中的简单 DOCX 到 PDF 转换

要将 Word 文档转换为 PDF,您必须调用 Document.Save() 方法并使用“.pdf”扩展名指定输出文件名。以下代码示例展示了如何在 C# 中将 DOC 转换为 PDF。

// 从磁盘加载文档。
Document doc = new Document("word.doc");
// 另存为 PDF
doc.Save("output.pdf");

Word 文档

C# 将 Word 转换为 PDF

转换后的 PDF

在 C# 中以编程方式将 Word 转换为 PDF

在 C# 中将 DOCX 的选定页面转换为 PDF

您还可以通过指定要在生成的 PDF 文档中获得的页面范围来自定义 Word 到 PDF 的转换。您可以转换前 N 页或定义指定起始页索引的页面范围。以下代码示例展示了如何在 C# 中将 DOCX 的第二页开始的 3 页转换为 PDF。

Document doc = new Document("word.docx");
PdfSaveOptions options = new PdfSaveOptions();
// 从索引 1 开始转换 3 页,其中 0 是第一页的索引 
options.PageIndex = 1;
options.PageCount = 3;
// 将 Word 保存为 PDF
doc.Save("output.pdf", options);

C# 使用特定标准将 DOCX DOC 转换为 PDF

PDF 文档可能符合不同的 PDF 标准,例如 PDF 1.7、PDF 1.5、PDF/A-1a 等。据此,Aspose.Words for .NET 允许在 Word 到 PDF 的转换中指定 PDF 合规级别。您可以使用 PdfCompliance 枚举指定合规级别。以下代码示例显示了如何在 C# 中设置 DOCX 到 PDF 转换中的合规级别。

Document doc = new Document("word.docx");
// 将 PDFSaveOption 合规性设置为 PDF17
PdfSaveOptions options = new PdfSaveOptions();
options.Compliance = PdfCompliance.Pdf17;
// 将 Word 转换为 PDF
doc.Save("output.pdf", options);

C# 使用文本/图像压缩将 DOCX 转换为 PDF

PDF 格式支持文本和图像压缩以减小文档的大小。由于 PDF 文档的大小可能很大,其内容的压缩使其易于上传、共享、打印等。文本和图像压缩也可以使用 Aspose.Words for .NET 在 DOC 到 PDF 转换中应用。

文本压缩选项

PdfTextCompression 枚举中提供了以下文本压缩选项。

  • 无:保存 PDF 时不压缩文本。
  • Flate:使用 flate (ZIP) 压缩保存 PDF。

图像压缩

PdfImageCompression 枚举中提供了以下图像压缩选项。

  • 自动:API 自动为文档中的每个图像选择最合适的压缩方式。
  • Jpeg:压缩为 JPEG 图像(不支持透明度)。

以下代码示例展示了如何使用 C# 中的文本和图像压缩将 DOCX 转换为 PDF。

Document doc = new Document("word.docx");
PdfSaveOptions options = new PdfSaveOptions();
// 文本和图像压缩
options.TextCompression = PdfTextCompression.Flate;
options.ImageCompression = PdfImageCompression.Auto;
// 将 Word 保存为 PDF
doc.Save("output.pdf", options);

带有数字签名的 C# DOCX 到 PDF 转换

您还可以在执行 Word 到 PDF 转换时将数字签名应用于输出 PDF。 CertificateHolder 类允许您指定数字证书和密码。 PdfDigitalSignatureDetails 类允许提供数字签名的详细信息,例如证书持有者、原因、位置和日期/时间。以下代码示例展示了如何在 C# 中将 DOC/DOCX 转换为带有数字签名的 PDF。

Document doc = new Document("word.docx");
PdfSaveOptions options = new PdfSaveOptions();
// 数字签名详细信息
CertificateHolder certHolder = CertificateHolder.Create("signature.pfx", "12345");
options.DigitalSignatureDetails = new PdfDigitalSignatureDetails(certHolder, "reason", "location", DateTime.Now);
// 将 Word 保存为 PDF
doc.Save("output.pdf", options);

在 C# 中将 DOCX 转换为具有所需 JPEG 质量的 PDF

您还可以使用 PdfSaveOptions.JpegQuality 属性指定要在转换后的 PDF 文档中获得的所需 JPEG 质量。 JpegQuality 的值可能在 0 到 100 之间变化,其中 0 表示质量最差但压缩最大,100 表示质量最好但压缩最小。

以下代码示例显示了在 C# 中将 DOCX 转换为 PDF 时如何设置 JPEG 质量。

Document doc = new Document("word.docx");
// 设置 Jpeg 质量
PdfSaveOptions options = new PdfSaveOptions();
options.JpegQuality = 100;
// 将 Word 转换为 PDF
doc.Save("output.pdf", options);

结论

在本文中,您学习了如何在 C# 中使用各种选项将 DOCX 或 DOC 转换为 PDF。访问 Aspose.Words for .NET 的 文档 以查看 API 提供的完整功能集。如有任何问题或疑问,请通过我们的 论坛 联系我们。

相关文章)