Stamp remove struct tree / artifacts

This commit is contained in:
John Whitington
2025-03-11 14:28:55 +00:00
parent b9d97b938d
commit 81d88bc57a
10 changed files with 95 additions and 71 deletions

View File

@ -238,31 +238,6 @@ let rec dict_entry_single_object f pdf = function
| Pdf.Array a -> Pdf.recurse_array (dict_entry_single_object f pdf) a
| x -> x
(* FIXME are we sure that functional values can never appear in the equality here? *)
let remove_dict_entry pdf key search =
let f d =
match search with
| None -> Pdf.remove_dict_entry d key
| Some s ->
match Pdf.lookup_direct pdf key d with
| Some v when v = s -> Pdf.remove_dict_entry d key
| _ -> d
in
Pdf.objselfmap (dict_entry_single_object f pdf) pdf;
pdf.Pdf.trailerdict <- dict_entry_single_object f pdf pdf.Pdf.trailerdict
let replace_dict_entry pdf key value search =
let f d =
match search with
| None -> begin try Pdf.replace_dict_entry d key value with _ -> d end
| Some s ->
match Pdf.lookup_direct pdf key d with
| Some v when v = s -> Pdf.replace_dict_entry d key value
| _ -> d
in
Pdf.objselfmap (dict_entry_single_object f pdf) pdf;
pdf.Pdf.trailerdict <- dict_entry_single_object f pdf pdf.Pdf.trailerdict
let print_dict_entry ~utf8 pdf key =
let f d =
match Pdf.lookup_direct pdf key d with