From 4261efda2bdcc458f9e0898f3d9c9861c124c6d0 Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Wed, 30 Sep 2009 12:46:58 -0400 Subject: [PATCH] Emit PageOrientation DSC comment into PostScript print output The PageOrientation DSC comment tells PostScript viewers such as gv or evince the orientation to use when displaying the page. Part of bug 596423 --- gtk/gtkprintoperation-unix.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c index 84d819dacc..64b3a38e07 100644 --- a/gtk/gtkprintoperation-unix.c +++ b/gtk/gtkprintoperation-unix.c @@ -91,9 +91,26 @@ unix_start_page (GtkPrintOperation *op, (op->priv->page_position % op->priv->manual_number_up == 0)) { if (type == CAIRO_SURFACE_TYPE_PS) - cairo_ps_surface_set_size (op_unix->surface, w, h); + { + cairo_ps_surface_set_size (op_unix->surface, w, h); + cairo_ps_surface_dsc_begin_page_setup (op_unix->surface); + switch (gtk_page_setup_get_orientation (page_setup)) + { + case GTK_PAGE_ORIENTATION_PORTRAIT: + case GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT: + cairo_ps_surface_dsc_comment (op_unix->surface, "%%PageOrientation: Portrait"); + break; + + case GTK_PAGE_ORIENTATION_LANDSCAPE: + case GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE: + cairo_ps_surface_dsc_comment (op_unix->surface, "%%PageOrientation: Landscape"); + break; + } + } else if (type == CAIRO_SURFACE_TYPE_PDF) - cairo_pdf_surface_set_size (op_unix->surface, w, h); + { + cairo_pdf_surface_set_size (op_unix->surface, w, h); + } } }