开年特献!使用Aspose.Words在.NET中以编程方式将Word格式转换为PDF完整指南

时间:2024-03-27 11:06:08

Word到PDF的转换是当今的一种常见做法,特别是当你需要共享文件时,转换成PDF是常做的工作之一。

MS Word提供了将Word文档保存为PDF的内置功能,但是,在某些情况下,可能希望通过编程方式将Word文档转换为PDF,例如在Web应用程序中,或者需要在不安装MS Office的情况下将Word批量转换为PDF。

接下来,我们将学习如何使用Aspose.Words在.NET或.NET Core框架中使用C#以编程方式将Word转换为PDF。如果你还没有用过Aspose.Words可以点击这里下载最新版测试。

在本文中,我们将使用Aspose.Words在C#中执行以下Word到PDF的转换:

  • 简单的Word到PDF转换。
  • 将所需的Word文档页面转换为PDF。
  • 使用特定的PDF标准(例如PDF 1.7,PDF / A-1a等)将Word转换为PDF。
  • 使用数字签名将Word转换为PDF。
  • 将Word转换为具有所需JPEG图像质量的PDF。

(本文篇幅略长,建议收藏阅读哟~)

①简单的Word到C#的PDF转换

要将Word文档转换为PDF,必须调用Document.Save()方法并以“ .pdf”扩展名指定输出文件名。下面的代码示例显示了C#中从DOC到PDF的简单转换。

// Load the document from disk.
Document doc = new Document("word.doc");
// Save as PDF
doc.Save("output.pdf");

Word文件

开年特献!使用Aspose.Words在.NET中以编程方式将Word格式转换为PDF完整指南

转换后的PDF文档

开年特献!使用Aspose.Words在.NET中以编程方式将Word格式转换为PDF完整指南

②在C#中将Word文档的选定页面转换为PDF

当然,可以通过指定要在生成的PDF文档中获取的页面范围来自定义Word到PDF的转换。可以转换前N页,也可以定义指定起始页索引的页范围。下面的C#代码示例演示如何将Word文档第二页开始的3页转换为PDF。

Document doc = new Document("word.docx");
PdfSaveOptions options = new PdfSaveOptions();
// Convert 3 pages starting from index 1 where 0 is the first page's index 
options.PageIndex = 1;
options.PageCount = 3;
// Save Word as PDF
doc.Save("output.pdf", options);

③使用C#中的特定PDF标准将Word转换为PDF

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

Document doc = new Document("word.docx");
// Set PDFSaveOption compliance to PDF17
PdfSaveOptions options = new PdfSaveOptions();
options.Compliance = PdfCompliance.Pdf17;
// Convert Word to PDF
doc.Save("output.pdf", options);

④在C#中使用文本/图像压缩将Word转换为PDF

PDF格式支持文本和图像压缩,以减小文档的大小。由于PDF文档的大小可能很大,因此其内容的压缩使其易于上载,共享,打印等。使用Aspose.Words for .NET,文本和图像压缩也可以在Word中应用于PDF转换。该API提供以下压缩选项:

文字压缩选项

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

  • None: 保存PDF而不进行文本压缩。
  • Flate: 使用Flate(ZIP)压缩保存PDF。

影像压缩

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

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

下面的代码示例演示如何使用C#中的文本和图像压缩将Word转换为PDF。

Document doc = new Document("word.docx");
PdfSaveOptions options = new PdfSaveOptions();
// Text and image compression
options.TextCompression = PdfTextCompression.Flate;
options.ImageCompression = PdfImageCompression.Auto;
// Save Word as PDF
doc.Save("output.pdf", options);

⑤在C#中使用数字签名将Word转换为PDF

同样,可以在执行Word到PDF的转换时将数字签名应用于输出的PDF。使用CertificateHolder类可以指定数字证书和密码。所述PdfDigitalSignatureDetails类允许提供所述数字签名的详细信息,如证书持有者,因此,位置和日期/时间。下面的代码示例演示如何使用C#中的数字签名将Word文档转换为PDF。

Document doc = new Document("word.docx");
PdfSaveOptions options = new PdfSaveOptions();
// Digital signatures details
CertificateHolder certHolder = CertificateHolder.Create("signature.pfx", "12345");
options.DigitalSignatureDetails = new PdfDigitalSignatureDetails(certHolder, "reason", "location", DateTime.Now);
// Save Word as PDF
doc.Save("output.pdf", options);

⑥在C#中以所需JPEG品质将Word转换为PDF

同样,可以使用PdfSaveOptions.JpegQuality属性指定要在转换后的PDF文档中获得的所需JPEG质量。JpegQuality的值可以在0到100之间变化,其中0表示质量最差但压缩最大,而100表示质量最好但压缩最小。以下代码示例显示了在C#中将Word文档转换为PDF时如何设置JPEG质量。

Document doc = new Document("word.docx");
// Set Jpeg quality
PdfSaveOptions options = new PdfSaveOptions();
options.JpegQuality = 100;
// Convert Word to PDF
doc.Save("output.pdf", options);