При создании векторной графики для PDF-файлов я использую одну из функций «create» для рендеринга PDF, например cairo_pdf_surface_create_for_stream
. Сигнатура этой функции:Как установить DPI в cairographics?
cairo_surface_t * cairo_pdf_surface_create_for_stream (cairo_write_func_t write_func,
void *closure,
double width_in_points,
double height_in_points);
Теперь я могу установить размер поверхности в точках, но размер одной точки, казалось бы, жёстко. в описании сказано:
width_in_points: ширина поверхности, в точках (1 балл == 1/72,0 дюйма)
height_in_points: высота поверхности, в точках (1 балл == 1/72,0 дюйм)
как вы можете видеть, 1pt = 1/72" (72 точек на дюйм). Но как я могу изменить, что установка?
я мог что-то фактор в размер, при использовании другого разрешения и таким образом, мне кажется, что это самая худшая практика.
Дело в том, что мне нужно по спецификации возможность устанавливать разрешение в dpi. При создании PDF-файлов вы можете установить параметр dpi в таких вещах, как Inkscape и т. Д. (Разрешение для растеризации). – polemon
Но PDF-файлы не растрированы и поэтому не имеют такого разрешения! Однако, если вы рисуете, какой каир не может выразить в PDF-файлах, он будет использовать резервное разрешение, которое вы можете установить с помощью cairo_surface_set_fallback_resolution (см. Ответ от john358). Итак, что именно вы хотите изменить? –