Set up for Stamp/process_struct_trees

This commit is contained in:
John Whitington 2025-03-10 16:15:45 +00:00
parent b0e641fa5a
commit f82c58e22f
3 changed files with 7 additions and 6 deletions

View File

@ -4544,7 +4544,7 @@ let go () =
let range = parse_pagespec_allow_empty pdf (get_pagespec ()) in let range = parse_pagespec_allow_empty pdf (get_pagespec ()) in
let pdf = let pdf =
Cpdfpage.stamp Cpdfpage.stamp
args.relative_to_cropbox args.position args.topline args.midline args.fast ~process_struct_tree:args.process_struct_trees args.relative_to_cropbox args.position args.topline args.midline args.fast
args.scale_stamp_to_fit true range overpdf pdf args.scale_stamp_to_fit true range overpdf pdf
in in
write_pdf false pdf write_pdf false pdf
@ -4558,7 +4558,7 @@ let go () =
let range = parse_pagespec_allow_empty pdf (get_pagespec ()) in let range = parse_pagespec_allow_empty pdf (get_pagespec ()) in
let pdf = let pdf =
Cpdfpage.stamp Cpdfpage.stamp
args.relative_to_cropbox args.position args.topline args.midline args.fast ~process_struct_tree:args.process_struct_trees args.relative_to_cropbox args.position args.topline args.midline args.fast
args.scale_stamp_to_fit false range underpdf pdf args.scale_stamp_to_fit false range underpdf pdf
in in
write_pdf false pdf write_pdf false pdf
@ -4569,6 +4569,7 @@ let go () =
warn_prerotate (parse_pagespec overpdf "all") overpdf; warn_prerotate (parse_pagespec overpdf "all") overpdf;
write_pdf false write_pdf false
(Cpdfpage.combine_pages (Cpdfpage.combine_pages
~process_struct_tree:args.process_struct_trees
args.fast args.fast
(prerotate (parse_pagespec underpdf "all") underpdf) (prerotate (parse_pagespec underpdf "all") underpdf)
(prerotate (parse_pagespec overpdf "all") overpdf) (prerotate (parse_pagespec overpdf "all") overpdf)

View File

@ -803,7 +803,7 @@ let do_stamp relative_to_cropbox fast position topline midline scale_to_fit isov
Pdfpage.resources = Pdfpage.resources =
Pdfpage.combine_pdf_resources pdf u.Pdfpage.resources o.Pdfpage.resources} Pdfpage.combine_pdf_resources pdf u.Pdfpage.resources o.Pdfpage.resources}
let stamp relative_to_cropbox position topline midline fast scale_to_fit isover range over pdf = let stamp ~process_struct_tree relative_to_cropbox position topline midline fast scale_to_fit isover range over pdf =
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 pdf in
@ -875,7 +875,7 @@ let equalize_pages under over =
else else
under, over under, over
let combine_pages fast under over scaletofit swap equalize = let combine_pages ~process_struct_tree fast under over scaletofit swap equalize =
let debug_combine_pages = false in let debug_combine_pages = false in
let debug_pdf pdf n = let debug_pdf pdf n =
if debug_combine_pages then if debug_combine_pages then

View File

@ -91,12 +91,12 @@ the same number of pages as the shorter file. If [scaletofit] is true, the
[over] file will be scaled to fit. If [swap] is true, [over] and [under] are [over] file will be scaled to fit. If [swap] is true, [over] and [under] are
swapped. If [fast] is true, the PDFs are assumed to be well-formed and no swapped. If [fast] is true, the PDFs are assumed to be well-formed and no
fixes are done. *) fixes are done. *)
val combine_pages : bool -> Pdf.t -> Pdf.t -> bool -> bool -> bool -> Pdf.t val combine_pages : process_struct_tree:bool -> bool -> Pdf.t -> Pdf.t -> bool -> bool -> bool -> Pdf.t
(** [stamp relative_to_cropbox position topline midline fast scale_to_fit isover range over pdf] stamps the first page of (** [stamp relative_to_cropbox position topline midline fast scale_to_fit isover range over pdf] stamps the first page of
[over] over each page of the PDF. The arguments have the same meaning as in [over] over each page of the PDF. The arguments have the same meaning as in
[combine_pages]. *) [combine_pages]. *)
val stamp : bool -> Cpdfposition.position -> bool -> bool -> bool -> bool -> bool -> int list -> Pdf.t -> Pdf.t -> Pdf.t val stamp : process_struct_tree:bool -> bool -> Cpdfposition.position -> bool -> bool -> bool -> bool -> bool -> int list -> Pdf.t -> Pdf.t -> Pdf.t
(** {2 Page geometry} *) (** {2 Page geometry} *)