AABBbaby

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

一篇文章解密如何轻松实现移动应用的电子和手绘PDF签名功能!

对PDF文件签名是移动设备上越来越普遍的使用需求,本文将描述自动生成/“手绘”签名与如何使用DevExpress Office File API组件来实现在.NET MAUI应用程序中快速合并签名/签名支持之间的区别。

DevExpress Office File API使用教程

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CSV 和 Snap Report等企业级文件。

获取DevExpress Office File API v23.1正式版下载

DevExpress技术交流群9:909157416      欢迎一起进群讨论

电子 VS 手绘PDF签名区别

虽然这两种类型的签名都很相似,但它们在功能/实践上存在差异。

电子签名(e-sign)使用加密方法来确认文件是从特定的源发送的,并且在发送后没有被更改。下面的列表描述了使用电子签名签名文件时执行的简化操作顺序:

1. 发送方计算他们想要发送的PDF文件的哈希码。

2. 发送方创建一个公钥/私钥对,并用私钥加密哈希码。

3. 发送方发送PDF文件、加密的哈希码(签名)、公钥和证书,证书包含发件人的信息,接收方可以用它来确认公钥的真实性。

4. 接收方用公钥解密加密的哈希码(签名),计算文档的哈希码,并比较这些哈希。

5. 如果它们相等,则该文件是真实的。如果文件被修改,则文档哈希码将与使用签名中的公钥解密的哈希码不匹配。

为了获得额外的保护,您可以使用认证服务。这些服务有助于确保公钥属于发送文档的用户。

手绘签名很像纸上的“湿”签名,在PDF的情况下,它只是一个图像插入到文档的特定区域。您可以将这两种签名类型结合起来,以确认手绘签名的真实性。

添加PDF签名

DevExpress Office File API包含设计用于处理不同文档类型(PDF, Word, Excel, HTML)的类,在本文中,我们将使用Office File API对PDF文件进行签名,其中包含了刚才提到的两种签名类型。

PdfDocumentProcessor类是PDF文件修改的入口点,在这个项目中,我们使用了这个类的以下成员:

Android和iOS应用都是沙盒式的,他们对设备文件系统的访问权限有限。要处理应用程序包文件,需要将它们复制到Cache或AppDataDirectory(在本例中使用)文件夹中。在我们的例子中,这些文件是PDF和PFX证书文件。下面的代码示例定义了将指定的PDF文件从应用程序包复制到AppDataDirectory文件夹的方法:

public async Task<string> CopyWorkingFilesToAppData(string fileName) {
using Stream fileStream = await FileSystem.Current.OpenAppPackageFileAsync(fileName);
string targetFile = Path.Combine(FileSystem.Current.AppDataDirectory, fileName);
using FileStream outputStream = File.OpenWrite(targetFile);
fileStream.CopyTo(outputStream);
return targetFile;
}

一旦实现,您就可以使用PdfDocumentProcessor.LoadDocument 方法打开PDF文件。

DevExpress Office File API允许您检测PDF AcroForm字段并根据需要填充它们,我们使用以下成员来定位第一个可用的签名字段:

在这个特殊的使用场景中,PdfSignatureBuilder是另一个重要的类。它存储了签名本身的以下信息:

用户可以“绘制”一个签名,并将其嵌入到PDF文件中,这是通过使用DrawingView控件实现的。顾名思义,该控件可以将用户的绘图保存为图像——稍后我们将图像传递给PdfSignatureBuilder。

一旦文档被签名, PdfDocumentProcessor.SaveDocument方法保存签名的PDF文件。


更多DevExpress线上公开课、中文教程资讯请上中文网获取

posted on   AABBbaby  阅读(28)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2022-10-19 「详解」看界面控件DevExtreme如何实现异步验证
2021-10-19 VCL界面控件DevExpress VCL全新发布v21.1.6
2021-10-19 界面控件Telerik UI for WinForm初级教程 - 装配的版本
2021-10-19 「B/S端开发」DevExtreme React组件及入门指南分享
2020-10-19 界面开发必备控件DevExpress,v20.1.8震撼发布
点击右上角即可分享
微信分享提示