This commit is contained in:
John Whitington 2023-04-28 15:35:05 +01:00
parent efbd794d35
commit a2ed069fe2
3 changed files with 17 additions and 0 deletions

View File

@ -2054,6 +2054,7 @@ let addsopacity f =
addop (Cpdfdraw.SOpacity f)
let addtext s =
addop (Cpdfdraw.Font ("/F0", 36.));
addop (Cpdfdraw.Text s)
let addblock s =

View File

@ -39,6 +39,7 @@ type drawops =
| NewPage
| Opacity of float
| SOpacity of float
| Font of string * float
| Text of string
| Block of unit (* to fix *)
| URL of string
@ -57,6 +58,10 @@ let fresh_gs_name () =
gsnum += 1;
"/gs" ^ string_of_int !gsnum
let current_url = ref None
let fresh_font_name () = "/F0"
let rec ops_of_drawop pdf = function
| Push -> [Pdfops.Op_q]
| Pop -> [Pdfops.Op_Q]
@ -107,6 +112,16 @@ let rec ops_of_drawop pdf = function
let n = fresh_gs_name () in
Hashtbl.add gss n (Pdf.Dictionary [("/CA", Pdf.Real v)]);
[Pdfops.Op_gs n]
| URL s ->
current_url := Some s;
[]
| EndURL ->
current_url := None;
[]
| Font (s, f) ->
[Pdfops.Op_Tf (s, f)]
| Text s ->
[Pdfops.Op_BT; Pdfops.Op_Tj s; Pdfops.Op_ET] (* FIXME: convert to actual char codes based on font in use, obvs *)
and ops_of_drawops pdf drawops =
flatten (map (ops_of_drawop pdf) drawops)

View File

@ -37,6 +37,7 @@ type drawops =
| NewPage
| Opacity of float
| SOpacity of float
| Font of string * float
| Text of string
| Block of unit (* to fix *)
| URL of string