[poppler] Segmentation fault when running "poppler_document_new_from_file"
bart at pluton.nl
bart at pluton.nl
Tue Jul 29 03:55:18 PDT 2008
Dear poppler people,
Currently I am trying to develop a program to sort documents. For this
program I would like to use poppler to render PDF files. I have made the
following code to try out and gain experience with poppler.
Unfortunately the results is a segmentation fault :-(. I hope someone
here can help me solve the problem.
The following messages are returned when executing the function
"poppler_document_new_from_file":
(process:15205): GLib-GObject-CRITICAL **: gtype.c:2248: initialization
assertion failed, use IA__g_type_init() prior to this function
(process:15205): GLib-CRITICAL **: g_once_init_leave: assertion
`initialization_value != 0' failed
(process:15205): GLib-GObject-CRITICAL **: g_object_new: assertion
`G_TYPE_IS_OBJECT (object_type)' failed
Segmentation fault
The code compiles without errors or warnings with the following command:
"gcc `pkg-config --libs --cflags glib-2.0 gtk+-2.0 poppler poppler-glib
gdk-2.0 gdk-pixbuf-2.0` test.c -o test"
The system in use is Fedora 9 kernel 2.6.25.11-96.fc9.i686 on a dual
core Intel pentium E2140. The (dev) packages are installed using the
package manager "gpk-application". I am running Gnome but KDE is
installed also.
I hope someone has an idea. Maybe it is something really simple which I
forgot. I thank you for your reply and ideas in advance.
Greetings,
Bart
The CODE:
#include <glib.h>
#include <glib-object.h>
#include <glib/poppler.h>
#include <glib/poppler-document.h>
#include <glib/poppler-page.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,
char *argv[])
{
GError *error = NULL;
GdkPixbuf *pixBuf = NULL;
gchar *filename_uri = "file:///home/Bart/C/Poppler/test2.pdf";
printf("DEBUG: line A\n");
// Until here every thing is oke
PopplerDocument *doc = poppler_document_new_from_file (
filename_uri,
NULL,
&error );
// This print statement is not visible. The error occurs above it.
printf("DEBUG: line B\n");
if( error != NULL )
{
// Report the error
printf("\n\nError: %s\n", &error->message);
exit(1);
}
printf("DEBUG: line C\n");
PopplerPage *page = poppler_document_get_page ( doc,
0 );
// The next lines are not functional but should not be the problem
pixBuf = gdk_pixbuf_new ( GDK_COLORSPACE_RGB,
FALSE,
8,
600,
900 );
poppler_page_render_to_pixbuf ( page,
0,
0,
600,
900,
1,
0,
pixBuf);
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
More information about the poppler
mailing list