2012-06-21 2 views
1

Скажем, я сделать поверхность, как это:Каир: Обрезка поверхности PDF?

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

Это большая поверхность! Причиной этого является то, что я не знаю размер моего рисунка, пока не заработал его (это сложный график, сгенерированный на лету). После того, как я построил его, кажется, довольно тривиально обрезать поверхность. Итак, как мне это сделать?

ответ

2

Розыгрыш к поверхности записи вместо поверхности PDF. Затем поверхности записи можно нанести на меньшую поверхность PDF. Кроме того, cairo поддерживает неограниченные поверхности записи, поэтому это будет даже работать, когда ваш чертеж будет шире/выше 40k пикселей.

+0

Спасибо Ули, отлично работал. –

Смежные вопросы