g_warning ("Unable to write to the output file.");
return;
}
-
+
priv->surface = cairo_svg_surface_create (new_out_filename, width, height);
}
-
+
if (cairo_surface_status (priv->surface) == CAIRO_STATUS_SUCCESS)
{
if (priv->output_type == RPTP_OUTPUT_PNG || priv->output_type == RPTP_OUTPUT_SVG)
{
priv->cr = cairo_create (priv->surface);
}
-
+
if (priv->output_type != RPTP_OUTPUT_PNG && priv->output_type != RPTP_OUTPUT_SVG && npage == 0)
{
cairo_surface_destroy (priv->surface);
}
-
+
if (cairo_status (priv->cr) == CAIRO_STATUS_SUCCESS)
{
rpt_print_page (rpt_print, cur);
-
+
if (priv->output_type == RPTP_OUTPUT_PNG)
{
gchar *new_out_filename = rpt_print_new_numbered_filename (priv->output_filename, npage + 1);
cairo_surface_write_to_png (priv->surface,
- new_out_filename);
+ new_out_filename);
cairo_surface_destroy (priv->surface);
cairo_destroy (priv->cr);
}
{
cairo_show_page (priv->cr);
}
-
+
if (priv->output_type == RPTP_OUTPUT_SVG)
{
cairo_surface_destroy (priv->surface);
{
/* TO DO */
g_warning ("Cairo status not sucess: %d", cairo_status (priv->cr));
- }
+ }
}
else
{
{
/* TO DO */
}
-
+
cur = cur->next;
}
-
+
if (priv->cr != NULL)
{
cairo_destroy (priv->cr);
/* clipping region for page's margins */
cairo_rectangle (priv->cr,
margin_left,
- margin_top,
- width - margin_left - margin_right,
- height - margin_top - margin_bottom);
+ margin_top,
+ width - margin_left - margin_right,
+ height - margin_top - margin_bottom);
cairo_clip (priv->cr);
while (cur != NULL)
else
{
new_out_filename = g_strdup_printf ("%s%d%s",
- g_strndup (filename, strlen (filename) - strlen (filename_ext)),
- number,
- filename_ext);
+ g_strndup (filename, strlen (filename) - strlen (filename_ext)),
+ number,
+ filename_ext);
}
return new_out_filename;
rpt_print_get_xml_page_attributes (rpt_print, priv->pages->nodeTab[page_nr]);
paper_size = gtk_paper_size_new_custom ("reptool",
"RepTool",
- priv->width,
- priv->height,
+ rpt_common_value_to_points (priv->unit, priv->width),
+ rpt_common_value_to_points (priv->unit, priv->height),
GTK_UNIT_POINTS);
gtk_page_setup_set_paper_size (setup, paper_size);
priv->cr = gtk_print_context_get_cairo_context (context);
priv->gtk_print_context = context;
+ cairo_scale (priv->cr,
+ gtk_print_context_get_width (priv->gtk_print_context) / rpt_common_value_to_points (priv->unit, priv->width),
+ gtk_print_context_get_height (priv->gtk_print_context) / rpt_common_value_to_points (priv->unit, priv->height));
+
if (priv->width != 0 && priv->height != 0)
{
rpt_print_page (rpt_print, priv->pages->nodeTab[page_nr]);
{
if (priv->page_header != NULL)
{
- rpt_report_rptprint_section (rpt_report, xpage, &cur_y, RPTREPORT_SECTION_PAGE_HEADER, row);
+ rpt_report_rptprint_section (rpt_report, xpage, &cur_y, RPTREPORT_SECTION_PAGE_HEADER, row - 1);
}
cur_y = priv->page->margin_top;
if (priv->db != NULL && priv->db->gda_datamodel != NULL)
{
col = gda_data_model_get_column_index (priv->db->gda_datamodel, field_name);
-
+
if (col > -1)
{
+ const GValue *gval;
+
error = NULL;
- ret = gda_value_stringify (gda_data_model_get_value_at (priv->db->gda_datamodel, col, row, &error));
+ gval = gda_data_model_get_value_at (priv->db->gda_datamodel, col, row, &error);
+ if (error != NULL)
+ {
+ g_warning ("Error on retrieving field %s value: %s.", field_name, error->message != NULL ? error->message : "no details");
+ }
+ else
+ {
+ if (gda_value_is_null (gval))
+ {
+ ret = g_strdup ("");
+ }
+ else
+ {
+ ret = (gchar *)gda_value_stringify (gval);
+ if (ret == NULL)
+ {
+ ret = g_strdup ("");
+ }
+ }
+ }
}
}
{
ret = rpt_report_ask_field (rpt_report, field_name, row);
}
+ if (ret == NULL)
+ {
+ ret = g_strdup ("{ERROR}");
+ }
return ret;
}
{
ret = g_strdup (ret);
}
+ else
+ {
+ ret = g_strdup ("{ERROR}");
+ }
return ret;
}