]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/framework-ps.scm
* scm/framework-ps.scm (output-framework): handle landscape settings.
[lilypond.git] / scm / framework-ps.scm
index 67c35ebfc0871a09d37e8d197d362287115bde31..e091ad09b5f331f927377c3f1bbda5f92ab0b9b3 100644 (file)
    (output-entry "staff-height" 'staffheight)  ;junkme.
    "/output-scale "
    (number->string (ly:output-def-lookup paper 'outputscale))
-   " lily-output-units mul def \n"))
+   " lily-output-units mul def \n"
+   (output-entry "page-height" 'vsize)
+   (output-entry "page-width" 'hsize)
+   ))
 
-(define (dump-page outputter page page-number page-count)
+(define (dump-page outputter page page-number page-count landscape?) 
   (ly:outputter-dump-string outputter
    (string-append
     "%%Page: "
     (number->string page-number) " " (number->string page-count) "\n"
-    "0 0 start-system { "
+
+    "%%BeginPageSetup\n"
+    (if landscape?
+       "page-width output-scale mul 0 translate 90 rotate\n"
+       "")
+    "%%EndPageSetup\n"
+
+    "start-system { "
     "set-ps-scale-to-lily-scale "
     "\n"))
   (ly:outputter-dump-stencil outputter page)
                 "%%Creator: creator time-stamp\n"
                 "%%BoundingBox: "
                 (string-join (map number->string bbox) " ") "\n"
+                "%% Orientation: "
+                (if (eq? (ly:output-def-lookup bookpaper 'landscape) #t)
+                    "Landscape\n"
+                    "Portrait\n")
                 "%%EndComments\n"))
 
 (define (page-header bookpaper page-count)
    (ly:gulp-file "music-drawing-routines.ps")
    (ly:gulp-file "lilyponddefs.ps")
    (load-fonts bookpaper)
-   (define-fonts bookpaper)))
+   (define-fonts bookpaper)
+
+
+   ))
 
 (define-public (output-framework outputter book scopes fields basename)
   (let* ((bookpaper (ly:paper-book-book-paper book))
         (pages (ly:paper-book-pages book))
+        (landscape? (eq? (ly:output-def-lookup bookpaper 'landscape?) #t))
         (page-number (1- (ly:output-def-lookup bookpaper 'firstpagenumber)))
         (page-count (length pages)))
+    
   (for-each
    (lambda (x)
      (ly:outputter-dump-string outputter x))
   (for-each
    (lambda (page)
      (set! page-number (1+ page-number))
-     (dump-page outputter page page-number page-count))
+     (dump-page outputter page page-number page-count landscape?))
    pages)
+  
   (ly:outputter-dump-string outputter "%%Trailer\n%%EOF\n")))
 
 (define-public (output-preview-framework outputter book scopes fields basename)
 
 
   (ly:outputter-dump-string outputter
-                           (string-append "0 0 start-system { "
+                           (string-append "start-system { "
                                           "set-ps-scale-to-lily-scale "
                                           "\n"))