]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/framework-ps.scm
(pango_item_string_stencil): Normalize file
[lilypond.git] / scm / framework-ps.scm
index 2418b1c854827d67bd01bb0aa7feabb442b31d26..fb00c1c05ff82275f9d243bad06e809b5e246244 100644 (file)
 
 
 (define (write-preamble paper load-fonts? port)
+  (define (load-font-via-GS font-name-filename)
+    (define (ps-load-file name)
+      (format "(~a) (r) file .loadfont " name))
+    
+    (let* ((font (car font-name-filename))
+          (name (cadr font-name-filename))
+          (file-name (caddr font-name-filename))
+          (bare-file-name (ly:find-file file-name)))
+
+      (cons 
+       (munge-lily-font-name name)
+       (cond
+       ((string-match "([eE]mmentaler|[Aa]ybabtu)" file-name)
+        (ps-load-file (ly:find-file
+                       (format "~a.pfa" (munge-lily-font-name file-name)))))
+       ((string? bare-file-name)
+        (ps-load-file (munge-lily-font-name file-name)))
+       (else
+        (ly:warning (_ "don't know how to embed ~S=~S") name file-name)
+         "")))))
   
   (define (load-font font-name-filename)
     (let* ((font (car font-name-filename))
         (cached-file-contents bare-file-name))
        ((and bare-file-name (string-match "\\.pfb" bare-file-name))
         (ly:pfb->pfa bare-file-name))
-       
+       ((and bare-file-name (string-match "\\.ttf" bare-file-name))
+        (ly:ttf->pfa bare-file-name))
+
        ((string-match "([eE]mmentaler|[Aa]ybabtu)" file-name)
         (cached-file-contents
          (format "~a.pfa" (munge-lily-font-name file-name))))
+
+       ((and bare-file-name (string-match "\\.otf" bare-file-name))
+        (ps-embed-cff (ly:otf->cff bare-file-name) name 0))
        
        ((and bare-file-name (string-match "\\.ttf" bare-file-name))
         (ly:ttf->pfa bare-file-name))
         (ps-embed-cff (ly:otf-font-table-data font "CFF ")
                       name
                       0))
-       (bare-file-name (cached-file-contents bare-file-name))
-       (cff-file-name  (cached-file-contents cff-file-name))
        (else
-        (ly:warning (_ "can't find CFF/PFA/PFB font ~S=~S" name file-name))
-        (cons font-name "")))
-       )))
-
+        (ly:warning (_ "don't know how to embed ~S=~S") name file-name)
+         "")))))
   
   (define (load-fonts paper)
     (let* ((fonts (ly:paper-fonts paper))
-
           (all-font-names
            (map
             (lambda (font)
   ; adobe note 5002: should initialize variables before loading routines.
   (display (procset "music-drawing-routines.ps") port)
   (display (procset "lilyponddefs.ps") port)
-  (display "init-lilypond-parameters\n" port)
-
-  )
+  (display "init-lilypond-parameters\n" port))
 
 (define-public (output-framework basename book scopes fields)
   (let* ((filename (format "~a.ps" basename))