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文件
转换后的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);