开罗:裁剪PDF表面?

时间:2012-06-21 22:30:34

标签: c++ pdf cairo

让我说我做了一个这样的表面:

cairo_surface_t* surface = cairo_pdf_surface_create("pdffile.pdf", 40000, 40000);
cairo_t* cr = cairo_create(surface);

这是一个很大的表面!这样做的原因是,在我绘制它之前,我不知道绘图的大小(这是一个复杂的图形,即时生成)。在我绘制之后,裁剪表面看起来非常简单。那我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

绘制到记录表面而不是PDF表面。然后可以将记录表面绘制到较小的PDF表面。此外,cairo支持无界记录表面,因此当您的绘图宽度/高于40k像素时,这甚至可以工作。