开罗:裁剪 PDF 表面

Cairo: Cropping a PDF Surface?

本文关键字:表面 PDF 裁剪 开罗      更新时间:2023-10-16

假设我做了一个这样的表面:

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

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

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