PDF控件Spire.PDF for .NET【安全】演示:如何在 PDF 中添加签名字段

news2024/12/25 23:41:27

Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。

E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式

Spire.PDF for.net下载   Spire.PDF for java下载

除了创建签名之外,Spire.PDF还允许我们使用Spire.Pdf.Fields命名空间中的PdfSignatureField类和PdfFieldCollection.Add (PdfField字段)方法向PDF添加签名字段。添加完成后,我们可以点击字段手动将签名添加到PDF文档中。

本文介绍如何使用 Spire.PDF 将签名字段添加到 PDF 文档的指定页面。

详细步骤和代码片段:

第 1 步:创建一个新的 PDF 文档并向其中添加页面。

PdfDocument pdfdoc = new PdfDocument();
PdfPageBase page = pdfdoc.Pages.Add();

步骤 2:使用 PdfSignatureField 类通过传递两个参数:页面和签名字段名称,将命名签名字段添加到指定页面。

PdfSignatureField signaturefield = new PdfSignatureField(page, "Signature");

步骤 3:设置签名字段的边框宽度、样式、颜色、突出显示模式和边界。

signaturefield.BorderWidth = 1.0f;
signaturefield.BorderStyle = PdfBorderStyle.Solid;
signaturefield.BorderColor = new PdfRGBColor(System.Drawing.Color.Black);
signaturefield.HighlightMode = PdfHighlightMode.Outline;
signaturefield.Bounds = new RectangleF(100, 100, 100, 100);

步骤 4:将签名字段添加到文档的根字段。

pdfdoc.Form.Fields.Add(signaturefield);

步骤 5:保存文档。

pdfdoc.SaveToFile("AddSignField.pdf", FileFormat.PDF);

运行代码后,我们会得到结果PDF文件,首页有签名字段,有效截图如下:

如何在 PDF 中添加签名字段

完整代码

using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Fields;
using Spire.Pdf.Graphics;

namespace Add_Signature_Filed_to_PDF
{
class Program
{
static void Main(string[] args)
{
PdfDocument pdfdoc = new PdfDocument();
PdfPageBase page = pdfdoc.Pages.Add();

PdfSignatureField signaturefield = new PdfSignatureField(page, "Signature");
signaturefield.BorderWidth = 1.0f;
signaturefield.BorderStyle = PdfBorderStyle.Solid;
signaturefield.BorderColor = new PdfRGBColor(System.Drawing.Color.Black);
signaturefield.HighlightMode = PdfHighlightMode.Outline;
signaturefield.Bounds = new RectangleF(100, 100, 100, 100);
pdfdoc.Form.Fields.Add(signaturefield);
pdfdoc.SaveToFile("AddSignField.pdf", FileFormat.PDF);
}
}
}

以上便是如何在 PDF 中添加签名字段,如果您有其他问题也可以继续浏览本系列文章,获取相关教程~

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

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

相关文章

mysql mgr集群部署

一、前言 mysql mgr集群是为了实现mysql高可用,分为单主集群和多主集群,单主集群只有一个主节点可写,节点发生故障时,自动进行主从的故障切换,多主集群所有节点都可写,当节点发生故障时,将故障节…

【RPG Maker MV 仿新仙剑 战斗场景UI (二)】

RPG Maker MV 仿新仙剑 战斗场景UI 二 战斗指令菜单原仙剑战斗指令图RMMV战斗指令对应代码战斗指令菜单代码效果 战斗指令菜单 原仙剑战斗指令菜单是使用方向键控制,同时按照使用情况正好对应四个指令和四个方向,同时没有选中的菜单用黑色透明图片覆盖&…

层级关联,审批人功能

一个需求要求选择一级&#xff0c;下方展示一级的效果 后端给了审批人数据&#xff0c;但是数据需要单独处理 <template><div class"box"><el-form :model"ruleForm" :rules"rules" ref"ruleForm" label-width"…

【鸿蒙系统学习笔记】ArkTS开发语言

一、背景 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 二、基本语法 2.1、基本语法介绍 ArkTS的基本组成&#xff0c;资料来自…

【洛谷题解】P8627 [蓝桥杯 2015 省 A] 饮料换购

题目链接&#xff1a;[蓝桥杯 2015 省 A] 饮料换购 - 洛谷 题目难度&#xff1a;普及- 涉及知识点&#xff1a;换购 题意&#xff1a; 分析&#xff1a;一直换购直至瓶盖数<3为只 AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int main() {i…

极其抽象的SpringSecurity理解

原始&#xff1a;A → B Security&#xff1a;A → S → B 太抽象了&#xff0c;看不懂啊T_T 抽象故事 故事大概&#xff1a;C是一个大区&#xff0c;拥有巨大的火力&#xff08;C准备联合B吞并掉A&#xff09;&#xff0c;A得到了这个消息&#xff0c;…

java:Java中的逻辑控制

顺序结构 在Java中&#xff0c;顺序结构是指代码按照从上到下的顺序依次执行。以下是一个简单的Java程序示例&#xff0c;展示了顺序结构的使用&#xff1a; public class SequenceStructureExample {public static void main(String[] args) {// 声明和初始化变量int num1 10…

51-2 万字长文,深度解读端到端自动驾驶的挑战和前沿

去年初&#xff0c;我曾打算撰写一篇关于端到端自动驾驶的文章&#xff0c;发现大模型在自动驾驶领域的尝试案例并不多。遂把议题扩散了一点&#xff0c;即从大模型开始&#xff0c;逐渐向自动驾驶垂直领域靠近&#xff0c;最后落地到端到端。这样需要阐述的内容就变成LLM基础模…

SAP PP学习笔记 - 豆知识05 - 如何定义品目状态,如何删除品目,如何扩张品目

本章讲SAP 中一些常用操作。 - 设定品目状态&#xff1a;控制让一个品目&#xff08;物料&#xff09;准备好了以后再提供出来给大家 - 删除品目&#xff1a;一般来说是逻辑删除&#xff0c;但是做了归档之后&#xff0c;也可以物理删除 - 扩张品目&#xff1a;品目的View非…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-19-处理鼠标拖拽-中篇

1.简介 上一篇中&#xff0c;主要是介绍了拖拽的各种方法的理论知识以及实践&#xff0c;今天宏哥讲解和分享一下划取字段操作。例如&#xff1a;需要在一堆log字符中随机划取一段文字&#xff0c;然后右键选择摘取功能。 2.划取字段操作 划取字段操作就是在一段文字中随机选…

[BUUCTF]-PWN:axb_2019_heap解析(格式化字符串漏洞,unlink,off by one)

查看保护 查看ida 大致就是alloc创建堆块&#xff0c;free释放堆块&#xff0c;以及fill填充堆块 解释get input函数&#xff1a; 这里解释一下get input函数 这个函数是人工编写的&#xff0c;其中*v410那里是把接受到的换行符变为\x00&#xff0c;并且结束输入。 v3那里&a…

单调队列和优先队列

本篇记录下一下关于单调队列和优先队列&#xff08;堆&#xff09;的方法以及解题思路. 文章目录 一. 单调队列1. 绝对差不超过限制得最长连续子数组2. 跳跃游戏 VI3. 设计自助结算系统4. 和至少为k的最短子数组5. 满足不等式的最大值 二. 优先队列1. 最后一块石头的重量2. 数据…

CoWoS封装产能短缺挑战AI芯片市场需求

随着人工智能、云计算、大数据分析和移动计算等技术的蓬勃发展&#xff0c;现代社会对计算能力的需求日益高涨。然而&#xff0c;在先进制程突破3纳米后&#xff0c;晶圆尺寸遭遇缩放极限&#xff0c;制造成本也随之上升。因此&#xff0c;除了继续研发先进制程外&#xff0c;半…

网络防火墙综合实验

备注&#xff1a;电信网段15.1.1.0 移动网段14.1.1.0 办公区 11.1.1.0 生产区 10.1.1.0 服务区 13.1.1.0 公网 1.1.1.1 和 2.2.2.2 需求&#xff1a; 1、办公区设备可以通过电信链路和移动链路上网&#xff08;多对多nat&#xff0c;并且需要保留一个公网ip&#xff09; 2、…

C#,入门教程(05)——Visual Studio 2022源程序(源代码)自动排版的功能动画图示

上一篇&#xff1a; C#&#xff0c;入门教程(04)——Visual Studio 2022 数据编程实例&#xff1a;随机数与组合https://blog.csdn.net/beijinghorn/article/details/123533838 新来的徒弟们交上来的C#代码&#xff0c;可读性往往很差。 今天一问才知道&#xff0c;他们居然不…

使用go-llama.cpp 运行 yi-01-6b大模型,使用本地CPU运行,速度挺快的

1&#xff0c;视频地址 2&#xff0c;关于llama.cpp 项目 https://github.com/ggerganov/llama.cpp LaMA.cpp 项目是开发者 Georgi Gerganov 基于 Meta 释出的 LLaMA 模型&#xff08;简易 Python 代码示例&#xff09;手撸的纯 C/C 版本&#xff0c;用于模型推理。所谓推理…

CMake无Name和Value部分界面

鼠标会变成以下 拉开后就 出现想要的部分

SpaceX 发射军用卫星,用于跟踪高超音速导弹

上周三&#xff0c;导弹防御局的两颗原型卫星和美国太空军的四颗导弹跟踪卫星搭乘 SpaceX 猎鹰 9 号火箭从佛罗里达州太空海岸进入轨道。 这些卫星是新一代航天器的一部分&#xff0c;旨在跟踪中国或俄罗斯发射的高超音速导弹&#xff0c;以及可能来自正在开发自己的高超音速武…

蓝桥杯:C++贪心算法、字符串函数、朴素模式匹配算法、KMP算法

贪心算法 贪心(Greedy)算法的原理很容易理解&#xff1a;把整个问题分解成多个步骤&#xff0c;在每个步骤都选取当前步骤的最优方案&#xff0c;直到所有步骤结束&#xff1b;每个步骤都不考虑对后续步骤的影响&#xff0c;在后续步骤中也不再回头改变前面的选择。 贪心算法…

折叠式隐形纱窗原理

如果出现上轨与下轨不同步&#xff0c;可分析是否是某些绳子被拉长导致的。 以上图现象为例&#xff0c;可调整折叠纱窗一侧上部分的4跟组织线长度。从而解决上轨与下轨拉动不同步的问题。