当前位置: 首页 > news >正文

Word处理控件Aspose.Words功能演示:使用C#对PDF文件进行进一步修改和转换

在许多情况下,使用PDF文档时,您需要进行更改:复制,粘贴,拖放特定的PDF内容,例如文本,图像,表格和图表。只要您要处理文档的一小部分,就可以在同一PDF文件中手动执行这些选项。但是,如果您想在更复杂的情况下执行编辑选项,例如创建数字签名,合并多个PDF文档或重新处理PDF文件中的所有文本,该怎么办?

Aspose.Words使用快速准确的工具回答了这个问题,该工具可以将PDF加载,编辑和转换为任何受支持的文件格式,例如DOCX,HTML,Markdown等。本文将指导以编程方式使用C#和在线方式来使用这些选项。

点击下载最新版Aspose.Words for .NETicon-default.png?t=M7J4https://www.evget.com/product/564/download

使用C#加载PDF文档的功能

通常,PDF仅用于查看,但有时您可能需要编辑或向现有PDF文档添加新内容。Aspose.Words提供了其他选项来处理PDF文档,例如:

  • 将PDF转换为多种格式并提取数据。
  • 使用各种打印选项来打印PDF文档。
  • 加密和解密PDF以及修改密码等。

除了加载PDF文档,您还可以使用C#以编程方式创建PDF文档并管理PDF内容,例如:

  • 添加,更新,删除文本和图像。
  • 在页眉和页脚中插入文本和图像。
  • 操作,导出和导入注释。
  • 添加,修改和删除书签。
  • 在PDF生成过程中添加表,图形对象等。

使用C#将PDF转换为所需格式

Aspose.Words的主要功能之一是能够轻松可靠地将文档 从一种文件格式转换为另一种文件格式的能力。在Aspose.Words中,将PDF文档格式转换为另一种格式(例如DOCX)是一个非常简单的过程,只需几行代码即可完成。可以通过执行以下转换步骤,在C#中以编程方式将PDF转换为DOCX:

  1. 加载PDF文档。
  2. 将结果保存为目标文件格式。

让我们通过前面的步骤以及所有必要的编程细节来描述将PDF文档转换为C#格式的DOCX文件格式的过程。

加载PDF文档

想要使用Aspose.Words执行的大多数任务都将要求加载文档,这是转换过程的第一步。当将PDF文档加载到Aspose.Words中时,它会构建其DOM(文档对象模型),所有文档元素和格式都将简单地加载到内存中。使用文档构造函数之一创建空白文档或加载PDF文档。这时可以创建具有任何必要内容的空白文档,也可以从流中加载文档,如“创建或加载文档”一文中所述。以下示例显示了如何从C#文件中加载PDF文档:

// Load your PDF document into a Document object using one of its constructors
// and the path to your file.
Document doc = new Document(@"C:\DocumentName.pdf");

以任何受支持的格式保存文档

想要使用Aspose.Words执行的大多数任务都将要求保存文档作为最后一步。Aspose.Words支持在SaveFormat枚举中列出的许多不同的保存或导出格式。使用保存方法之一将结果保存到本地文件中,例如,以DOCX文件格式。

要在C#中以编程方式实现该目标,请在Document对象上调用Document.Save方法,并通过输入扩展名为“ .docx”的文件名,将所需的输出格式指定为DOCX:

// Save your document as a DOCX file.
doc.Save(dataDir + "DocumentName.docx");

应用其他选项

可以应用不同的PDF保存选项或PDF加载选项,以下是一些示例,例如数字签名,页面范围和文档打开密码。让我们更多地了解它们。

添加和验证数字签名

Aspose.Words允许使用DigitalSignatureDetails PDF保存选项属性来签名PDF文档。需要从磁盘或证书存储上载数字证书,然后将其传递到X509Certificate2类的新实例。以下代码示例显示了如何在C#中对PDF文档进行签名:

// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

// Create a simple document from scratch.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Load the certificate from disk.
// The other constructor overloads can be used to load certificates from different locations.
X509Certificate2 cert = new X509Certificate2(dataDir + "signature.pfx", "signature");

// Pass the certificate and details to the save options class to sign with.
PdfSaveOptions options = new PdfSaveOptions();
options.DigitalSignatureDetails = new PdfDigitalSignatureDetails();
dataDir = dataDir + "Document.Signed_out.pdf";

// Save the document as PDF.
doc.Save(dataDir, options);

设定页面范围

要设置加载PDF文档的页面范围,将需要使用PageIndex属性指定起始页面的索引,并使用PageCount PDF load选项属性设置从指定索引开始的总加载页面数:

var loadOptions = new PdfLoadOptions { PageIndex = 2, PageCount = 4 };
var doc = new Document("YourDocumentName.pdf", loadOptions);

使用密码打开受保护的PDF

通过直接在PDF加载选项中指定密码值来打开加密的PDF文档:

var loadOptions = new PdfLoadOptions {密码=“ 123456”}; 
var doc = new Document(“ YourDocumentName.pdf”,loadOptions);

相关文章:

  • 手把手教你做多重线性逐步回归
  • 猿创征文|前端进阶必备——WebSockt实现聊天室(附源码)
  • 计算机大一新生,想卷却找不到方向,恳请前辈指指路?
  • Spring-02 IOC与DI
  • EasyExcel知识【Java程序进行读写生成Excel操作】
  • HALCON边缘检测
  • ATC‘22顶会论文RunD:高密高并发的轻量级 Serverless 安全容器运行时 | 龙蜥技术
  • 一篇经典的 Redis 面试资料「处女座笔记」「吐血推荐」...
  • 李沐d2l(十一)--目标检测
  • 美国上周初请人数23.2万人是两个月最低水平 美联储加息75基点稳了
  • 【技术美术知识储备】图形渲染管线1.0-基本概念CPU负责的应用阶段
  • 教你如何使用关键词获取淘宝和天猫的商品信息
  • lodash笔记(语言篇)
  • elasticsearch 6.3.2 集群配置
  • 操作系统复习:线程
  • [PHP内核探索]PHP中的哈希表
  • [译] React v16.8: 含有Hooks的版本
  • 《剑指offer》分解让复杂问题更简单
  • FineReport中如何实现自动滚屏效果
  • GitUp, 你不可错过的秀外慧中的git工具
  • JavaScript-Array类型
  • js ES6 求数组的交集,并集,还有差集
  • JWT究竟是什么呢?
  • Laravel5.4 Queues队列学习
  • node学习系列之简单文件上传
  • 产品三维模型在线预览
  • 电商搜索引擎的架构设计和性能优化
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 前端知识点整理(待续)
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 数组大概知多少
  • 算法---两个栈实现一个队列
  • 一道面试题引发的“血案”
  • 源码安装memcached和php memcache扩展
  • elasticsearch-head插件安装
  • ​Java并发新构件之Exchanger
  • ​香农与信息论三大定律
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • ###项目技术发展史
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $L^p$ 调和函数恒为零
  • $refs 、$nextTic、动态组件、name的使用
  • (1)(1.13) SiK无线电高级配置(五)
  • (八十八)VFL语言初步 - 实现布局
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .md即markdown文件的基本常用编写语法
  • .netcore如何运行环境安装到Linux服务器
  • @Autowired标签与 @Resource标签 的区别
  • [ai笔记4] 将AI工具场景化,应用于生活和工作