From c0ff60cfe9747401b11eaae97a220c16aab3ddd5 Mon Sep 17 00:00:00 2001 From: Martin Kretzschmar Date: Wed, 27 Jul 2005 19:36:54 +0000 Subject: [PATCH] add paper_width, paper_height, and duplex parameters to ::begin. * backend/ev-ps-exporter.h: add paper_width, paper_height, and duplex parameters to ::begin. * tiff/tiff-document.c (tiff_document_ps_export_begin): * shell/ev-print-job.c (idle_print_handler): * ps/ps-document.c (ps_document_ps_export_begin): * pdf/ev-poppler.cc (pdf_document_ps_exporter_begin): * backend/ev-ps-exporter.c (ev_ps_exporter_begin): update implementations. Poppler backend needs poppler cvs. Rest has unchanged behavior. --- ChangeLog | 13 +++++++++++++ backend/ev-ps-exporter.c | 6 ++++-- backend/ev-ps-exporter.h | 9 +++++++-- pdf/ev-poppler.cc | 5 ++++- ps/ps-document.c | 3 ++- shell/ev-print-job.c | 7 ++++--- tiff/tiff-document.c | 3 ++- 7 files changed, 36 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index dd939138..be3d5ca2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2005-07-27 Martin Kretzschmar + + * backend/ev-ps-exporter.h: add paper_width, paper_height, and + duplex parameters to ::begin. + + * tiff/tiff-document.c (tiff_document_ps_export_begin): + * shell/ev-print-job.c (idle_print_handler): + * ps/ps-document.c (ps_document_ps_export_begin): + * pdf/ev-poppler.cc (pdf_document_ps_exporter_begin): + * backend/ev-ps-exporter.c (ev_ps_exporter_begin): update + implementations. Poppler backend needs poppler cvs. Rest has + unchanged behavior. + 2005-07-25 Martin Kretzschmar * shell/ev-window.c (using_pdf_printer): new function. diff --git a/backend/ev-ps-exporter.c b/backend/ev-ps-exporter.c index 54a2dd4f..09ed17c6 100644 --- a/backend/ev-ps-exporter.c +++ b/backend/ev-ps-exporter.c @@ -48,11 +48,13 @@ ev_ps_exporter_get_type (void) void ev_ps_exporter_begin (EvPSExporter *exporter, const char *filename, - int first_page, int last_page) + int first_page, int last_page, + double paper_width, double paper_height, gboolean duplex) { EvPSExporterIface *iface = EV_PS_EXPORTER_GET_IFACE (exporter); - iface->begin (exporter, filename, first_page, last_page); + iface->begin (exporter, filename, first_page, last_page, + paper_width, paper_height, duplex); } void diff --git a/backend/ev-ps-exporter.h b/backend/ev-ps-exporter.h index ae746a1b..36d2613a 100644 --- a/backend/ev-ps-exporter.h +++ b/backend/ev-ps-exporter.h @@ -44,7 +44,10 @@ struct _EvPSExporterIface { void (* begin) (EvPSExporter *exporter, const char *filename, int first_page, - int last_page); + int last_page, + double paper_width, + double paper_height, + gboolean duplex); void (* do_page) (EvPSExporter *exporter, int page); void (* end) (EvPSExporter *exporter); @@ -52,7 +55,9 @@ struct _EvPSExporterIface { GType ev_ps_exporter_get_type (void); void ev_ps_exporter_begin (EvPSExporter *exporter, const char *filename, - int first_page, int last_page); + int first_page, int last_page, + double paper_width, double paper_height, + gboolean duplex); void ev_ps_exporter_do_page (EvPSExporter *exporter, int page); void ev_ps_exporter_end (EvPSExporter *exporter); diff --git a/pdf/ev-poppler.cc b/pdf/ev-poppler.cc index 29f18cf0..2695e863 100644 --- a/pdf/ev-poppler.cc +++ b/pdf/ev-poppler.cc @@ -1187,13 +1187,16 @@ pdf_document_find_iface_init (EvDocumentFindIface *iface) static void pdf_document_ps_exporter_begin (EvPSExporter *exporter, const char *filename, - int first_page, int last_page) + int first_page, int last_page, + double width, double height, gboolean duplex) { PdfDocument *pdf_document = PDF_DOCUMENT (exporter); pdf_document->ps_file = poppler_ps_file_new (pdf_document->document, filename, first_page, last_page - first_page + 1); + poppler_ps_file_set_paper_size (pdf_document->ps_file, width, height); + poppler_ps_file_set_duplex (pdf_document->ps_file, duplex); } static void diff --git a/ps/ps-document.c b/ps/ps-document.c index 8dca8cf6..4f38e6b0 100644 --- a/ps/ps-document.c +++ b/ps/ps-document.c @@ -1313,7 +1313,8 @@ ps_async_renderer_iface_init (EvAsyncRendererIface *iface) static void ps_document_ps_export_begin (EvPSExporter *exporter, const char *filename, - int first_page, int last_page) + int first_page, int last_page, + double width, double height, gboolean duplex) { PSDocument *document = PS_DOCUMENT (exporter); diff --git a/shell/ev-print-job.c b/shell/ev-print-job.c index f79c1fc3..1f215c77 100644 --- a/shell/ev-print-job.c +++ b/shell/ev-print-job.c @@ -258,9 +258,10 @@ idle_print_handler (EvPrintJob *job) { if (!job->printing) { ev_document_doc_mutex_lock (); - ev_ps_exporter_begin (EV_PS_EXPORTER (job->document), - job->temp_file, job->first_page, - job->last_page); + ev_ps_exporter_begin ( + EV_PS_EXPORTER (job->document), + job->temp_file, job->first_page, job->last_page, + job->width, job->height, job->duplex); ev_document_doc_mutex_unlock (); job->next_page = job->first_page; job->printing = TRUE; diff --git a/tiff/tiff-document.c b/tiff/tiff-document.c index 36847aa4..aef7aaac 100644 --- a/tiff/tiff-document.c +++ b/tiff/tiff-document.c @@ -411,7 +411,8 @@ tiff_document_document_thumbnails_iface_init (EvDocumentThumbnailsIface *iface) static void tiff_document_ps_export_begin (EvPSExporter *exporter, const char *filename, - int first_page, int last_page) + int first_page, int last_page, + double width, double height, gboolean duplex) { TiffDocument *document = TIFF_DOCUMENT (exporter); -- 2.43.5