twoup/twoup-stack now support fast/slow speed and protection
This commit is contained in:
parent
52d9a768c4
commit
5c7dcfcf30
18
cpdf.ml
18
cpdf.ml
|
@ -3139,11 +3139,19 @@ let twoup_pages_inner isstack fast pdf = function
|
||||||
Pdfops.Op_W;
|
Pdfops.Op_W;
|
||||||
Pdfops.Op_n]
|
Pdfops.Op_n]
|
||||||
in
|
in
|
||||||
let ops = Pdfops.parse_operators pdf resources' contents in
|
(* If fast, no q/Q protection and no parsing of operators. *)
|
||||||
Pdfops.stream_of_ops
|
if fast then
|
||||||
([Pdfops.Op_q] @ [Pdfops.Op_cm transform] @ clipops @ ops @ [Pdfops.Op_Q])
|
let before = Pdfops.stream_of_ops (Pdfops.Op_q::Pdfops.Op_cm transform::clipops) in
|
||||||
|
let after = Pdfops.stream_of_ops [Pdfops.Op_Q] in
|
||||||
|
[before] @ contents @ [after]
|
||||||
|
else
|
||||||
|
(* If slow, use protect from Pdfpage. *)
|
||||||
|
let ops = Pdfpage.protect pdf resources' contents @ Pdfops.parse_operators pdf resources' contents in
|
||||||
|
[Pdfops.stream_of_ops
|
||||||
|
([Pdfops.Op_q] @ [Pdfops.Op_cm transform] @ clipops @ ops @ [Pdfops.Op_Q])]
|
||||||
in
|
in
|
||||||
map2
|
List.flatten
|
||||||
|
(map2
|
||||||
(fun p ->
|
(fun p ->
|
||||||
transform_stream
|
transform_stream
|
||||||
(match Pdf.lookup_direct pdf "/CropBox" p.Pdfpage.rest with
|
(match Pdf.lookup_direct pdf "/CropBox" p.Pdfpage.rest with
|
||||||
|
@ -3151,7 +3159,7 @@ let twoup_pages_inner isstack fast pdf = function
|
||||||
| Some box -> box)
|
| Some box -> box)
|
||||||
p.Pdfpage.content)
|
p.Pdfpage.content)
|
||||||
pages
|
pages
|
||||||
(take (((if isstack then twoup_stack_transforms else twoup_transforms) h.Pdfpage.mediabox)) (length pages))
|
(take (((if isstack then twoup_stack_transforms else twoup_transforms) h.Pdfpage.mediabox)) (length pages)))
|
||||||
in
|
in
|
||||||
{Pdfpage.mediabox =
|
{Pdfpage.mediabox =
|
||||||
if isstack then
|
if isstack then
|
||||||
|
|
Loading…
Reference in New Issue