Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/backend/pdf
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2009-05-17 14:27:33 (GMT)
committer Carlos Garcia Campos <carlosgc@gnome.org>2009-05-17 14:40:31 (GMT)
commitc561c0a1ff7ff46f1a1cf781b0d9b30a1599d1d7 (patch)
tree06f31a226a0327afc0f9e5ba51a91865d5a69d14 /backend/pdf
parent361706c42c9eccd5d86211c8f3bcfd93441d5908 (diff)
[pdf] Implement EvDocumentPrint interface
Diffstat (limited to 'backend/pdf')
-rw-r--r--backend/pdf/ev-poppler.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index a9a0a85..ec2bbc0 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -45,6 +45,7 @@
#include "ev-document-transition.h"
#include "ev-document-forms.h"
#include "ev-document-layers.h"
+#include "ev-document-print.h"
#include "ev-document-annotations.h"
#include "ev-selection.h"
#include "ev-transition-effect.h"
@@ -113,6 +114,9 @@ static void pdf_document_document_images_iface_init (EvDocumentImagesIface
static void pdf_document_document_forms_iface_init (EvDocumentFormsIface *iface);
static void pdf_document_document_fonts_iface_init (EvDocumentFontsIface *iface);
static void pdf_document_document_layers_iface_init (EvDocumentLayersIface *iface);
+#ifdef HAVE_POPPLER_PAGE_RENDER
+static void pdf_document_document_print_iface_init (EvDocumentPrintIface *iface);
+#endif
static void pdf_document_document_annotations_iface_init (EvDocumentAnnotationsIface *iface);
static void pdf_document_find_iface_init (EvDocumentFindIface *iface);
static void pdf_document_file_exporter_iface_init (EvFileExporterIface *iface);
@@ -147,6 +151,10 @@ EV_BACKEND_REGISTER_WITH_CODE (PdfDocument, pdf_document,
pdf_document_document_fonts_iface_init);
EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LAYERS,
pdf_document_document_layers_iface_init);
+#ifdef HAVE_POPPLER_PAGE_RENDER
+ EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_PRINT,
+ pdf_document_document_print_iface_init);
+#endif
EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_ANNOTATIONS,
pdf_document_document_annotations_iface_init);
EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FIND,
@@ -1713,6 +1721,25 @@ pdf_document_file_exporter_iface_init (EvFileExporterIface *iface)
iface->get_capabilities = pdf_document_file_exporter_get_capabilities;
}
+#ifdef HAVE_POPPLER_PAGE_RENDER
+/* EvDocumentPrint */
+static void
+pdf_document_print_print_page (EvDocumentPrint *document,
+ EvPage *page,
+ cairo_t *cr)
+{
+ PdfDocument *pdf_document = PDF_DOCUMENT (document);
+
+ poppler_page_render_for_printing (POPPLER_PAGE (page->backend_page), cr);
+}
+
+static void
+pdf_document_document_print_iface_init (EvDocumentPrintIface *iface)
+{
+ iface->print_page = pdf_document_print_print_page;
+}
+#endif /* HAVE_POPPLER_PAGE_RENDER */
+
static void
pdf_selection_render_selection (EvSelection *selection,
EvRenderContext *rc,