diff options
| author | Ana Gelez <ana@gelez.xyz> | 2024-08-12 11:57:55 +0200 |
|---|---|---|
| committer | Ana Gelez <ana@gelez.xyz> | 2024-08-12 11:57:55 +0200 |
| commit | afc8c2c11a736f212a0ce205db01fa93bfa67337 (patch) | |
| tree | 0241858585a2464f353e04bfcad8b177f97ba70b | |
| parent | 28905fedc1e994bfd2ec16e50711639aa1247c28 (diff) | |
Annotations for signatures
| -rw-r--r-- | crates/typst-pdf/src/signature.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/crates/typst-pdf/src/signature.rs b/crates/typst-pdf/src/signature.rs index 92c2c674..266d028a 100644 --- a/crates/typst-pdf/src/signature.rs +++ b/crates/typst-pdf/src/signature.rs @@ -25,9 +25,7 @@ use cms::{ }, }; use pdf_writer::{ - types::{FieldType, SigFlags}, - writers::{Field, Form}, - Finish, Name, Pdf, Primitive, Ref, Str, + types::SigFlags, writers::Form, Finish, Name, Pdf, Primitive, Ref, Str, }; use rsa::{traits::SignatureScheme, Pkcs1v15Sign, RsaPrivateKey}; use sha2::Sha512; @@ -38,8 +36,11 @@ pub fn prepare(alloc: &mut Ref, pdf: &mut Pdf) -> (Range<usize>, Ref) { let form_ref = alloc.bump(); let signature_field_ref = alloc.bump(); - let mut signature_field: Field = pdf.indirect(signature_field_ref).start(); - signature_field.field_type(FieldType::Signature); + let mut signature_field = pdf.indirect(signature_field_ref).dict(); + signature_field.pair(Name(b"Type"), Name(b"Annot")); + signature_field.pair(Name(b"Subtype"), Name(b"Widget")); + signature_field.pair(Name(b"FieldType"), Name(b"Sig")); + signature_field.insert(Name(b"Rect")).array().items([0, 0, 0, 0]); let mut signature_dict = signature_field.insert(Name(b"V")).dict(); signature_dict.pair(Name(b"Type"), Name(b"Sig")); signature_dict.pair(Name(b"Filter"), Name(b"Adobe.PPKLite")); |
