From: Masamichi Hosoda Date: Fri, 28 Oct 2016 14:11:29 +0000 (+0900) Subject: Issue 4992/2: Add `never-embed-font-list` and `/NeverEmbed` X-Git-Url: https://git.donarmstrong.com/?p=lilypond.git;a=commitdiff_plain;h=a27fbd6ec52f5ecf7adbe830599d0d831cc77f97 Issue 4992/2: Add `never-embed-font-list` and `/NeverEmbed` 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`. --- diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index a404119678..248b3ee0ac 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -214,6 +214,8 @@ (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))) @@ -485,12 +487,23 @@ 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)