2022-09-20 15:54:45 +02:00
|
|
|
(* Embed a TrueType font for the given set of unicode codepoints in the given
|
2022-10-13 18:00:33 +02:00
|
|
|
encoding, adding the fontfiles to the PDF and returning a list of font objects,
|
|
|
|
together with a unicode codepoint --> (font number in list, charcode) table *)
|
|
|
|
|
2022-10-19 16:34:19 +02:00
|
|
|
(* FIXME: Really we want to create an interactive fontpack which creates fonts
|
|
|
|
when needed, but delays the actual production of the subset truetype data
|
|
|
|
until later. This will mean we don't need to pre-calculate the USED set. For
|
|
|
|
now, we just hack Cpdftoc, cpdfaddtext and cpdftextofpdf to pre-calculate
|
|
|
|
the subset. *)
|
|
|
|
|
2022-10-13 18:00:33 +02:00
|
|
|
type t = Pdftext.font list * (int, int * int) Hashtbl.t
|
2022-10-10 17:08:07 +02:00
|
|
|
|
2022-10-18 20:13:02 +02:00
|
|
|
type cpdffont =
|
|
|
|
PreMadeFontPack of t
|
2022-10-19 14:48:13 +02:00
|
|
|
| EmbedInfo of {fontfile : Pdfio.bytes; fontname : string; encoding : Pdftext.encoding}
|
2022-10-19 17:45:52 +02:00
|
|
|
| ExistingNamedFont
|
2022-10-18 20:13:02 +02:00
|
|
|
|
2023-02-20 13:56:59 +01:00
|
|
|
val fontpack_of_standardfont : Pdftext.font -> t
|
|
|
|
|
2022-10-19 15:47:20 +02:00
|
|
|
val get_char : t -> int -> (int * int * Pdftext.font) option
|
|
|
|
|
2022-09-12 18:02:48 +02:00
|
|
|
val embed_truetype :
|
2022-09-20 15:54:45 +02:00
|
|
|
Pdf.t -> fontfile:Pdfio.bytes -> fontname:string -> codepoints:int list ->
|
2022-10-13 18:00:33 +02:00
|
|
|
encoding:Pdftext.encoding -> t
|