From 459160ed87739fa5bba5e96d0b53c6fd3bbce6b7 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Thu, 11 Oct 2007 10:18:58 +0000 Subject: When printing multiple pages per sheet in reverse option, do not invert 2007-10-11 Carlos Garcia Campos * backend/pdf/ev-poppler.cc: (pdf_document_file_exporter_begin_page), (pdf_document_file_exporter_do_page), (pdf_document_file_exporter_end_page), (pdf_document_file_exporter_iface_init): * libdocument/ev-file-exporter.[ch]: (ev_file_exporter_begin_page), (ev_file_exporter_end_page): * shell/ev-jobs.c: (ev_job_print_get_page_list), (ev_job_print_run): When printing multiple pages per sheet in reverse option, do not invert the order of the pages in every sheet, but the order of the sheets. Do not print blank pages when page range is invalid. Fixes bugs #484857 and #485521. svn path=/trunk/; revision=2700 --- (limited to 'libdocument') diff --git a/libdocument/ev-file-exporter.c b/libdocument/ev-file-exporter.c index 1b942a2..9b2bc69 100644 --- a/libdocument/ev-file-exporter.c +++ b/libdocument/ev-file-exporter.c @@ -53,6 +53,15 @@ ev_file_exporter_begin (EvFileExporter *exporter, } void +ev_file_exporter_begin_page (EvFileExporter *exporter) +{ + EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + if (iface->begin_page) + iface->begin_page (exporter); +} + +void ev_file_exporter_do_page (EvFileExporter *exporter, EvRenderContext *rc) { @@ -62,6 +71,15 @@ ev_file_exporter_do_page (EvFileExporter *exporter, } void +ev_file_exporter_end_page (EvFileExporter *exporter) +{ + EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + if (iface->end_page) + iface->end_page (exporter); +} + +void ev_file_exporter_end (EvFileExporter *exporter) { EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); diff --git a/libdocument/ev-file-exporter.h b/libdocument/ev-file-exporter.h index c05ea27..6302cd2 100644 --- a/libdocument/ev-file-exporter.h +++ b/libdocument/ev-file-exporter.h @@ -74,8 +74,10 @@ struct _EvFileExporterIface { /* Methods */ void (* begin) (EvFileExporter *exporter, EvFileExporterContext *fc); + void (* begin_page) (EvFileExporter *exporter); void (* do_page) (EvFileExporter *exporter, EvRenderContext *rc); + void (* end_page) (EvFileExporter *exporter); void (* end) (EvFileExporter *exporter); EvFileExporterCapabilities (* get_capabilities) (EvFileExporter *exporter); }; @@ -83,8 +85,10 @@ struct _EvFileExporterIface { GType ev_file_exporter_get_type (void) G_GNUC_CONST; void ev_file_exporter_begin (EvFileExporter *exporter, EvFileExporterContext *fc); +void ev_file_exporter_begin_page (EvFileExporter *exporter); void ev_file_exporter_do_page (EvFileExporter *exporter, EvRenderContext *rc); +void ev_file_exporter_end_page (EvFileExporter *exporter); void ev_file_exporter_end (EvFileExporter *exporter); EvFileExporterCapabilities ev_file_exporter_get_capabilities (EvFileExporter *exporter); -- cgit v0.9.1