From ad2aeaa3d52394255b4831da905afa3baf9dc973 Mon Sep 17 00:00:00 2001 From: John Whitington Date: Fri, 14 Mar 2025 18:26:36 +0000 Subject: [PATCH] Make preserve_actions a requirement --- cpdfaddtext.ml | 4 ++-- cpdfbookmarks.ml | 6 +++--- cpdfcommand.ml | 4 ++-- cpdfdraw.ml | 2 +- cpdfpage.ml | 4 ++-- cpdftoc.ml | 6 +++--- cpdfxobject.ml | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cpdfaddtext.ml b/cpdfaddtext.ml index 48b53b4..2137683 100644 --- a/cpdfaddtext.ml +++ b/cpdfaddtext.ml @@ -231,7 +231,7 @@ let replace_pairs marks fastrefnums pdf endpage extract_text_font_size filename let expand_lines text time pdf endpage extract_text_font_size filename bates batespad num page lines = let refnums = Pdf.page_reference_numbers pdf in let fastrefnums = hashtable_of_dictionary (combine refnums (indx refnums)) in - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let expanded_lines = map (function text -> @@ -326,7 +326,7 @@ let addtext let ops, urls, x, y, hoffset, voffset, text, joffset = let refnums = Pdf.page_reference_numbers pdf in let fastrefnums = hashtable_of_dictionary (combine refnums (indx refnums)) in - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let text = process_text time text (replace_pairs marks fastrefnums pdf endpage extract_text_font_size filename bates batespad num page) in let text, urls = get_urls_line text in let lines = map (fun text -> if raw || fontpack <> None then text else charcodes_of_utf8 (Pdftext.read_font pdf fontpdfobj) text) lines in diff --git a/cpdfbookmarks.ml b/cpdfbookmarks.ml index 4db7f58..6fe4f70 100644 --- a/cpdfbookmarks.ml +++ b/cpdfbookmarks.ml @@ -219,7 +219,7 @@ let process_string encoding s = (* List the bookmarks in the given range to the given output *) let list_bookmarks ~json encoding range pdf output = - let bookmarks = Pdfmarks.read_bookmarks pdf in + let bookmarks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let refnums = Pdf.page_reference_numbers pdf in let rangetable = hashset_of_list range in let range_is_all = range = ilist 1 (Pdfpage.endpage pdf) in @@ -363,7 +363,7 @@ let add_bookmark_title filename use_title pdf = else Filename.basename filename in - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let page1objnum = match Pdfpage.page_object_number pdf 1 with None -> error "add_bookmark_title: page not found" @@ -381,7 +381,7 @@ let add_bookmark_title filename use_title pdf = Pdfmarks.add_bookmarks newmarks pdf let bookmarks_open_to_level n pdf = - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let newmarks = map (fun m -> {m with Pdfmarks.isopen = m.Pdfmarks.level < n}) diff --git a/cpdfcommand.ml b/cpdfcommand.ml index 007e52e..fe5e704 100644 --- a/cpdfcommand.ml +++ b/cpdfcommand.ml @@ -3445,7 +3445,7 @@ let stem s = let fast_write_split_pdfs ?(names=[]) enc splitlevel original_filename sq spec main_pdf pagenums pdf_pages = - let marks = Pdfmarks.read_bookmarks main_pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false main_pdf in iter2 (fun number pagenums -> let pdf = Pdfpage.pdf_of_pages ~retain_numbering:args.retain_numbering ~process_struct_tree:args.process_struct_trees main_pdf pagenums in @@ -3472,7 +3472,7 @@ let bookmark_pages level pdf = l when l.Pdfmarks.level = level -> Some (Pdfpage.pagenumber_of_target ~fastrefnums pdf l.Pdfmarks.target) | _ -> None) - (Pdfmarks.read_bookmarks pdf)) + (Pdfmarks.read_bookmarks ~preserve_actions:false pdf)) let split_at_bookmarks enc original_filename ~squeeze level spec pdf diff --git a/cpdfdraw.ml b/cpdfdraw.ml index f739c72..8a03c60 100644 --- a/cpdfdraw.ml +++ b/cpdfdraw.ml @@ -166,7 +166,7 @@ let reset_state () = let process_specials pdf endpage filename bates batespad num page s = let refnums = Pdf.page_reference_numbers pdf in let fastrefnums = hashtable_of_dictionary (combine refnums (indx refnums)) in - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let pairs = Cpdfaddtext.replace_pairs marks fastrefnums pdf endpage None filename bates batespad num page in diff --git a/cpdfpage.ml b/cpdfpage.ml index 423f067..cd116c5 100644 --- a/cpdfpage.ml +++ b/cpdfpage.ml @@ -846,7 +846,7 @@ let stamp ~process_struct_tree relative_to_cropbox position topline midline fast let over = if process_struct_tree then mark_all_as_artifact (remove_struct_tree over) else over in let prefix = Pdfpage.shortest_unused_prefix pdf in Pdfpage.add_prefix over prefix; - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let marks_refnumbers = Pdf.page_reference_numbers pdf in let pdf = Pdfmarks.remove_bookmarks pdf in let over = Pdfmarks.remove_bookmarks over in @@ -923,7 +923,7 @@ let combine_pages ~process_struct_tree fast under over scaletofit over_is_under begin Pdf.remove_unreferenced pdf; Pdfwrite.pdf_to_file pdf n end in Pdfpage.add_prefix over (Pdfpage.shortest_unused_prefix under); - let marks_under, marks_over = Pdfmarks.read_bookmarks under, Pdfmarks.read_bookmarks over in + let marks_under, marks_over = Pdfmarks.read_bookmarks ~preserve_actions:false under, Pdfmarks.read_bookmarks ~preserve_actions:false over in let under, over = equalize_pages under over in let under_length, over_length = Pdfpage.endpage under, Pdfpage.endpage over in if under_length <> over_length then diff --git a/cpdftoc.ml b/cpdftoc.ml index 9ed5014..80c2be1 100644 --- a/cpdftoc.ml +++ b/cpdftoc.ml @@ -171,7 +171,7 @@ let typeset_table_of_contents ~font ~fontsize ~title ~bookmark ~dotleader ~proce let optional l = if process_struct_tree then l else [] in if process_struct_tree then ensure_minimal_struct_tree pdf; Hashtbl.clear width_table_cache; - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in if marks = [] then (Pdfe.log "No bookmarks, not making table of contents\n"; pdf) else let labels = Pdfpagelabels.read pdf in let refnums = Pdf.page_reference_numbers pdf in @@ -226,7 +226,7 @@ let typeset_table_of_contents ~font ~fontsize ~title ~bookmark ~dotleader ~proce @ leader @ optional [Cpdftype.Tag ("Link", 0)] @ labelruns @ optional [Cpdftype.EndTag] @ [Cpdftype.EndDest; Cpdftype.NewLine]) - (Pdfmarks.read_bookmarks pdf) + (Pdfmarks.read_bookmarks ~preserve_actions:false pdf) in let toc_pages, toc_tags = let title = @@ -358,7 +358,7 @@ let typeset_table_of_contents ~font ~fontsize ~title ~bookmark ~dotleader ~proce let labels' = label::map (fun l -> {l with Pdfpagelabels.startpage = l.Pdfpagelabels.startpage + toc_pages_len}) labels in Pdfpagelabels.write pdf labels'; if bookmark then - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let refnums = Pdf.page_reference_numbers pdf in let newmark = {Pdfmarks.level = 0; diff --git a/cpdfxobject.ml b/cpdfxobject.ml index a81de19..50f17ca 100644 --- a/cpdfxobject.ml +++ b/cpdfxobject.ml @@ -50,7 +50,7 @@ let add_page_as_xobject pdf range page name = let stamp_as_xobject pdf range over = let prefix = Pdfpage.shortest_unused_prefix pdf in Pdfpage.add_prefix over prefix; - let marks = Pdfmarks.read_bookmarks pdf in + let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in let marks_refnumbers = Pdf.page_reference_numbers pdf in let pdf = Pdfmarks.remove_bookmarks pdf in let over = Pdfmarks.remove_bookmarks over in