This commit is contained in:
John Whitington 2023-04-18 17:09:21 +01:00
parent bd7cba7730
commit 014c92bdde
1 changed files with 12 additions and 3 deletions

View File

@ -209,11 +209,20 @@ let set_annotations_json pdf i =
(* Find largest negative objnumber. Then add number of annot objects. *)
match json with
| `List entries ->
let maxobjnum =
fold_left max min_int (map (fun e -> match e with `List (`Int i::_) -> abs i | _ -> error "Bad annots JSON entry") entries)
in
(* Renumber the PDF so everything has bigger object numbers than that. *)
Printf.printf "maxobjnum = %i\n" maxobjnum;
let maxobjnum =
fold_left
max
min_int
(map (fun e -> match e with `List (`Int i::_) -> abs i | _ -> error "Bad annots entry") entries)
in
let pdf_objnums =
map fst (list_of_hashtbl pdf.Pdf.objects.Pdf.pdfobjects)
in
let change_table =
hashtable_of_dictionary (map2 (fun f t -> (f, t)) pdf_objnums (ilist (maxobjnum + 1) (maxobjnum + length pdf_objnums)))
in
let pdf = Pdf.renumber change_table pdf in
()
| _ -> error "Bad Annotations JSON file"