mirror of
https://github.com/johnwhitington/cpdf-source.git
synced 2025-05-31 19:29:45 +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 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 refnums = Pdf.page_reference_numbers pdf in
|
||||||
let fastrefnums = hashtable_of_dictionary (combine refnums (indx refnums)) 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 =
|
let expanded_lines =
|
||||||
map
|
map
|
||||||
(function text ->
|
(function text ->
|
||||||
@ -326,7 +326,7 @@ let addtext
|
|||||||
let ops, urls, x, y, hoffset, voffset, text, joffset =
|
let ops, urls, x, y, hoffset, voffset, text, joffset =
|
||||||
let refnums = Pdf.page_reference_numbers pdf in
|
let refnums = Pdf.page_reference_numbers pdf in
|
||||||
let fastrefnums = hashtable_of_dictionary (combine refnums (indx refnums)) 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 = 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 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
|
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 *)
|
(* List the bookmarks in the given range to the given output *)
|
||||||
let list_bookmarks ~json encoding range pdf 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 refnums = Pdf.page_reference_numbers pdf in
|
||||||
let rangetable = hashset_of_list range in
|
let rangetable = hashset_of_list range in
|
||||||
let range_is_all = range = ilist 1 (Pdfpage.endpage pdf) 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
|
else
|
||||||
Filename.basename filename
|
Filename.basename filename
|
||||||
in
|
in
|
||||||
let marks = Pdfmarks.read_bookmarks pdf in
|
let marks = Pdfmarks.read_bookmarks ~preserve_actions:false pdf in
|
||||||
let page1objnum =
|
let page1objnum =
|
||||||
match Pdfpage.page_object_number pdf 1 with
|
match Pdfpage.page_object_number pdf 1 with
|
||||||
None -> error "add_bookmark_title: page not found"
|
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
|
Pdfmarks.add_bookmarks newmarks pdf
|
||||||
|
|
||||||
let bookmarks_open_to_level n 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 =
|
let newmarks =
|
||||||
map
|
map
|
||||||
(fun m -> {m with Pdfmarks.isopen = m.Pdfmarks.level < n})
|
(fun m -> {m with Pdfmarks.isopen = m.Pdfmarks.level < n})
|
||||||
|
@ -3445,7 +3445,7 @@ let stem s =
|
|||||||
let fast_write_split_pdfs
|
let fast_write_split_pdfs
|
||||||
?(names=[]) enc splitlevel original_filename sq spec main_pdf pagenums pdf_pages
|
?(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
|
iter2
|
||||||
(fun number pagenums ->
|
(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
|
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 ->
|
l when l.Pdfmarks.level = level ->
|
||||||
Some (Pdfpage.pagenumber_of_target ~fastrefnums pdf l.Pdfmarks.target)
|
Some (Pdfpage.pagenumber_of_target ~fastrefnums pdf l.Pdfmarks.target)
|
||||||
| _ -> None)
|
| _ -> None)
|
||||||
(Pdfmarks.read_bookmarks pdf))
|
(Pdfmarks.read_bookmarks ~preserve_actions:false pdf))
|
||||||
|
|
||||||
let split_at_bookmarks
|
let split_at_bookmarks
|
||||||
enc original_filename ~squeeze level spec pdf
|
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 process_specials pdf endpage filename bates batespad num page s =
|
||||||
let refnums = Pdf.page_reference_numbers pdf in
|
let refnums = Pdf.page_reference_numbers pdf in
|
||||||
let fastrefnums = hashtable_of_dictionary (combine refnums (indx refnums)) 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 =
|
let pairs =
|
||||||
Cpdfaddtext.replace_pairs marks fastrefnums pdf endpage None filename bates batespad num page
|
Cpdfaddtext.replace_pairs marks fastrefnums pdf endpage None filename bates batespad num page
|
||||||
in
|
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 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
|
let prefix = Pdfpage.shortest_unused_prefix pdf in
|
||||||
Pdfpage.add_prefix over prefix;
|
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 marks_refnumbers = Pdf.page_reference_numbers pdf in
|
||||||
let pdf = Pdfmarks.remove_bookmarks pdf in
|
let pdf = Pdfmarks.remove_bookmarks pdf in
|
||||||
let over = Pdfmarks.remove_bookmarks over 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
|
begin Pdf.remove_unreferenced pdf; Pdfwrite.pdf_to_file pdf n end
|
||||||
in
|
in
|
||||||
Pdfpage.add_prefix over (Pdfpage.shortest_unused_prefix under);
|
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, over = equalize_pages under over in
|
||||||
let under_length, over_length = Pdfpage.endpage under, Pdfpage.endpage over in
|
let under_length, over_length = Pdfpage.endpage under, Pdfpage.endpage over in
|
||||||
if under_length <> over_length then
|
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
|
let optional l = if process_struct_tree then l else [] in
|
||||||
if process_struct_tree then ensure_minimal_struct_tree pdf;
|
if process_struct_tree then ensure_minimal_struct_tree pdf;
|
||||||
Hashtbl.clear width_table_cache;
|
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
|
if marks = [] then (Pdfe.log "No bookmarks, not making table of contents\n"; pdf) else
|
||||||
let labels = Pdfpagelabels.read pdf in
|
let labels = Pdfpagelabels.read pdf in
|
||||||
let refnums = Pdf.page_reference_numbers 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
|
@ leader
|
||||||
@ optional [Cpdftype.Tag ("Link", 0)] @ labelruns @ optional [Cpdftype.EndTag]
|
@ optional [Cpdftype.Tag ("Link", 0)] @ labelruns @ optional [Cpdftype.EndTag]
|
||||||
@ [Cpdftype.EndDest; Cpdftype.NewLine])
|
@ [Cpdftype.EndDest; Cpdftype.NewLine])
|
||||||
(Pdfmarks.read_bookmarks pdf)
|
(Pdfmarks.read_bookmarks ~preserve_actions:false pdf)
|
||||||
in
|
in
|
||||||
let toc_pages, toc_tags =
|
let toc_pages, toc_tags =
|
||||||
let title =
|
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
|
let labels' = label::map (fun l -> {l with Pdfpagelabels.startpage = l.Pdfpagelabels.startpage + toc_pages_len}) labels in
|
||||||
Pdfpagelabels.write pdf labels';
|
Pdfpagelabels.write pdf labels';
|
||||||
if bookmark then
|
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 refnums = Pdf.page_reference_numbers pdf in
|
||||||
let newmark =
|
let newmark =
|
||||||
{Pdfmarks.level = 0;
|
{Pdfmarks.level = 0;
|
||||||
|
@ -50,7 +50,7 @@ let add_page_as_xobject pdf range page name =
|
|||||||
let stamp_as_xobject pdf range over =
|
let stamp_as_xobject pdf range over =
|
||||||
let prefix = Pdfpage.shortest_unused_prefix pdf in
|
let prefix = Pdfpage.shortest_unused_prefix pdf in
|
||||||
Pdfpage.add_prefix over prefix;
|
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 marks_refnumbers = Pdf.page_reference_numbers pdf in
|
||||||
let pdf = Pdfmarks.remove_bookmarks pdf in
|
let pdf = Pdfmarks.remove_bookmarks pdf in
|
||||||
let over = Pdfmarks.remove_bookmarks over in
|
let over = Pdfmarks.remove_bookmarks over in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user