Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > b2b31f8f12ce25fb0a2128354ea26724 > files > 63

cups-1.3.7-30.el5.src.rpm

diff -up cups-1.3.7/filter/pstops.c.str3415 cups-1.3.7/filter/pstops.c
--- cups-1.3.7/filter/pstops.c.str3415	2008-01-14 22:12:58.000000000 +0000
+++ cups-1.3.7/filter/pstops.c	2010-09-01 15:51:16.206071056 +0100
@@ -1923,7 +1923,32 @@ do_setup(pstops_doc_t *doc,		/* I - Docu
          ppd_file_t   *ppd)		/* I - PPD file */
 {
   char	*ps;				/* PS commands */
-
+  ppd_size_t	*pagesize;		/* Current page size */
+  float	LabelPageLeft = PageLeft,
+	LabelPageRight  = PageRight,
+	LabelPageBottom = PageBottom,
+	LabelPageTop    = PageTop,
+	LabelPageWidth  = PageWidth,
+	LabelPageLength = PageLength;
+
+ /*
+  * We want to place the labels at the edge of the imageable area, so
+  * we need to get those values (and not the one from the text margins)
+  */
+
+  if ((pagesize = ppdPageSize(ppd, NULL)) != NULL)
+  {
+     LabelPageWidth  = pagesize->width;
+     LabelPageLength = pagesize->length;
+     LabelPageTop    = pagesize->top;
+     LabelPageBottom = pagesize->bottom;
+     LabelPageLeft   = pagesize->left;
+     LabelPageRight  = pagesize->right;
+ 
+     fprintf(stderr, "DEBUG: Label Page = %.0fx%.0f; %.0f,%.0f to %.0f,%.0f\n",
+             LabelPageWidth, LabelPageLength, LabelPageLeft, LabelPageBottom, 
+             LabelPageRight, LabelPageTop);
+   }
 
  /*
   * Disable CTRL-D so that embedded files don't cause printing
@@ -2021,14 +2046,16 @@ do_setup(pstops_doc_t *doc,		/* I - Docu
     */
 
     if (Orientation & 1)
-      write_label_prolog(doc, doc->page_label, PageBottom,
-                         PageWidth - PageLength + PageTop, PageLength);
+      write_label_prolog(doc, doc->page_label, LabelPageBottom,
+                         LabelPageWidth - LabelPageLength + LabelPageTop,
+			 LabelPageLength);
     else
-      write_label_prolog(doc, doc->page_label, PageLeft, PageRight,
-                         PageLength);
+      write_label_prolog(doc, doc->page_label, LabelPageLeft, LabelPageRight,
+                         LabelPageLength);
   }
   else
-    write_label_prolog(doc, doc->page_label, PageBottom, PageTop, PageWidth);
+    write_label_prolog(doc, doc->page_label, LabelPageBottom, LabelPageTop,
+		       LabelPageWidth);
 }