[evince] [pdf] Implement EvDocumentPrint interface
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: svn-commits-list gnome org
- Subject: [evince] [pdf] Implement EvDocumentPrint interface
- Date: Sun, 17 May 2009 10:41:57 -0400 (EDT)
commit c561c0a1ff7ff46f1a1cf781b0d9b30a1599d1d7
Author: Carlos Garcia Campos <carlosgc gnome org>
Date: Sun May 17 16:27:33 2009 +0200
[pdf] Implement EvDocumentPrint interface
---
backend/pdf/ev-poppler.cc | 27 +++++++++++++++++++++++++++
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,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]