All pastes #2104464 Raw Edit

Anonymous

public text v1 · immutable
#2104464 ·published 2012-01-20 12:45 UTC
rendered paste body
//gcc `pkg-config --cflags --libs poppler-glib` pdf.cpp

#include <stdio.h>
#include <cairo.h>
#include <poppler/GlobalParams.h>
#include <poppler/PDFDoc.h>
#include <poppler/CairoOutputDev.h>

int main()
{
        GooString* fname = new GooString("foo.pdf");
        PDFDoc* doc = new PDFDoc(fname);
globalParams = new GlobalParams();

				CairoOutputDev* dev = new CairoOutputDev();
				dev->startDoc(doc->getXRef());

				cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 100);

				cairo_t* cr = cairo_create(surface);

				dev->setCairo(cr);
				// FIXME: Crashes here:
				doc->displayPage(dev, 1, 72.0, 72.0, 0, gFalse, gTrue, gTrue);
				dev->setCairo(0);

				cairo_destroy(cr);

				return cairo_surface_status(surface);
}

/*
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1488202048 (LWP 18041)]
0xa7605550 in pthread_mutex_lock () from /lib/tls/i686/cmov/libpthread.so.0
(gdb) bt
#0  0xa7605550 in pthread_mutex_lock () from /lib/tls/i686/cmov/libpthread.so.0
#1  0xa7a7d546 in pthread_mutex_lock () from /lib/tls/i686/cmov/libc.so.6
#2  0xa78a1a7b in GlobalParams::getPrintCommands ()
   from /usr/lib/libpoppler.so.2
#3  0xa78c3fd2 in PDFDoc::displayPage () from /usr/lib/libpoppler.so.2
#4  0x08048bf6 in main ()
*/