2 * render a PDF to GDKSplashOutputDev
4 * Copyright 2004 Red Hat, Inc.
13 #include "gpdf-g-switch.h"
15 #include "gpdf-g-switch.h"
17 #include "GlobalParams.h"
18 #include "GDKSplashOutputDev.h"
20 #include "ErrorCodes.h"
26 GtkWidget *drawing_area;
27 GDKSplashOutputDev *out;
32 drawing_area_expose (GtkWidget *drawing_area,
33 GdkEventExpose *event,
36 View *v = (View*) data;
38 GdkRectangle document;
41 gdk_window_clear (drawing_area->window);
45 document.width = v->out->getBitmapWidth();
46 document.height = v->out->getBitmapHeight();
48 if (gdk_rectangle_intersect (&document, &event->area, &draw))
50 v->out->redraw (draw.x, draw.y,
53 draw.width, draw.height);
68 filename_g = new GString (filename);
71 newDoc = new PDFDoc(filename_g, 0, 0);
77 err = newDoc->getErrorCode();
86 v->out->startDoc(v->doc->getXRef());
88 v->doc->displayPage (v->out, 1, 72, 72, 0, gTrue, gTrue);
90 w = v->out->getBitmapWidth();
91 h = v->out->getBitmapHeight();
93 gtk_widget_set_size_request (v->drawing_area, w, h);
99 gtk_widget_show (v->window);
103 redraw_callback (void *data)
105 View *v = (View*) data;
107 gtk_widget_queue_draw (v->drawing_area);
115 GtkWidget *drawing_area;
118 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
120 drawing_area = gtk_drawing_area_new ();
122 sw = gtk_scrolled_window_new (NULL, NULL);
124 gtk_container_add (GTK_CONTAINER (window), sw);
125 gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), drawing_area);
127 gtk_widget_show_all (sw);
129 v = g_new0 (View, 1);
132 v->drawing_area = drawing_area;
134 v->out = new GDKSplashOutputDev (gtk_widget_get_screen (window),
135 redraw_callback, (void*) v);
138 g_signal_connect (drawing_area,
140 G_CALLBACK (drawing_area_expose),
147 main (int argc, char *argv [])
152 gtk_init (&argc, &argv);
154 globalParams = new GlobalParams("/etc/xpdfrc");
155 globalParams->setupBaseFonts(NULL);
164 err = view_load (v, argv[i]);
167 g_printerr ("Error loading document!\n");