2 * render a PDF to GDKSplashOutputDev
4 * Copyright 2004 Red Hat, Inc.
12 #include <GlobalParams.h>
14 #include <ErrorCodes.h>
15 #include "GDKSplashOutputDev.h"
21 GtkWidget *drawing_area;
22 GDKSplashOutputDev *out;
27 drawing_area_expose (GtkWidget *drawing_area,
28 GdkEventExpose *event,
31 View *v = (View*) data;
33 GdkRectangle document;
36 gdk_window_clear (drawing_area->window);
40 document.width = v->out->getBitmapWidth();
41 document.height = v->out->getBitmapHeight();
43 if (gdk_rectangle_intersect (&document, &event->area, &draw))
45 v->out->redraw (draw.x, draw.y,
48 draw.width, draw.height);
58 GooString *filename_g;
63 filename_g = new GooString (filename);
66 newDoc = new PDFDoc(filename_g, 0, 0);
72 err = newDoc->getErrorCode();
81 v->out->startDoc(v->doc->getXRef());
83 v->doc->displayPage (v->out, 1, 72, 72, 0, gTrue, gTrue);
85 w = v->out->getBitmapWidth();
86 h = v->out->getBitmapHeight();
88 gtk_widget_set_size_request (v->drawing_area, w, h);
94 gtk_widget_show (v->window);
98 redraw_callback (void *data)
100 View *v = (View*) data;
102 gtk_widget_queue_draw (v->drawing_area);
110 GtkWidget *drawing_area;
113 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
115 drawing_area = gtk_drawing_area_new ();
117 sw = gtk_scrolled_window_new (NULL, NULL);
119 gtk_container_add (GTK_CONTAINER (window), sw);
120 gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), drawing_area);
122 gtk_widget_show_all (sw);
124 v = g_new0 (View, 1);
127 v->drawing_area = drawing_area;
129 v->out = new GDKSplashOutputDev (gtk_widget_get_screen (window),
130 redraw_callback, (void*) v);
133 g_signal_connect (drawing_area,
135 G_CALLBACK (drawing_area_expose),
142 main (int argc, char *argv [])
147 gtk_init (&argc, &argv);
149 globalParams = new GlobalParams("/etc/xpdfrc");
150 globalParams->setupBaseFonts(NULL);
159 err = view_load (v, argv[i]);
162 g_printerr ("Error loading document!\n");