8ae51f
diff -pruN paps-0.6.8.orig/src/libpaps.c paps-0.6.8/src/libpaps.c
8ae51f
--- paps-0.6.8.orig/src/libpaps.c	2008-05-14 23:07:14.000000000 +0900
8ae51f
+++ paps-0.6.8/src/libpaps.c	2008-05-14 23:11:12.000000000 +0900
8ae51f
@@ -118,7 +118,6 @@ gchar *paps_get_postscript_header_strdup
8ae51f
     gchar *ret_str;
8ae51f
     g_string_append_printf(paps->header,
8ae51f
 			   "end end\n"
8ae51f
-			   "%%%%EndPrologue\n"
8ae51f
 			   );
8ae51f
     ret_str = g_strdup(paps->header->str);
8ae51f
     g_string_truncate(paps->header, old_len);
8ae51f
@@ -247,7 +246,6 @@ static void
8ae51f
 add_postscript_prologue(paps_private_t *paps)
8ae51f
 {
8ae51f
   g_string_append_printf(paps->header,
8ae51f
-			 "%%%%BeginProlog\n"
8ae51f
 			 "/papsdict 1 dict def\n"
8ae51f
 			 "papsdict begin\n"
8ae51f
 			 "\n"
8ae51f
@@ -272,10 +270,10 @@ add_postscript_prologue(paps_private_t *
8ae51f
 			 "/start_ol { gsave } bind def\n"
8ae51f
 			 "/end_ol { closepath fill grestore } bind def\n"
8ae51f
 			 /* Specify both x and y. */
8ae51f
-			 "/draw_char { fontdict begin gsave %f dup scale last_x last_y translate load exec end grestore} def\n"
8ae51f
-			 "/goto_xy { fontdict begin /last_y exch def /last_x exch def end } def\n"
8ae51f
-			 "/goto_x { fontdict begin /last_x exch def end } def\n"
8ae51f
-			 "/fwd_x { fontdict begin /last_x exch last_x add def end } def\n"
8ae51f
+			 "/draw_char { fontdict begin gsave %f dup scale last_x cvi last_y cvi translate load exec end grestore} def\n"
8ae51f
+			 "/goto_xy { fontdict begin /last_y exch string_y cvs def /last_x exch string_x cvs def end } def\n"
8ae51f
+			 "/goto_x { fontdict begin /last_x exch string_x cvs def end } def\n"
8ae51f
+			 "/fwd_x { fontdict begin /last_x exch last_x cvi add string_x cvs def end } def\n"
8ae51f
 			 "/c /curveto load def\n"
8ae51f
 			 "/x /conicto load def\n"
8ae51f
 			 "/l /lineto load def\n"
8ae51f
@@ -344,7 +342,7 @@ add_postscript_prologue(paps_private_t *
8ae51f
 
8ae51f
   /* Open up dictionaries */
8ae51f
   g_string_append(paps->header,
8ae51f
-		  "/fontdict 1 dict def\n"
8ae51f
+		  "/fontdict 1 dict dup begin 16 string dup /string_x exch def /last_x exch def 16 string dup /string_y exch def /last_y exch def end def\n"
8ae51f
 		  "papsdict begin fontdict begin\n");
8ae51f
 }
8ae51f
 
8ae51f
diff -pruN paps-0.6.8.orig/src/paps.c paps-0.6.8/src/paps.c
8ae51f
--- paps-0.6.8.orig/src/paps.c	2008-05-14 23:07:14.000000000 +0900
8ae51f
+++ paps-0.6.8/src/paps.c	2008-05-14 23:12:53.000000000 +0900
8ae51f
@@ -659,7 +659,7 @@ int main(int argc, char *argv[])
8ae51f
   fprintf(OUT, "%s", paps_header);
8ae51f
   g_free(paps_header);
8ae51f
 
8ae51f
-  fprintf(OUT, "%%%%EndPrologue\n");
8ae51f
+  fprintf(OUT, "%%%%EndSetup\n");
8ae51f
   fprintf(OUT, "%s", ps_pages_string->str);
8ae51f
   print_postscript_trailer(OUT, num_pages);
8ae51f
 
8ae51f
@@ -1089,8 +1089,9 @@ void print_postscript_header(FILE *OUT,
8ae51f
           "%%%%Creator: paps version 0.6.7 by Dov Grobgeld\n"
8ae51f
           "%%%%Pages: (atend)\n"
8ae51f
           "%%%%BoundingBox: 0 0 %d %d\n%s"
8ae51f
-          "%%%%BeginProlog\n"
8ae51f
           "%%%%Orientation: %s\n"
8ae51f
+          "%%%%EndComments\n"
8ae51f
+          "%%%%BeginProlog\n"
8ae51f
           "/papsdict 1 dict def\n"
8ae51f
           "papsdict begin\n"
8ae51f
           "\n"
8ae51f
@@ -1134,7 +1135,8 @@ void print_postscript_header(FILE *OUT,
8ae51f
           "/turnpage {\n"
8ae51f
           "  90 rotate\n"
8ae51f
           "  0 pageheight neg translate\n"
8ae51f
-          "} def\n",
8ae51f
+          "} def\n"
8ae51f
+          "%%%%EndProlog\n",
8ae51f
 	  /*
8ae51f
 	   * Put %%cupsRotation tag to prevent the rotation in pstops.
8ae51f
 	   * This breaks paps's behavior to make it in landscape say.
8ae51f
@@ -1150,6 +1152,7 @@ void print_postscript_header(FILE *OUT,
8ae51f
   g_free(owner);
8ae51f
   
8ae51f
   fprintf(OUT,
8ae51f
+          "%%%%BeginSetup\n"
8ae51f
           "%% User settings\n"
8ae51f
           "/pagewidth %d def\n"
8ae51f
           "/pageheight %d def\n"
8ae51f
@@ -1232,8 +1235,8 @@ void print_postscript_trailer(FILE *OUT,
8ae51f
                              int num_pages)
8ae51f
 {
8ae51f
   fprintf(OUT,
8ae51f
-          "%%%%Pages: %d\n"
8ae51f
           "%%%%Trailer\n"
8ae51f
+          "%%%%Pages: %d\n"
8ae51f
           "%%%%EOF\n",
8ae51f
           num_pages
8ae51f
           );