]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 4992/2: Add `never-embed-font-list` and `/NeverEmbed`
authorMasamichi Hosoda <trueroad@trueroad.jp>
Fri, 28 Oct 2016 14:11:29 +0000 (23:11 +0900)
committerMasamichi Hosoda <trueroad@trueroad.jp>
Wed, 9 Nov 2016 13:28:45 +0000 (22:28 +0900)
When the option `-dgs-never-embed-fonts` is enabled,
`/NeverEmbed` distiller parameter from `never-embed-font-list` list
is added to the outputting PostScript file.

When Ghostscript converts from the PostScript file to PDF file,
it never embed the fonts which are in the `never-embed-font-list`.

scm/framework-ps.scm

index a4041196789c989d7f7a5616cdd1c8ecd10b876c..248b3ee0ac5b15e18d73b8dcfb023646439a6153 100644 (file)
    (define-fonts paper ps-define-font ps-define-pango-pf)
    (output-variables paper)))
 
+(define never-embed-font-list (list))
+
 (define (cff-font? font)
   (let* ((cff-string (ly:otf-font-table-data font "CFF ")))
     (> (string-length cff-string) 0)))
    port
    "/lilypond-datadir where {pop} {userdict /lilypond-datadir (~a) put } ifelse"
    (ly:get-option 'datadir))
+  (set! never-embed-font-list (list))
   (if load-fonts?
       (for-each (lambda (f)
                   (format port "\n%%BeginFont: ~a\n" (car f))
                   (display (cdr f) port)
                   (display "%%EndFont\n" port))
                 (load-fonts paper)))
+  (if (ly:get-option 'gs-never-embed-fonts)
+      (begin
+        (display "\nsystemdict /DEVICE known\n" port)
+        (display " { systemdict /DEVICE get (pdfwrite) eq {\n" port)
+        (display ".setpdfwrite << /NeverEmbed [" port)
+        (display (string-concatenate
+                  (map (lambda (f) (string-append " /" f))
+                       never-embed-font-list)) port)
+        (display " ] >> setdistillerparams\n" port)
+        (display " } if } if\n" port)))
   (if (ly:bigpdfs)
       (display (procset "encodingdefs.ps") port))
   (display (setup-variables paper) port)