+2006-12-18 Carlos Garcia Campos <carlosgc@gnome.org>
+
+ * configure.ac:
+ * pdf/ev-poppler.cc: (pdf_print_context_free),
+ (pdf_document_file_exporter_begin),
+ (pdf_document_file_exporter_do_page):
+
+ Make cairo-pdf depedency optional.
+
2006-12-18 Carlos Garcia Campos <carlosgc@gnome.org>
* shell/ev-print-job.c: (idle_print_handler), (ev_print_job_print):
LIBS="$LIBS $FRONTEND_LIBS"
AC_CHECK_FUNCS(poppler_page_render)
LIBS=$evince_save_LIBS
+
+ PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, enable_cairo_pdf=yes, enable_cairo_pdf=no)
+ if test x$enable_cairo_pdf == xyes; then
+ AC_DEFINE([HAVE_CAIRO_PDF], [1], [defined if cairo-pdf is available])
+ fi
else
AC_MSG_WARN("PDF support is disabled since poppler-glib library version $POPPLER_REQUIRED or newer not found")
fi
#include <poppler.h>
#include <poppler-document.h>
#include <poppler-page.h>
+#ifdef HAVE_CAIRO_PDF
#include <cairo-pdf.h>
+#endif
#include <glib/gi18n.h>
#include "ev-poppler.h"
typedef struct {
EvFileExporterFormat format;
PopplerPSFile *ps_file;
+#ifdef HAVE_CAIRO_PDF
cairo_t *pdf_cairo;
+#endif
} PdfPrintContext;
struct _PdfDocumentClass
static const gboolean supported_formats[] = {
TRUE, /* EV_FILE_FORMAT_PS */
+#ifdef HAVE_CAIRO_PDF
#ifdef HAVE_POPPLER_PAGE_RENDER
TRUE, /* EV_FILE_FORMAT_PDF */
#else
FALSE, /* EV_FILE_FORMAT_PDF */
#endif
+#endif
};
static void
poppler_ps_file_free (ctx->ps_file);
ctx->ps_file = NULL;
}
-
+#ifdef HAVE_CAIRO_PDF
if (ctx->pdf_cairo) {
cairo_destroy (ctx->pdf_cairo);
ctx->pdf_cairo = NULL;
}
-
+#endif
g_free (ctx);
}
break;
case EV_FILE_FORMAT_PDF: {
+#ifdef HAVE_CAIRO_PDF
cairo_surface_t *surface;
surface = cairo_pdf_surface_create (filename, width, height);
ctx->pdf_cairo = cairo_create (surface);
cairo_surface_destroy (surface);
+#endif
}
break;
default:
#ifdef HAVE_POPPLER_PAGE_RENDER
poppler_page_render (poppler_page, ctx->pdf_cairo);
#endif
+#ifdef HAVE_CAIRO_PDF
cairo_show_page (ctx->pdf_cairo);
+#endif
break;
default:
g_assert_not_reached ();