[trijezdci] (2018): I have made a generic font map generator library, which can be viewed at and downloaded from github at: https://github.com/trijezdci/TclTk-Fontmap/ The font map generator automatically creates entries for the regular, italic, bold and bold-italic styles for each font family requested, whereby it consults a list of known irregular postscript font names that divert from the usual -Italic, -Bold, -BoldItalic naming convention. It also corrects improper case in Tk font names, such as when Tk turns DejaVuSans into DejavuSans or FreeSans into Freesans. Usage Example: ====== import ::fontmap::font_map_for ... .c postscript -fontmap\ [font_map_for {{FreeSans 12 14} {FreeSerif 12 14} {FreeMono 10}}] -file sample.ps ====== This creates a font map as follows: ====== font_map(FreeSans 12 bold) = FreeSansBold 12 font_map(FreeSans 12 italic) = FreeSansOblique 12 font_map(FreeSans 12 {bold italic}) = FreeSansBoldOblique 12 font_map(FreeSans 12 {}) = FreeSans 12 font_map(Freesans 12 bold) = FreeSansBold 12 font_map(Freesans 12 italic) = FreeSansOblique 12 font_map(Freesans 12 {bold italic}) = FreeSansBoldOblique 12 font_map(Freesans 12 {}) = FreeSans 12 font_map(FreeSans 14 bold) = FreeSansBold 14 font_map(FreeSans 14 italic) = FreeSansOblique 14 font_map(FreeSans 14 {bold italic}) = FreeSansBoldOblique 14 font_map(FreeSans 14 {}) = FreeSans 14 font_map(Freesans 14 bold) = FreeSansBold 14 font_map(Freesans 14 italic) = FreeSansOblique 14 font_map(Freesans 14 {bold italic}) = FreeSansBoldOblique 14 font_map(Freesans 14 {}) = FreeSans 14 etc etc ====== [adrian] (Dec 2015): here is an example of a fontmap when exporting the canvas content to a postscript. The fontmap is an array with the keys being the font as specified in the `-font` option of the text canvas items and the array values being the postscript font specifications. You can find the postscript font names in a file called `Fontmap.GS` on your system. ====== package require Tk canvas .c pack .c -fill both -expand TRUE set txt "Lorem ipsum dolor sit amet..." set f1 "*-Helvetica-Medium-R-Normal-*-12-*" set f2 [font create -family "DejaVu Sans" -size 14] set f3 TkDefaultFont set f4 [font create -family [lindex [font families] 9] -weight bold] set y 40 foreach f [list $f1 $f2 $f3 $f4] { .c create text 50 $y -text $txt -anchor w -font $f incr y 40 } set fm($f1) [list Helvetica 12] set fm($f2) [list Times 13] set fm($f3) [list Courier 14] set fm($f4) [list Bookman-Demi 15] .c postscript -file test.ps -fontmap fm ====== [EG] : The file Fontmap.GS is part of http://ghostscript.com/%|%ghostscript%|%, so is unlikely to be in a standard Windows install. The list of portable font names (the so called "base 35", taken from "Postscript Level 2" specification) is the following: Bookman-Demi Bookman-DemiItalic Bookman-Light Bookman-LightItalic Courier Courier-Oblique Courier-Bold Courier-BoldOblique AvantGarde-Book AvantGarde-BookOblique AvantGarde-Demi AvantGarde-DemiOblique Helvetica Helvetica-Oblique Helvetica-Bold Helvetica-BoldOblique Helvetica-Narrow Helvetica-Narrow-Oblique Helvetica-Narrow-Bold Helvetica-Narrow-BoldOblique Palatino-Roman Palatino-Italic Palatino-Bold Palatino-BoldItalic NewCenturySchlbk-Roman NewCenturySchlbk-Italic NewCenturySchlbk-Bold NewCenturySchlbk-BoldItalic Times-Roman Times-Italic Times-Bold Times-BoldItalic Symbol ZapfChancery-MediumItalic ZapfDingbats . <>Postscript