[gtk+] Emit PageOrientation DSC comment into PostScript print output



commit 4261efda2bdcc458f9e0898f3d9c9861c124c6d0
Author: Adrian Johnson <ajohnson redneon com>
Date:   Wed Sep 30 12:46:58 2009 -0400

    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 files changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c
index 84d819d..64b3a38 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);
+        }
     }
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]