mirror of
https://github.com/johnwhitington/cpdf-source.git
synced 2025-05-28 09:54:34 +02:00
Make preserve_actions a requirement
This commit is contained in:
parent
27871f3942
commit
ad2aeaa3d5
@ -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
|
||||
|
@ -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})
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user