+ gnome_print_moveto (job->priv->print_ctxt,
+ x + (gdouble) logical_rect.x / PANGO_SCALE,
+ baseline);
+ gnome_print_pango_layout_line (job->priv->print_ctxt,
+ pango_layout_iter_get_line (iter));
+
+ current_line++;
+ }
+ while (pango_layout_iter_next_line (iter));
+
+ job->priv->available_height -= max - page_skip;
+ *y -= max - page_skip;
+
+ pango_layout_iter_free (iter);
+ g_object_unref (layout);
+ } else {
+ gint max_height = job->priv->available_height;
+ gint image_height = gdk_pixbuf_get_height(image);
+ gint image_width = gdk_pixbuf_get_width(image);
+ gint scaled_height = 0, scaled_width = 0;
+ GdkPixbuf *scaled_image = NULL;
+ image_viewer_get_resized_size(image_width,
+ image_height,
+ job->priv->text_width,
+ job->priv->text_height,
+ &scaled_width, &scaled_height);
+
+ if (scaled_height > max_height) {
+ /* next page */
+ return 0;
+ } else {
+ scaled_image = gdk_pixbuf_scale_simple
+ (image, scaled_width, scaled_height,
+ GDK_INTERP_BILINEAR);
+
+ gnome_print_moveto(job->priv->print_ctxt,
+ x, (gdouble)*y);
+ gnome_print_gsave(job->priv->print_ctxt);
+ gnome_print_translate(job->priv->print_ctxt,
+ x, *y - scaled_height);
+ gnome_print_scale(job->priv->print_ctxt,
+ scaled_width,
+ scaled_height);
+
+ if (gdk_pixbuf_get_has_alpha(image))
+ gnome_print_rgbaimage (job->priv->print_ctxt,
+ gdk_pixbuf_get_pixels (scaled_image),
+ gdk_pixbuf_get_width (scaled_image),
+ gdk_pixbuf_get_height (scaled_image),
+ gdk_pixbuf_get_rowstride (scaled_image));
+ else
+ gnome_print_rgbimage (job->priv->print_ctxt,
+ gdk_pixbuf_get_pixels (scaled_image),
+ gdk_pixbuf_get_width (scaled_image),
+ gdk_pixbuf_get_height (scaled_image),
+ gdk_pixbuf_get_rowstride (scaled_image));
+ g_object_unref(scaled_image);
+ gnome_print_grestore(job->priv->print_ctxt);
+
+ job->priv->available_height -= scaled_height;
+ *y -= scaled_height;
+ return -1;
+
+ }
+ }