[Xfce4-commits] <ristretto:master> Implement first rudimentary printing support
Stephan Arts
stephan at xfce.org
Wed Aug 12 12:19:13 CEST 2009
Updating branch refs/heads/master
to 77ca2890d1c29041719b07704c05dc064d88bf46 (commit)
from feebe0cf4c3df003121cb97768ef2d7e7e3f36c3 (commit)
commit 77ca2890d1c29041719b07704c05dc064d88bf46
Author: Stephan Arts <stephan at xfce.org>
Date: Mon May 18 00:38:39 2009 +0200
Implement first rudimentary printing support
ChangeLog | 4 ++++
src/main_window.c | 25 ++++++++++---------------
2 files changed, 14 insertions(+), 15 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5ff90b6..db03ec5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-05-17 Stephan Arts <stephan at xfce.org>
+
+ * src/main_window.c: Implement first rudimentary printing.
+
2009-05-16 Stephan Arts <stephan at xfce.org>
* src/main_window.c
diff --git a/src/main_window.c b/src/main_window.c
index b6e39d5..1d4fcd3 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -1181,11 +1181,15 @@ cb_rstto_main_window_print (GtkWidget *widget, RsttoMainWindow *window)
{
GtkPrintSettings *print_settings = gtk_print_settings_new ();
- g_object_set (print_settings,
- "export-filename", "test.pdf",
- NULL);
+ gtk_print_settings_set_resolution (print_settings, 300);
+
GtkPrintOperation *print_operation = gtk_print_operation_new ();
+
gtk_print_operation_set_print_settings (print_operation, print_settings);
+
+ g_object_set (print_operation,
+ "n-pages", 1,
+ NULL);
g_signal_connect (print_operation, "draw-page", G_CALLBACK (rstto_main_window_print_draw_page), window);
@@ -1199,23 +1203,14 @@ rstto_main_window_print_draw_page (GtkPrintOperation *operation,
gint page_nr,
RsttoMainWindow *window)
{
- g_debug ("%s", __FUNCTION__);
RsttoImage *image = rstto_navigator_iter_get_image (window->priv->iter);
GdkPixbuf *pixbuf = rstto_image_get_pixbuf (image);
- guchar *data = gdk_pixbuf_get_pixels (pixbuf);
- gint width = gdk_pixbuf_get_width (pixbuf);
- gint height = gdk_pixbuf_get_height (pixbuf);
- gint rowstride = gdk_pixbuf_get_rowstride (pixbuf);
-
- cairo_surface_t *surface = cairo_image_surface_create_for_data (data,
- CAIRO_FORMAT_RGB24,
- width,
- height,
- rowstride);
cairo_t *context = gtk_print_context_get_cairo_context (print_context);
- cairo_set_source_surface (context, surface, 0, 0);
+ gdk_cairo_set_source_pixbuf (context, pixbuf, 0, 0);
+ //cairo_scale (context, 1000, 1000);
+ cairo_paint (context);
}
More information about the Xfce4-commits
mailing list