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 ()
*/