Added -topline

This commit is contained in:
John Whitington 2015-01-20 15:50:36 +00:00
parent e53e49bc96
commit 45603fc725
4 changed files with 29 additions and 5 deletions

View File

@ -2,6 +2,7 @@ Version 2.2
o -keep-l keeps existing linearization status
o -remove-dict-entry te remove the contents of a dictionary entry
o -topline in addition to -midline
Version 2.1 (November 2014)

15
cpdf.ml
View File

@ -1696,7 +1696,8 @@ let unescape_string s =
let
addtexts metrics linewidth outline fast fontname font bates colour position linespacing
fontsize underneath text pages orientation cropbox opacity justification midline filename pdf
fontsize underneath text pages orientation cropbox opacity justification
midline topline filename pdf
=
(*flprint "addtexts:\n";
iter (Printf.printf "%C ") (explode text);
@ -1749,6 +1750,18 @@ let
| _ ->
ops_baseline_adjustment := 0.
end
else
if topline then
begin match font with
| Some font ->
let baseline_adjustment =
(fontsize *. float (Pdfstandard14.baseline_adjustment font) *. 2.0) /. 1000.
in
ops_baseline_adjustment := baseline_adjustment;
voffset := !voffset +. baseline_adjustment
| _ ->
ops_baseline_adjustment := 0.
end
else
ops_baseline_adjustment := 0.;
iter

View File

@ -292,7 +292,7 @@ val calculate_position :
(** Call [add_texts metrics linewidth outline fast fontname font bates colour
position linespacing fontsize underneath text pages orientation
relative_to_cropbox midline_adjust filename pdf]. For details see cpdfmanual.pdf *)
relative_to_cropbox midline_adjust topline filename pdf]. For details see cpdfmanual.pdf *)
val addtexts :
bool -> (*metrics*)
float -> (*linewidth*)
@ -313,6 +313,7 @@ val addtexts :
float ->(*opacity*)
justification ->(*justification*)
bool ->(*midline adjust?*)
bool ->(*topline adjust?*)
string ->(*filename*)
Pdf.t ->(*pdf*)
Pdf.t

View File

@ -1,9 +1,9 @@
(* cpdf command line tools *)
let demo = false
let demo = true
let noncomp = false
let major_version = 2
let minor_version = 2
let version_date = "(build of 7th January 2015)"
let version_date = "(build of 20th January 2015)"
open Pdfutil
open Pdfio
@ -316,6 +316,7 @@ type args =
mutable underneath : bool;
mutable linespacing : float;
mutable midline : bool;
mutable topline : bool;
mutable justification : Cpdf.justification;
mutable bates : int;
mutable prerotate : bool;
@ -394,6 +395,7 @@ let args =
underneath = false;
linespacing = 1.;
midline = false;
topline = false;
justification = Cpdf.LeftJustify;
bates = 0;
prerotate = false;
@ -472,6 +474,7 @@ let reset_arguments () =
args.underneath <- false;
args.linespacing <- 1.;
args.midline <- false;
args.topline <- false;
args.justification <- Cpdf.LeftJustify;
args.bates <- 0;
args.prerotate <- false;
@ -1127,6 +1130,9 @@ let setlinespacing f =
let setmidline () =
args.midline <- true
let settopline () =
args.topline <- true
let setscaletofitscale f =
args.scale <- f
@ -1640,6 +1646,9 @@ and specs =
("-midline",
Arg.Unit setmidline,
" Adjust text to midline rather than baseline");
("-topline",
Arg.Unit settopline,
" Adjust text to topline rather than baseline");
("-relative-to-cropbox",
Arg.Unit setrelativetocropbox,
" Add text relative to Crop Box not Media Box");
@ -3458,7 +3467,7 @@ let go () =
false args.linewidth args.outline args.fast args.fontname font args.bates
args.color args.position args.linespacing args.fontsize
args.underneath text range args.orientation args.relative_to_cropbox args.opacity
args.justification args.midline filename pdf)
args.justification args.midline args.topline filename pdf)
| Some RemoveText ->
let pdf = get_single_pdf args.op false in
let range = parse_pagespec pdf (get_pagespec ()) in