如何使用 FastReport VCL 对文件进行数字签名?

news2025/1/19 19:16:49

FastReport VCL是用于在软件中集成商务智能的现代解决方案。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。

FastReport VCL最新版下载

我们很难想象没有电子文档管理的生活,电子文档的文件不易丢失,易于存储,并且可以方便转移。但众所周知,只有签署的文件才能生效。

电子签名是保证唯一性和原创性的密码,这样可以建立明确的作者身份并保护文档免受更改。
但是,对每个生成的 PDF 文件进行签名可能非常耗时。如果您有上千个或更多生成的文件怎么办——您还要手动签署它们吗?当然不是。FastReport VCL 可以帮助您对生成的文件进行签名。接下来,我们将演示数字签名的示例。
为清楚起见,我们将使用一个小型应用程序将文件导出为 PDF 并对其进行签名。

procedure TForm1.Button1Click(Sender: TObject); const  FR3FileName = 'Signatures.fr3'; var  PDFExport: TfrxPDFExport;  Report: TfrxReport; begin  Report := TfrxReport.Create(nil);  try  Report.LoadFromFile(FR3FileName);  Report.PrepareReport; // upload and prepare a report    PDFExport := TfrxPDFExport.Create(nil);  try  PDFExport.Report := Report;  PDFExport.ShowDialog := False;      PDFExport.FileName := ExtractFileName(FR3FileName) + '.pdf';  Report.Export(PDFExport); // export the report  SignExport(PDFExport); // sign the file  finally  PDFExport.Free;  end;  finally  Report.Free;  end; end;   procedure SignExport(PDFExport: TfrxPDFExport); const  CertificatePath = 'JaneDoe.pfx'; // The name of our certificate  PasCert = '123'; // certificate password var  Lookup: TCertificateStoreLookup;  FS: TfrxFileSignature;  FSO: Integer; begin  Lookup := TCertificateStoreLookup.Create;  Lookup.IgnoreCase := true;  Lookup.CertificatePath := CertificatePath;    FSO := FileSignatureOptions(  true, // Detached = true Signature in a detached file  false, // Chain = false Certificate chain  false, // OnlyGOST= true GOST certificate  true, // DebugLog = true Debugging Information  true); // PFX = false (true) indicates that the certificate should be searched in the pfx/p12 file.  At the same time, the file name and, possibly, the password must be specified.    FS := TfrxFileSignature.Create(  Lookup,  PDFExport.FileName, // PDF file name  PDFExport.FileName + '.sig', // Name of the generated signature  AnsiString(PasCert),  FSO);    FS.Sign;  FS.Free;  Lookup.Free; end;

写完程序,让我们继续运行它。

启动后,点击“导出”按钮。然后我们得到一个带有签名文件的签名PDF文件:

我们应该检查 PDF 文件是否正确签名。为此,打开控制台并输入以下命令:

openssl pkcs12 -in JohnDoe.pfx -out JohnDoe.pem

我们输入密码并使用以下命令检查后:

openssl smime -verify  -binary  -inform DER -in Signatures.fr3.pdf.sig -content Signatures.fr3.pdf  -certfile JohnDoe.pem -nointern  -noverify  1 >  / dev / null

FastReport技术QQ群:536197826      欢迎进群一起讨论

此屏幕截图显示 PDF 文件已通过签名检查,所以我们做到了。
因此,我们用FastReport VCLFastReport VCL快速地得到了一个正确导出的PDF文件的签名。

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

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

相关文章

MySQL主从复制太慢,怎么办?

本文分析了MySQL主从延迟的原因以及介绍了MTS方案。点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达mysql主从同步延迟原因导致备库延迟的原因主要有如下几种:通常备库所在机器的性能要比主库所在的机器性能差,执行…

用DIV+CSS技术设计的体育主题网站(足球介绍)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

STM32F4 | 窗口门狗(WWDG)实验

文章目录一、STM32F4 窗口看门狗简介二、硬件设计三、软件设计四、实验现象五、STM32CubeMX 配置 WWDG在本章中,我们将使用窗口看门狗的 中断功能来喂狗,通过 DS0 和 DS1 提示程序的运行状态。一、STM32F4 窗口看门狗简介 窗口看门狗(WWDG&…

【机器学习】算法术语、决策函数、概率模型、神经网络的详细讲解(图文解释)

一、机器学习算法术语 1)数据集(Data Set),训练集(Training Set),验证集(Validation Set)和测试集(Test Set) 数据集分为训练数据和测试数据。测…

100%都会感染,第一波症状最重,后面会轻。家里一定要备这些东西!

这是某医院院长在医院内部会议上关于新冠防治的强调内容,我听了很受教育,觉得非常有必要普及开来,我相信这位院长的专业性。这段会议发言的录音已经在网上流传,由于录音听起来费时且不宜传播,我已将录音转为文字&#…

Kibana入门教程

一、什么是Kibana   Kibana 是一个开源的分析和可视化平台,Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据 二、安装使用 ①&#xf…

社招前端常考手写面试题总结

手写 Promise const PENDING "pending"; const RESOLVED "resolved"; const REJECTED "rejected";function MyPromise(fn) {// 保存初始化状态var self this;// 初始化状态this.state PENDING;// 用于保存 resolve 或者 rejected 传入的值…

【Python机器学习】使用决策树模型预测消费者未来消费行为实战(附源码和数据集 超详细)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一个预测未来消费行为的示例,即已经采集了过去消费行为的信息,并用来建立一个模型以对未来的消费行为进行预测。该示例简要演示了数据预处理、提取特征、选择模型、训练模型、评估模型、应用等阶段&a…

ModStartCMS v5.4.0 输入过滤增强,导入导出支持

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…

【Java初阶】面向对象三大特性之继承

一、继承 理解继承 Cat继承了Animal类,其中:Animal类称为父类/基类或超类,Cat可以称为Animal的 子类/派生类,继承之后,子类可以复用父类中成员,子类在实现时只需关心自己新增加的成员即可 Java中不支持多继…

DBCO-PEG24-O-amine,DBCO-PEG24-O-NH2,二苯并环辛炔-二十四聚乙二醇-O-氨基

DBCO-PEG24-O-amine中叠氮化物和DBCO基团,DBCO 点击化学可以在水性缓冲液中运行,也可以在有机溶剂取决于底物分子的性质。带有 PEG 臂的试剂会增加化合物的亲水性。DBCO 试剂已应用于生物偶联、标记和化学生物学。 DBCO系列产品包括可用于进一步连接的DB…

机器学习回归模型相关重要知识点总结

回归分析为许多机器学习算法提供了坚实的基础。在这篇文章中,我们将总结 10 个重要的回归问题和5个重要的回归问题的评价指标。 一、线性回归的假设是什么 线性:自变量(x)和因变量(y)之间应该存在线性关系&…

PYNQ -z2 与 PC主板网口直连上网 可ping通外网

文章目录1.下载映像文件并烧录到板子2. 将usb和网线连接到电脑上3.将网络改为共享模式4. 使用xshell新建串口通信连接到板子5. 更改板子ip与PC 同一网段6. 通过ip地址访问7. 访问外网1.下载映像文件并烧录到板子 可以参考 烧录镜像 2. 将usb和网线连接到电脑上 3.将网络改为共…

【轻量级开源ROS 的机器人设备(5)】--(1)拟议的框架——µROS节点

前文链接: 【轻量级开源ROS 的机器人设备(4)】--(3)通信实现 【轻量级开源ROS 的机器人设备(4)】--(2)通信实现 【轻量级开源ROS 的机器人设备(4&#xff…

Docker+Jenkins+Gitee+Harbor+WebHooks实现CI/CD!

🎶 文章简介:DockerJenkinsGiteeHarborWebHooks实现CI/CD! 💡 创作目的:DockerJenkinsGiteeHarborWebHooks实现CI/CD! ☀️ 今日天气:天气有些阴沉 📝 每日一言:如果你执…

【设计模式】策略模式

【设计模式】策略模式 文章目录【设计模式】策略模式一:策略模式简介二:策略模式使用场景三:策略模式总结四:策略模式实战一:策略模式简介 在策略模式(Strategy Pattern)中,一个类的…

[附源码]Node.js计算机毕业设计房地产销售系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

怎么把图片转换成excel文件?

作为一个办公人员,难免会遇到图片里面有一些内容数据,需要编辑成Excel表格。如果我们按照上面图片表格,创建一个新的文件,这样就非常费时费力,还容易出错。其实小伙伴们如果需要,可以借助软件直接把图片变成…

聚观早报 | 百度 APP 上线疫情指数;辣条第一股卫龙在港上市

今日要闻:百度 APP 上线疫情指数;辣条第一股卫龙在港上市;特斯拉股价大跌引投资者不满;苹果将允许下载第三方商店;京东调集快递小哥驰援北京百度 APP 上线疫情指数 近日,百度 APP 正式上线「疫情指数」&…

CRM客户管理系统源码带手机端+Uniapp小程序源码+调试部署视频

一套Java大型CRM客户关系管理源码带手机端和小程序源码(带调试部署视频) 了解CRM源码更多信息可私信我。 相关技术: 1. 前端:Vue 2. 后端:Spring boot 3. 数据库:MySQL 4.小程序端:UNIAPP …