提问人:kolek 提问时间:9/1/2023 更新时间:9/4/2023 访问量:82
我可以使用 fdf 文件对文件进行数字签名吗
can I use a fdf file to digitally sign a file
问:
我有一个请求,要求使用 .net 使用 fdf 文件对 pdf 文件进行签名,但我找不到有关如何启动的任何信息,甚至找不到任何信息,即使可能也是如此。
根据我的理解,fdf文件只是一个值的集合,而不是证书 就像这里解释的那样 https://docs.appligent.com/fdfmerge/fdfmerge-form-data-format/
FDF 文件是一个纯文本文件,其中包含表单字段及其值的列表。虽然我们将向您展示如何手动创建一个,但大多数情况下 FDF 文件是软件生成的。以下是创建 FDF 文件的一些更常见的方法:
使用Adobe Acrobat将表单数据直接导出到文件。
我可以使用 pfx 文件对 pdf 进行签名,但我从未听说过 fdf 文件
我需要一些关于这个话题的帮助
答:
您可以在此处复制文件(请注意,这些只是概念验证,您的模板会更大)
%PDF-1.2
1 0 obj <</Type/Catalog/Pages 2 0 R/AcroForm 3 0 R>> endobj
2 0 obj <</Type/Pages/Count 1/Kids[3 0 R]>> endobj
3 0 obj <</Type/Page/Parent 2 0 R/MediaBox[0 0 596 842]/Annots[4 0 R]/Contents 7 0 R
/Resources<</Font<</F1<</BaseFont/Helvetica/Encoding/WinAnsiEncoding/Name/F1/Subtype/Type1/Type/Font>>>>>>>> endobj
5 0 obj <</Fields[4 0 R]/SigFlags 1>> endobj
4 0 obj <</AP<</N 6 0 R>>/F 4/FT/Sig/MK<<>>/P 3 0 R/Rect[106 801 256 833]/Subtype/Widget/T(Signature1)/Type/Annot>> endobj
% Here is the space for the digital signature field
6 0 obj <</BBox[0 0 150 32]/Length 0/Resources<<>>/Subtype/Form/Type/XObject>>
stream
endstream
endobj
% Here are the Page contents just a line and text as graphics around the signature field
7 0 obj <</Length 107>>
stream
q 1 J 1 w 50 800 m 250 800 l .5 .5 .5 RG S
0 0 1 rg BT /F1 12 Tf 1 0 0 1 50 802 Tm (Signature) Tj ET Q
endstream
endobj
xref
trailer <</Root 1 0 R>>
%%EOF
这是 Squiggle 先生进行数字签名所需的 FDF(表单数据文件)。
%FDF-1.4
%âãÏÓ
1 0 obj
<<
/FDF << /F (unsignedproforma.pdf)
/Fields [<</T (Signature1)>>]
/UF (unsignedproforma.pdf) >>
/Type /Catalog
>>
endobj
trailer
<< /Root 1 0 R >>
%%EOF
因此,Squiggle 先生将 FDF 发送到 FDF 应用程序,例如 Tracker PDFXedit(或 Acrobat),在该应用程序中加载激活了该字段的 PDF,因此他们可以添加带有远程添加时间戳的个人数字签名。在手动保存到新文件时,已添加签名以供其他阅读器使用。
需要注意的关键点是,必须在 FDF 编辑 PDF 后应用签名,以便签名 THEN 将显示文件历史记录中的该点之后没有进一步的更改。(因此签名不能在 FDF 内部)
因此,图形和个人签名文件将由本地系统应用 这是使用 Acrobats 签名插件的 (在加密之前,请参阅样式和水印中的徽标将来自插件。
因此,这并不能解释如何使用 FDF 进行签名,我们需要将其视为 WetSignature 而不是 PKS 签名
湿(橡皮图章图像)签名 PDF
%PDF-1.4
1 0 obj <</AcroForm 2 0 R/Pages 3 0 R/Type/Catalog>> endobj
2 0 obj <</Annots[4 0 R]/Contents 5 0 R/DR<</Font<</Helv 6 0 R>>>>/Fields[4 0 R]/MediaBox[0 0 596 842]/Parent 3 0 R
/Resources<</Font<</F0<</BaseFont/Helvetica/Encoding/WinAnsiEncoding/Name/F1/Subtype/Type1/Type/Font>>>>>>/SigFlags 3/Type/Page>> endobj
3 0 obj <</Count 1/Kids[2 0 R]/Type/Pages>> endobj
4 0 obj <</AP<</N 7 0 R>>/BS<</W 0>>/DA(0 g /Helv 11 Tf)/DV(Enter full name of above)/F 4/FT/Tx/M(D:2023)/MK<</BC[0 0 0]>>
/P 2 0 R/Rect[106 780 256 799]/Subtype/Widget/T(Signed)/TU(Signed by)/Type/Annot/V(Enter full name of above)>> endobj
5 0 obj <</Length 107>> stream
q 1 J 1 w 50 800 m 250 800 l .5 .5 .5 RG S
0 0 1 rg BT /F0 12 Tf 1 0 0 1 50 802 Tm (Signature) Tj ET Q
endstream
endobj
6 0 obj <</BaseFont/Helvetica/Subtype/Type1/Type/Font>> endobj
7 0 obj <</BBox[0 0 150 18]/Type/XObject/Length 113/Resources<</Font<</Helv 6 0 R>>>>/Subtype/Form>>
stream
/Tx BMC q 0 0 150 18 re W n BT 0 g 0 Tc 0 Tw 100 Tz 0 Tr/Helv 11 Tf 0 5 Td (Enter full name of above)Tj ET Q EMC
endstream
endobj
xref
trailer <</Root 1 0 R>>
startxref
%%EOF
Squiggle 先生的 FDF
%FDF-1.4
%âãÏÓ
1 0 obj << /FDF << /Annots [2 0 R] /F (asignedproforma2.pdf) /Fields [<< /T (Signed) /V (Mr I. Squiggle \(AKA Ink SQuId\))
>>] /UF (asignedproforma2.pdf) >> /Type /Catalog >> endobj
2 0 obj << /AP << /N 3 0 R >> /C [1 0 0] /CreationDate (D:2023) /F 4 /IT /Stamp /M (D:2023) /Name /WetSign
/NM (12345678-1234-1234-0123456789abcdef) /Page 0 /Rect [106 801 256 833] /Subj (Stamp) /Subtype /Stamp /T (TBA) /Type /Annot >> endobj
3 0 obj << /BBox [0 0 150 36] /Length 30 /Resources << /XObject << /Im0 4 0 R >> >> /Subtype /Form /Type /XObject >>
stream
q 150 0 0 36 0 0 cm /Im0 Do Q
endstream
endobj
4 0 obj << /BitsPerComponent 1 /ColorSpace /DeviceGray /Height 30 /Length 570 /Subtype /Image /Width 150 >>
stream
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁü?ÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿ xÿÿÀÿÿÿÿÿÿÿÿÿÿÿü ÿÿ€ ÿÿÿÿÿÿÿÿÿÿÿø ÿÿ ÿÿÿÿÿÿÿÿÿÿð ÿü ÿÿÿÿÿÿÿÿÿÿà ÿø ÿÿÿÿÿÿÿÿÿÿà ÿððÿÇÿÿÿÿÿÿÿÿàÿþÿðþ ÿƒÿÿÿÿÿÿÿÿàÿþÿà?ÿ€ÿƒÿÿÿÿÿÿÿÿàÿþÿÀÿàƒÿÿÿÿÿÿÿÿàÿÿÿÀÿÿàƒÿÿÿÿÿÿÿÿàÿÿÿÁÿÿÀÿÁÿÿÿÿÿÿÿÿàÿÿÿÁÿÿ€ÿÁÿÿÿÿÿÿÿÿðÿÿÁÿþÿÁÿÿÿÿÿÿÿÿðÿÿÁÿøÿÁÿÿÿÿÿÿÿÿðÿÿÿÁÿàÿÁÿÿÿÿÿÿÿÿàÿÿÿÀÿ€ÿÁÿÿÿÿÿÿÿÿ€ÿÿÿÿà~ ?ÿÀÿÿÿÿÿÿÿþ ÿÿÿÿàp ÿÿàÿÿÿÿÿÿÿàÿÿÿÿð ÿÿàÿÿÿÿÿÿü ÿÿÿÿø ÿÿàÿÿÿÿÿÿø ÿÿÿÿø ?ÿÿàÿÿÿÿÿÿø ?ÿÿÿÿà ÿÿÿñÿÿÿÿÿÿøÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
endstream
endobj
trailer
<<
/Root 1 0 R
>>
%%EOF
因此,您只需双击FDF(或通过您的程序调用它),Adobe Reader就会为您签署您的费用表或支票。
所以总结一下
通过使用FDF,多个用户都可以将他们的签名作为法律印章,根据需要在任意数量的页面上签名,然后“最终文件”可以与其他任何文件完全相同地签名。
评论