a filename for the PDF output (must be writable), NULL may be used to specify no output. This will generate a PDF surface that may be queried and used as a source, without generating a temporary file.
width of the surface, in points (1 point == 1/72.0 inch)
height of the surface, in points (1 point == 1/72.0 inch)
a pointer to the newly created surface. The caller owns the surface and should call Surface.destroy when done with it. This function always returns a valid pointer, but it will return a pointer to a "nil" surface if an error such as out of memory occurs. You can use Surface.status to check for this.
Creates a PDF surface of the specified size in points to be written to filename. Since 1.2