handle = cairo.PDFSurface(filename$, width_in_points, height_in_points)
filename$.
This function returns a handle to the newly created surface. The caller owns the surface and should call csurface:Free() when done with it.
This function always returns a valid handle, but it will return a handle to a "nil" surface if an error such as out of memory occurs. You can use csurface:Status() to check for this.