psSurfaceCreateForStream

fncairo.surface.Surface psSurfaceCreateForStream(cairo.types.WriteFunc writeFunc, double widthInPoints, double heightInPoints)

Creates a PostScript surface of the specified size in points to be written incrementally to the stream represented by write_func and closure. See [cairo.global.psSurfaceCreate] for a more convenient way to simply direct the PostScript output to a named file.

Note that the size of individual pages of the PostScript output can vary. See [cairo.global.psSurfaceSetSize].

Parameters

writeFunca #cairo_write_func_t to accept the output data, may be null to indicate a no-op write_func. With a no-op write_func, the surface may be queried or used as a source without generating any temporary files.
widthInPointswidth of the surface, in points (1 point == 1/72.0 inch)
heightInPointsheight of the surface, in points (1 point == 1/72.0 inch)

Returns

a pointer to the newly created surface. The caller

owns the surface and should call [cairo.surface.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 [cairo.surface.Surface.status] to check for this.