1

假设我制作了这样的表面:

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

这是一个很大的表面!这样做的原因是我不知道我的绘图的大小,直到我绘制它(这是一个复杂的图表,动态生成)。在我绘制它之后,裁剪表面似乎很简单。那么我该怎么做呢?

4

1 回答 1

2

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

于 2012-06-22T21:15:52.583 回答