Make preserve_actions a requirement

This commit is contained in:
John Whitington 2025-03-14 18:26:36 +00:00
parent 27871f3942
commit ad2aeaa3d5
7 changed files with 14 additions and 14 deletions

View File

@ -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

View File

@ -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})

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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