sig
  type element =
      Text of char list
    | HGlue of float
    | VGlue of float
    | NewLine
    | NewPage
    | Font of string * Pdftext.font * float
    | BeginDest of Pdfdest.t
    | EndDest
    | BeginDocument
    | Tag of string * int
    | EndTag
  type t = Cpdftype.element list
  val to_string : Cpdftype.t -> string
  val font_widths : string -> Pdftext.font -> float -> float array
  val width_of_string : float array -> char list -> float
  val typeset :
    process_struct_tree:bool ->
    float ->
    float ->
    float ->
    float ->
    Pdfpaper.t ->
    Pdf.t -> Cpdftype.t -> Pdfpage.t list * (string * int) list list
  val add_artifacts : Pdfops.t list -> Pdfops.t list
end