sig
  type surface = [ `Any | `PDF ] Cairo.surface
  val surface_create_for_channel :
    Stdlib.out_channel ->
    width_in_points:float -> height_in_points:float -> Cairo_pdf.surface
  external surface_create_for_stream :
    (string -> unit) ->
    width_in_points:float -> height_in_points:float -> Cairo_pdf.surface
    = "ml_cairo_pdf_surface_create_for_stream"
  external set_size :
    [> `PDF ] Cairo.surface ->
    width_in_points:float -> height_in_points:float -> unit
    = "ml_cairo_pdf_surface_set_size"
end