Some more things to try:
Try adding some code after the cairo_t* is created and before the Inkscape drawing code is called to draw a rectangle of a known size and check what size it prints out as. eg
cairo_set_source_rgb (cr, 0, 0, 0); cairo_rectangle (cr, 2*72, 2*72, 4*72, 4*72); cairo_stroke (cr);
This should stroke a black square 4" x 4" in size and offset 2" from the top and left sides.
You could also redirect the drawing to a PS or PDF file. eg
cairo_surface_t *surface; cairo_t *cr;
surface = cairo_pdf_surface_create ("filename.pdf", 595, 842); cr = cairo_create (surface);
and check if that works.
Some more things to try:
Try adding some code after the cairo_t* is created and before the Inkscape drawing code is called to draw a rectangle of a known size and check what size it prints out as.
eg
cairo_set_ source_ rgb (cr, 0, 0, 0);
cairo_rectangle (cr, 2*72, 2*72, 4*72, 4*72);
cairo_stroke (cr);
This should stroke a black square 4" x 4" in size and offset 2" from the top and left sides.
You could also redirect the drawing to a PS or PDF file. eg
cairo_surface_t *surface;
cairo_t *cr;
surface = cairo_pdf_ surface_ create ("filename.pdf", 595, 842);
cr = cairo_create (surface);
and check if that works.