diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..91e1a0e --- /dev/null +++ b/src/main.rs @@ -0,0 +1,36 @@ +use lopdf::{Document, Object}; + + +fn main() { + let mut doc = Document::load("./f1040.pdf").unwrap(); + + for (_, mut obj) in &mut doc.objects { + // println!("{:?}", obj); + + match &mut obj { + Object::Dictionary(ref mut d) => { + for (k, v) in d.iter_mut() { + let key = std::str::from_utf8(k).unwrap(); + + if key == "DA" { + // println!("{:?}", d); + + let properties = v.as_str_mut().unwrap(); + + let new_properties = std::str::from_utf8(properties) + .unwrap() + .replace("HelveticaLTStd-Bold", "CourierNewPSMT"); + + *properties = new_properties.into_bytes(); + + dbg!(std::str::from_utf8(properties).unwrap()); + // dbg!(properties); + } + } + }, + _ => (), + } + } + + doc.save("./new.pdf").unwrap(); +} |