PDF文件中的可见签名

  • 本文关键字:文件 PDF pdf pades
  • 更新时间 :
  • 英文 :


i'm尝试在PDF文件中创建可见签名。

使用一个简单的PDF" Hello World"文件:

%PDF-1.7
1 0 obj  % entry point
<<
  /Type /Catalog
  /Pages 2 0 R
>>
endobj
2 0 obj
<<
  /Type /Pages
  /MediaBox [ 0 0 200 200 ]
  /Count 1
  /Kids [ 3 0 R ]
>>
endobj
3 0 obj
<<
  /Type /Page
  /Parent 2 0 R
  /Resources <<
    /Font <<
      /F1 4 0 R 
    >>
  >>
  /Contents 5 0 R
>>
endobj
4 0 obj
<<
  /Type /Font
  /Subtype /Type1
  /BaseFont /Times-Roman
>>
endobj
5 0 obj  % page content
<<
  /Length 44
>>
stream
BT
10 05 TD
/F1 12 Tf
(Hello, world!) Tj
ET
endstream
endobj
xref
0 6
0000000000 65535 f 
0000000010 00000 n 
0000000079 00000 n 
0000000173 00000 n 
0000000301 00000 n 
0000000380 00000 n 
trailer
<<
  /Size 6
  /Root 1 0 R
>>
startxref
492
%%EOF

并用文本在第一页的某个位置出现" yolo",从而产生以下方式:

%PDF-1.7
1 0 obj  % entry point
<<
  /Type /Catalog
  /Pages 2 0 R
>>
endobj
2 0 obj
<<
  /Type /Pages
  /MediaBox [ 0 0 200 200 ]
  /Count 1
  /Kids [ 3 0 R ]
>>
endobj
3 0 obj
<<
  /Type /Page
  /Parent 2 0 R
  /Resources <<
    /Font <<
      /F1 4 0 R 
    >>
  >>
  /Contents 5 0 R
>>
endobj
4 0 obj
<<
  /Type /Font
  /Subtype /Type1
  /BaseFont /Times-Roman
>>
endobj
5 0 obj  % page content
<<
  /Length 44
>>
stream
BT
10 05 TD
/F1 12 Tf
(Hello, world!) Tj
ET
endstream
endobj
xref
0 6
0000000000 65535 f 
0000000010 00000 n 
0000000079 00000 n 
0000000173 00000 n 
0000000301 00000 n 
0000000380 00000 n 
trailer
<<
  /Size 6
  /Root 1 0 R
>>
startxref
492
%%EOF
8 0 obj
<</F 132/Type/Annot/Subtype/Widget/Rect[0 0 0 0]/FT/Sig/DR<<>>/T(Signature1)/V 6 0 R/P 3 0 R/AP<</N 7 0 R>>>>
endobj
6 0 obj
<</Contents <...>/Type/Sig/SubFilter/ETSI.CAdES.detached/M(D:20190626125540+00'00')/ByteRange [0 824 60826 1401]/Filter/Adobe.PPKLite>>
endobj
9 0 obj
<</BaseFont/Helvetica/Type/Font/Subtype/Type1/Encoding/WinAnsiEncoding/Name/Helv>>
endobj
10 0 obj
<</BaseFont/ZapfDingbats/Type/Font/Subtype/Type1/Name/ZaDb>>
endobj
12 0 obj
<</Length 35>>stream
BT
1 15 TD
/Helv 6 Tf
(Yolo) Tj
ET
endstream
endobj
7 0 obj
<</Type/XObject/Resources<</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]>>/Subtype/Form/BBox[0 0 0 0]/Matrix [1 0 0 1 0 0]/Length 8/FormType 1/Filter/FlateDecode>>stream
xœ    
endstream
endobj
3 0 obj
<</Type/Page/Parent 2 0 R/Resources<</Font<</F1 4 0 R>>>>/Contents [12 0 R 5 0 R]/Annots[8 0 R]>>
endobj
2 0 obj
<</Type/Pages/MediaBox[0 0 200 200]/Count 1/Kids[3 0 R]>>
endobj
1 0 obj
<</AcroForm<</Fields[8 0 R]/DR<</Font<</Helv 9 0 R/ZaDb 10 0 R>>>>/DA(/Helv 0 Tf 0 g )/SigFlags 3>>/Type/Catalog/Pages 2 0 R>>
endobj
11 0 obj
<</Producer(AdES Tools https://www.turboirc.com)/ModDate(D:20190626125540+00'00')>>
endobj
xref
0 4
0000000000 65535 f 
0000061604 00000 n 
0000061529 00000 n 
0000061414 00000 n 
6 7
0000000804 00000 n 
0000000000 65535 f 
0000000679 00000 n 
0000060952 00000 n 
0000061050 00000 n 
0000061746 00000 n 
0000061127 00000 n 
trailer
<</Root 1 0 R/Prev 492/Info 11 0 R/Size 17/ID[<4BB225C2F629BB21464F66FBF2FED264><8E3C9AD8354C66931EAAC282088455EA>]>>
startxref
61846
%%EOF

因此,PDF中有一个对象,在第一页中显示了一些文本:

12 0 obj
<</Length 35>>stream
BT
1 15 TD
/Helv 6 Tf
(Yolo) Tj
ET
endstream
endobj

我的问题现在是,此对象被视为Adobe读取器中的常见文本对象。我想要它,当单击时,要转到数字签名,例如Adobe Acrobat签名文档的方式。

我想念什么?数字签名(6或8个数字对象(中是否有参数,或我的应用程序将文本对象与签名链接的新PDF放入的任何其他对象中?

非常感谢。

您的对象8

8 0 obj
<</F 132/Type/Annot/Subtype/Widget/Rect[0 0 0 0]/FT/Sig/DR<<>>/T(Signature1)/V 6 0 R/P 3 0 R/AP<</N 7 0 R>>>>
endobj

是签名的Acroform表单字段(因为 ft 带有值 sig> sig 告诉我们的条目(。但是,同时,此对象也是一个表单字段窗口小部件注释(如 type subtype 条目中所示(。表单字段窗口小部件注释是表单字段的可视化表示形式,如果形式字段只有一个表示,则可以像对象中的形式字段合并窗口小部件。

在您的情况下,注释具有0x0大小(/Rect[0 0 0 0](,即看不见。要具有可见的表示形式,您需要一个不会消失的注释矩形。

在正常外观/AP<</N 7 0 R>>中定义了显示的内容,该外观指向对象7。

7 0 obj
<</Type/XObject/Resources<</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]>>/Subtype/Form/BBox[0 0 0 0]/Matrix [1 0 0 1 0 0]/Length 8/FormType 1/Filter/FlateDecode>>stream
xœ    
endstream
endobj

乍一看,即使在减压后,这看起来都很空。

因此,您要做的是

  • 为您的签名表格注释选择一个非拼接矩形,
  • 将正常外观流的 Bbox 适应该注释矩形和
  • 在该注释的正常外观流中创建非空内容而不是添加页面内容。

此外,您应该在PDF中解决明显的错误,例如

  • 对象7,您的签名字段正常外观,在交叉参考中标记为免费的
  • 您的预告片声称大小为17

有关详细信息,请研究PDF规范ISO32000。第1部分发布供Adobe下载,网址为https://wwwww.adobe.com/content/content/dam/acom/acom/acom/devnet/devnet/pdf/pdf/pdf/pdf/pdfs/pdf32000_2000_2008.pdf <</p>

特别是部分

  • 12.5"注释"
  • 12.7"交互式形式"
  • 12.8"数字签名"

相关内容

  • 没有找到相关文章

最新更新