Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
fontsimport [2016/09/24 15:46]
christian
fontsimport [2016/09/24 17:38]
christian
Line 8: Line 8:
  
 <code smalltalk> <code smalltalk>
-Graphics.Fonts.Font loadedFonts.   "returns a <Dictionary key: Symbol value: Font>" +Graphics.Fonts.Font loadedFonts.             "returns a <Dictionary key: Symbol value: Font>" 
-Graphics.Fonts.Font fontAt: #Helvetica.   "returns a Graphics.Fonts.StandardFont"+Graphics.Fonts.Font fontAt: #Helvetica.      "returns a Graphics.Fonts.StandardFont"
 Graphics.Fonts.Font fontAt: #'Times-Roman'   "returns another StandardFont" Graphics.Fonts.Font fontAt: #'Times-Roman'   "returns another StandardFont"
 +Graphics.Fonts.Font resetLoadedFonts.        "clears the shared variable #LoadedFonts"
 </code> </code>
 +
 +The method #loadedFonts loads the fonts on demand. When the shared variable LoadedFonts is nil, all class methods are evaluated which are tagged by the #font: pragma.
 +
 +Package [Fonts Development] adds some import helpers for OpenTalk and Type-1 (CustomFont) Fonts:
 +
 +<code smalltalk>
 +Graphics.Fonts.OpenTalk.Font importFile: aFilename in: aPackagenameSymbol.
 +Graphics.Fonts.OpenTalk.Font importAllIn: aDirectoryName into: aPackagenameSymbol.
 +Graphics.Fonts.OpenTalk.Font importInstalledWindowsFont: aFontBaseFilename in: aPackagenameSymbol.
 +"and"
 +Graphics.Fonts.CustomFont import: filenameTrunk as: selectorSymbol.
 +</code>
 +
 +For example when you add the 'MICRDemoCheckPrixa.otf' OpenType(PS) font file (a demo font for MICR) with:
 +
 +<code smalltalk>
 +Graphics.Fonts.OpenType.Font importFile: 'MICRDemoCheckPrixa.otf' asFilename in: #'Fonts Development'.
 +</code>
 +
 +This creates a class method for Graphics.Fonts.OpenType.Font:
 +
 +<code smalltalk>
 +mICRDemoCheckPrixa
 + <font: #MICRDemoCheckPrixa>
 + ^self file: 'MICRDemoCheckPrixa.otf' contents: (ByteArray fromPackedString: 
 + 'S5QTS0@K@H@@@0@0P4YFHKS@0W@@@6@@@@V''4]PS5O+F@D.@@@J_@@@@0QOT2<2TWMYBP@@@R@@@@A...")
 +</code>
 +
 +The newly imported Font can be accessed by
 +
 +<code smalltalk>
 +Graphics.Fonts.Font fontAt: #MICRDemoCheckPrixa.
 +</code>
 +
 +and used in PDF for text as usual by its name: 
  
 <code smalltalk> <code smalltalk>
-Graphics.Fonts.OpenType.Font importFile: 'MICRDemoCheckPrixa.otfasFilename in#'Fonts Development'+| page | 
 +page := Page newInBounds: (0 @ 0 corner: 165 @ 30) colorspace: DeviceCMYK new render: [:renderer | 
 + renderer textObjectDo:
 + renderer setFont: #MICRDemoCheckPrixa size: 14. 
 + renderer add: (NextLineRelative operands: #(10 10)). 
 + renderer showString: '01234567890 / ; : -']]. 
 +page saveAndShowAs: 'demo04b_MICRDemo.pdf'
 </code> </code>
  • fontsimport.txt
  • Last modified: 2023/01/05 20:29
  • by christian