From 5f294bf283c1382763640f710ea7a40460fb5a95 Mon Sep 17 00:00:00 2001 From: John Whitington Date: Mon, 21 Oct 2024 15:13:02 +0100 Subject: [PATCH] Auto-tagging for special text --- cpdfdraw.ml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cpdfdraw.ml b/cpdfdraw.ml index ffcdc3b..0a095bd 100644 --- a/cpdfdraw.ml +++ b/cpdfdraw.ml @@ -453,7 +453,11 @@ let rec ops_of_drawop struct_tree dryrun pdf endpage filename bates batespad num | SpecialText s -> let s = process_specials pdf endpage filename bates batespad num page s in if dryrun then iter (fun c -> Hashtbl.replace (res ()).current_fontpack_codepoints c ()) (Pdftext.codepoints_of_utf8 s); - fst (runs_of_utf8 s) + let m = if !do_auto_tag then mcid () else 0 in + if not dryrun && !do_auto_tag then structdata := StDataMCID ("/P", m)::!structdata; + (if struct_tree && !do_auto_tag then [Pdfops.Op_BDC ("/P", Pdf.Dictionary ["/MCID", Pdf.Integer m])] else []) + @ fst (runs_of_utf8 s) + @ (if struct_tree && !do_auto_tag then [Pdfops.Op_EMC] else []) | Para (indent, j, w, s) -> if dryrun then iter (iter (fun c -> Hashtbl.replace (res ()).current_fontpack_codepoints c ())) (map Pdftext.codepoints_of_utf8 s); let first = ref true in