Word处理控件Aspose.Words功能演示:在 C# .NET 中将 Word 转换为 PDF - 完整指南

news2024/11/13 15:47:20

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

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

Aspose.Words 最新下载(qun:761297826)icon-default.png?t=MBR7https://www.evget.com/product/564

C# Word 到 PDF 转换 - 场景

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

  • 在 C# 中将 Word 转换为 PDF
  • 在 C# 中将所需的 Word 文档页面转换为 PDF
  • 使用特定 PDF 标准(例如 PDF 1.7、PDF/A-1a 等)将 Word 转换为 PDF。
  • 在 C# 中使用图像/文本压缩将 Word 转换为 PDF
  • 在 C# 中带有数字签名的 Word 到 PDF
  • 具有所需 JPEG 质量的图像的 Word 到 PDF 转换

C# .NET API 将 Word 转换为 PDF

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

使用 NuGet 包管理器

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

使用包管理器控制台

PM> Install-Package Aspose.Words

C# 中的简单 Word 到 PDF 转换

要将 Word 文档转换为 PDF,您必须调用Document.Save()方法并指定带有“.pdf”扩展名的输出文件名。以下代码示例展示了如何在 C# 中将 Word 文档转换为 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# 使用特定标准将 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 的转换。

文本压缩选项

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

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

图像压缩

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

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

以下代码示例展示了如何使用 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 转换

您还可以在执行 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# 中将 Word 转换为具有所需 JPEG 质量的 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);

结论

在本文中,您学习了如何使用各种选项在 C# 中将 Word 文档转换为 PDF。访问Aspose.Words for .NET的文档以查看 API 提供的完整功能集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/138745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JS面试题--JavaScript基础

1. new操作符的实现原理 创建一个对象将构造函数的作用域赋给新对象(也就是将对象的__proto__属性指向构造函数的prototype属性)指向构造函数中的代码,构造函数中的this指向该对象(也就是为这个对象添加属性和方法)返…

Arthas tt -t , tt -i 以及 watch相关使用理解 解析入参和结果等

Arthas tt 系列作用 方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测 一、 tt -t 作用和一般用法 tt -t 一般用于监控某一个方法的调用记录,如果调用多此会出现多条记录,一…

怎么申请icp备案?怎么查询icp备案是否申请成功

什么是icp备案号? 简单来说,icp备案号,就是你网站的备案号码。icp备案号就是当你的网站提交备案资料,经工业信息化产业部(及各地通信管理局)审核通过后,会通过电子邮箱发送一个备案号码给你…

JVM内存结构及内存溢出OOM

JVM内存结构JVM的内存结构大致分为五个部分,分别是程序计数器、虚拟机栈、本地方法栈、堆和方法区。除此之外,还有由堆中引用的JVM外的直接内存。下面将展开讲解这五个部分。程序计数器程序计数器(Program Counter Register),用于记录下一条J…

券商接口关闭的情况下怎么做到实时量化买入?通达信破解接口可以吗?

现在券商接口关闭的情况下怎么做到实时量化买入?量化买入有一些第三方软件是可以破解券商接口的。像通达信破解接口它有一个什么机构版还是什么,他可以同时几个券商一起买入,当然这个你需要用手工输入。像其他的像一些A计划,它就是…

【 java 集合】List接口常用实现类对比以及ArrayList和LinkedList源码分析

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

绿控传动冲刺科创板上市:连年亏损,现金流紧张,计划募资11亿元

近日,苏州绿控传动科技股份有限公司(下称“绿控传动”)在上海证券交易所递交招股书,准备在科创板上市。 本次冲刺上市,绿控传动计划募资10.72亿元,其中7.16亿元用于年产新能源商用车电驱动系统10万套项目&a…

泛微特色政务应用:对内协同办公、对外高效服务,推动政务数字化

近年来,国家不断深入建设“数字化政府”,政务服务“网上办”、“掌上办”、“一网通办”已经成为政务服务新方向。 泛微数字化运营平台为各级政府机关、行政事业单位,打造覆盖各级市、区、县、乡镇街道、村及各级社区部门的网上协同办公平台…

Qt编译CTK

文章目录一、CTK简介二、CTK下载三、CTK编译一、CTK简介 CTK是什么 CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit CTK 提供了什么 当前,CTK 工作的主要范围包括: DICOM:提供了从 PACS 和本地数据库中查询和…

基础数据结构——链表

目录 一、链表 1、数组的缺点 2、链表 3、单向链表 4、双向链表 5、Python链表的实现 二、例题 一、链表 1、数组的缺点 1)需要占用连续的空间 若某个数组很大,可能没有这么大的连续空间给它用。 2)不方便删除和插入 例如删除数组…

MySQL如何查看未提交的事务SQL

点击上方蓝字关注我MySQL中经常遇到事务中的SQL正在执行或执行完成后未提交,如何找出对应的SQL?1. 查看正在执行的SQL查看事务中正在执行的SQL方式有多种,例如1.1 通过processlist查看会话1:执行1个SQLmysql> begin; Query OK…

AC7811-BLDC无感控制代码调试与测试记录

接线注意 供电 对于 AC781x 电机 Demo 板,其 MCU 控制板和功率板的 12V 输入只需接一路即可,如果电机额定电压为 12V,那么将功率板中的功率管供电模式选择跳点(靠近 D5)短接即可,不需要再额外供电;如果电机的额定电压…

配置磁盘多路径聚合

一 安装多路径软件 yum install -y device-mapper device-mapper-multipath 二 配置多路径聚合 在每个节点上都需要配置下多路径聚合。 /* 注意事项: 新添加盘后要扫描下,才能识别到(如果已经看到盘了,即执行multipath -ll能看到&#…

《收获,不止Oracle》读书笔记之性能提升千倍

体系学习让SQL语句性能提升千倍 未优化前,单车速度 drop table t purge; create table t(x int);create or replace procedure proc1 as beginfor i in 1..100000loopexecute immediateinsert into t values (||i||);commit;end loop; end; / /*这里要记得预先执行…

linux下常用调试技巧

1 linux下如何查看静态库和动态库都链接了那些库 1.1 静态库.a是没有指令可以看到其在生成过程中链接了那些库的 1.2 动态库.so可以通过ldd指令查看其在生成过程中链接了那些库 还有一种简单直观的方法,我们可以在编译过程中看到所生成的二进制文件,链接了那些库: 平时编译…

[阶段4 企业开发进阶] 7. 微服务--SpringCloud Alibaba

文章目录1 服务注册和配置中心Nacos1.1 Nacos简介1.2 Nacos作为服务注册中心服务提供者注册服务消费者注册和负载服务注册中心对比1.3 Nacos作为服务配置中心基础配置分类配置DataID方案配置Group方案配置Namespace方案配置1.4 Nacos集群和持久化配置2 服务熔断和限流SentinelS…

指针仪表读数识别系统 yolov7

指针仪表读数识别系统通过 yolov7opencv计算机视觉分析技术,利用现场摄像头可以自动识别指针型仪表读数并将读数回传给平台节省人工巡检读表的时间。YOLOv7 在 5 FPS 到 160 FPS 范围内,速度和精度都超过了所有已知的目标检测器,并在V100 上,…

【日常系列】LeetCode《24·贪心1》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) 内容 lc 455 &#xff1a;分发饼干 - 贪心思想 https://leetcode.cn/problems/assign-cookies/ 提示&#xff1a; 1 < g.length < 3 * 10^4 0 < s.len…

配置双网卡聚合

一 服务器多网卡聚合的意义 1、多网卡聚合&#xff0c;可以起到网络链路冗余作用&#xff0c;当故障发生时&#xff0c;网络自动切换&#xff0c;保证业务数据不中断。 2、多网卡聚合成一条虚拟链路&#xff0c;可实现网络带宽提升&#xff0c;如2个1000Mbps的网卡聚合&#…

【收藏】使用Google Colab随时随地运行Python代码

Colab官网 什么是 Colab? Colab,或“Colaboratory”,允许您在浏览器中编写和执行 Python,不需要依赖本地资源。具有以下优势: 需要零配置免费使用GPU轻松分享几大非常方便的特性: 和Google Drive无缝融合 可以将文件存储在Google Drive里面,同时也可以从Google Driv…