mirror of
https://github.com/johnwhitington/cpdf-source.git
synced 2025-03-12 01:20:17 +01:00
more
This commit is contained in:
parent
51533b2652
commit
9c19743e27
18
cpdf.ml
18
cpdf.ml
@ -2809,6 +2809,7 @@ let impose_transforms fx fy columns rtl btt center margin spacing linewidth medi
|
|||||||
let x = int_of_float fx in
|
let x = int_of_float fx in
|
||||||
let y = int_of_float fy in
|
let y = int_of_float fy in
|
||||||
let final_full_cols = !len mod x in
|
let final_full_cols = !len mod x in
|
||||||
|
let final_full_rows = !len mod y in
|
||||||
let order row col =
|
let order row col =
|
||||||
((if btt then y - row - 1 else row), (if rtl then x - col - 1 else col))
|
((if btt then y - row - 1 else row), (if rtl then x - col - 1 else col))
|
||||||
in
|
in
|
||||||
@ -2816,9 +2817,14 @@ let impose_transforms fx fy columns rtl btt center margin spacing linewidth medi
|
|||||||
for col = 0 to x - 1 do
|
for col = 0 to x - 1 do
|
||||||
if center && !len < y then if !cent_extra_y = 0. then cent_extra_y := ~-.(height *. float_of_int (y - !len)) /. 2.;
|
if center && !len < y then if !cent_extra_y = 0. then cent_extra_y := ~-.(height *. float_of_int (y - !len)) /. 2.;
|
||||||
for row = y - 1 downto 0 do
|
for row = y - 1 downto 0 do
|
||||||
|
let original_row = row in
|
||||||
let row, col = order row col in
|
let row, col = order row col in
|
||||||
if !len > 0 then addtr x y row col (width *. float_of_int col) (height *. float_of_int row);
|
let adjusted_row =
|
||||||
len := !len - 1
|
let final_empty_rows = y - final_full_rows in
|
||||||
|
if center && !len <= final_full_rows then original_row + (y - 1 - 1 - (final_empty_rows / 2)) else original_row
|
||||||
|
in
|
||||||
|
if !len > 0 then addtr x y adjusted_row col (width *. float_of_int col) (height *. float_of_int row);
|
||||||
|
len := !len - 1
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
@ -2831,8 +2837,8 @@ let impose_transforms fx fy columns rtl btt center margin spacing linewidth medi
|
|||||||
let final_empty_cols = x - final_full_cols in
|
let final_empty_cols = x - final_full_cols in
|
||||||
if center && !len <= final_full_cols then original_col + (x - 1 - 1 - (final_empty_cols / 2)) else original_col
|
if center && !len <= final_full_cols then original_col + (x - 1 - 1 - (final_empty_cols / 2)) else original_col
|
||||||
in
|
in
|
||||||
if !len > 0 then addtr x y row adjusted_col (width *. float_of_int col) (height *. float_of_int row);
|
if !len > 0 then addtr x y row adjusted_col (width *. float_of_int col) (height *. float_of_int row);
|
||||||
len := !len - 1
|
len := !len - 1
|
||||||
done
|
done
|
||||||
done;
|
done;
|
||||||
map (make_margin output_mediabox margin) (rev !trs)
|
map (make_margin output_mediabox margin) (rev !trs)
|
||||||
@ -2909,7 +2915,7 @@ let impose ~x ~y ~fit ~columns ~rtl ~btt ~center ~margin ~spacing ~linewidth ~fa
|
|||||||
if across < 1 || down < 1 then error "Not even a single page would fit." else
|
if across < 1 || down < 1 then error "Not even a single page would fit." else
|
||||||
let excess_hspace = x -. float_of_int across *. w in
|
let excess_hspace = x -. float_of_int across *. w in
|
||||||
let excess_vspace = y -. float_of_int down *. h in
|
let excess_vspace = y -. float_of_int down *. h in
|
||||||
Printf.printf "across = %i, down =%i, excess_hspace = %f, excess_hspace = %f\n" across down excess_hspace excess_vspace;
|
(*Printf.printf "across = %i, down =%i, excess_hspace = %f, excess_hspace = %f\n" across down excess_hspace excess_vspace;*)
|
||||||
(across * down,
|
(across * down,
|
||||||
across,
|
across,
|
||||||
down,
|
down,
|
||||||
@ -2951,7 +2957,7 @@ let twoup_stack fast pdf =
|
|||||||
let all = ilist 1 (Pdfpage.endpage pdf) in
|
let all = ilist 1 (Pdfpage.endpage pdf) in
|
||||||
upright ~fast all (rotate_pdf ~-90 pdf all)
|
upright ~fast all (rotate_pdf ~-90 pdf all)
|
||||||
|
|
||||||
(* Legacy -two-up. Rotate the pages and shrinks them so as to fit 2x1 on a page the same size. *)
|
(* Legacy -two-up. Rotate the pages and shrink them so as to fit 2x1 on a page the same size. *)
|
||||||
let twoup fast pdf =
|
let twoup fast pdf =
|
||||||
let firstpage = hd (Pdfpage.pages_of_pagetree pdf) in
|
let firstpage = hd (Pdfpage.pages_of_pagetree pdf) in
|
||||||
let width, height =
|
let width, height =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user