mirror of
https://github.com/johnwhitington/cpdf-source.git
synced 2025-06-05 22:09:39 +02:00
-center-to-fit done
This commit is contained in:
@@ -1219,7 +1219,7 @@ let setstretch s =
|
||||
setop Stretch ();
|
||||
args.coord <- s
|
||||
|
||||
let setcenter s =
|
||||
let setcentertofit s =
|
||||
setop CenterToFit ();
|
||||
args.coord <- s
|
||||
|
||||
@@ -2102,7 +2102,7 @@ let specs =
|
||||
Arg.String setstretch,
|
||||
" -stretch \"x y\" scales without preserving aspect ratio");
|
||||
("-center-to-fit",
|
||||
Arg.String setcenter,
|
||||
Arg.String setcentertofit,
|
||||
" -center-to-fit \"x y\" centers pages on page size (x, y)");
|
||||
("-scale-contents",
|
||||
Arg.Float setscalecontents,
|
||||
|
17
cpdfpage.ml
17
cpdfpage.ml
@@ -573,12 +573,6 @@ let crop_pdf ?(box="/CropBox") xywhlist pdf range =
|
||||
|
||||
(* Centre page content (crop box) on given page size, with no scaling. *)
|
||||
let center_to_fit sxsylist pdf range =
|
||||
let list4 = map (fun (x, y) -> (0., 0., x, y)) sxsylist in
|
||||
let pdf = set_mediabox list4 pdf range in
|
||||
let pdf = crop_pdf list4 pdf range in
|
||||
let pdf = remove_bleed_pdf pdf range in
|
||||
let pdf = remove_art_pdf pdf range in
|
||||
let pdf = remove_bleed_pdf pdf range in
|
||||
let dxdylist =
|
||||
let tx, ty = hd sxsylist in
|
||||
map
|
||||
@@ -590,10 +584,17 @@ let center_to_fit sxsylist pdf range =
|
||||
| Some r -> r
|
||||
| None -> page.Pdfpage.mediabox)
|
||||
in
|
||||
(tx -. (maxx -. minx)) /. 2., (ty -. (maxy -. miny)) /. 2.)
|
||||
(~-.((tx -. (maxx -. minx)) /. 2.),
|
||||
~-.((ty -. (maxy -. miny)) /. 2.)))
|
||||
(Pdfpage.pages_of_pagetree pdf)
|
||||
in
|
||||
shift_boxes dxdylist pdf range
|
||||
let list4 = map (fun (x, y) -> (0., 0., x, y)) sxsylist in
|
||||
let pdf = set_mediabox list4 pdf range in
|
||||
let pdf = crop_pdf list4 pdf range in
|
||||
let pdf = remove_bleed_pdf pdf range in
|
||||
let pdf = remove_art_pdf pdf range in
|
||||
let pdf = remove_bleed_pdf pdf range in
|
||||
shift_boxes dxdylist pdf range
|
||||
|
||||
(* Scale to fit page of size x * y *)
|
||||
let scale_to_fit_pdf ?(fast=false) position input_scale xylist op pdf range =
|
||||
|
Reference in New Issue
Block a user