home *** CD-ROM | disk | FTP | other *** search
/ IBM CD Showcase / OS2_CD_ROM.iso / smce0001 / sware / wpsutil.exe / pfm2afm / read.me < prev    next >
Encoding:
Text File  |  1992-11-30  |  5.8 KB  |  135 lines

  1. As an OS/2 user, you may have noticed that there are many Adobe ATM fonts
  2. available for Windows.  If you tried to use them, you probably found
  3. a few that had both the .PFB and .AFM files you needed, but most of the
  4. fonts available had a Windows .PFM file instead of the standard Adobe
  5. .AFM file.  The PFM files are binary versions of the AFM's. Unfortunately, 
  6. there was no way to convert them to the AFM format.
  7.  
  8. Included here are some tools to create the necessary AFM files. 
  9. The PFM2AFM program will produce a useable AFM file:
  10.    PFM2AFM FONT.PFM 
  11.  
  12. The resulting AFM file will be useable, but not totally correct. If you 
  13. stop with this step, you may find that some of the spacings are incorrect
  14. or that characters are clipped.  This is partly due to my laziness [for
  15. improvements, see below] (the programs were written very quickly for my
  16. own use) and partly due to the fact that the PFM file doesn't contain all
  17. of the needed data. 
  18.  
  19. The AFM file can be improved with a bit of editing (this is the laziness 
  20. part, I could have done it in the code).  If you look at the PFB file, you
  21. will see that the beginning is similar to the AFM file.  The values given
  22. are the closest I could get from the PFM, but aren't correct. 
  23. The FontBBox is almost certainly wrong as is the weight.  Fix the AFM file
  24. with the values from the PFB.  
  25.  
  26. A little ways down in the AFM you will find a line with:
  27.    StartCharMetrics <num>
  28.  
  29. This is followed by <num> lines describing each character. Beyond that is 
  30. the kerning data.  The kerning data starts with:
  31.    StartKernData
  32.    StartKernPairs <num>
  33.  
  34. and <num> lines of kerning pairs.  The CharMetrics gives the character
  35. number, its width, name and bounding box.  Everything is fine except the
  36. bounding box.  Windows doesn't have that data in the PFM file.
  37.  
  38. No, the names may be wrong too.  I can't find the correct standard names.
  39. Many (but not all) of the fonts give names in the ASCII part.  I don't 
  40. think it matters unless you use the high characters.  The low (i.e. <127)
  41. characters don't seem to change.
  42.  
  43. The KernPairs is fully specified in the PFM file and should be correct.
  44.  
  45. It is possible to get correct CharMetrics if you have a Postscript printer.
  46. The GETAFM.PS (from Pipeline Associates, Inc. and download from Bix) file 
  47. can be downloaded through the serial port to generate the CharMetrics.
  48.  
  49. You need to download the desired font to the printer.  Note: PFB files are
  50. binary and Postscript printers can only take ASCII data.  The PFB2PFA
  51. program will convert the binary PFB to ASCII:
  52.    PFB2PFA FONT.PFB >FONT.PFA
  53.  
  54. [FOR THE PFB2PFA.EXE-FILE, SEE THE ORIGINAL ARCHIV BY KEVIN IN BIX!]
  55.  
  56. Edit GETAFM.PS at the bottom to specify the font name and use your favorite
  57. communications program to download the font and GETAFM.PS to the printer. 
  58. The printer should respond with an AFM file that can be captured. Cut 
  59. the CharMetrics section out and place it in the AFM file generated above
  60. and you will have a perfect Adobe Type Manager font for use with OS/2.
  61.  
  62. Summary:
  63. o  Generate a usable, but less than correct AFM file.
  64.       PFM2AFM font.pfm >font.afm
  65.  
  66. o  Fix up the AFM file with the information from the top, ASCII, part of
  67.    the PFB file.
  68.  
  69. o  If you have a Postscript printer that can be configured for serial
  70.    communications, use the PFB2PFA program to create an ASCII version of
  71.    the font and then use the GETAFM.PS Postscript program to generate the
  72.    correct CharMetrics.  The fonts are large, and serial communication is
  73.    slow.  Go have a cup (or five) of coffee while you are waiting.
  74.  
  75.  
  76. Disclaimers and so forth.
  77.  
  78. As I said above, these are 'quick and dirty' programs.  The error checking
  79. is minimal to nonexistent.  They will either work without complaint, or 
  80. blow up real bad.  I am assuming that you will only try to convert valid
  81. fonts.
  82.  
  83. The Windows PFM documentation is somewhat skimpy.  Much of the data that an
  84. AFM file requires is not in the PFM file, so I had to take values that looked
  85. like they should be close.
  86.  
  87. In any event, I have supplied the source code so feel free to fix things up.
  88. Of particular use would be a way to automatically retrieve the data from 
  89. the PFB file that is not in the PFM file.  If someone would like to do this
  90. and BixMail it to me, I'd appreciate it.  I'd really like to see someone
  91. create AFM's for all of the Windows fonts on Bix and post them in the OS2
  92. areas.
  93.  
  94. I hereby place these programs (PFM2AFM.C and PFB2PFA.C) into the Public
  95. Domain.  This abdicates my legal rights to your use of the programs.
  96. It would be considered a kindness if you would retain mention of my name
  97. as the author, however.
  98.  
  99. The GETAFM.PS program is not mine and is copyrighted by its author.  
  100.  
  101. Various trademarks are used above without credit.  This is not an attempt
  102. to challenge those trademarks, but is due to sloth.
  103.  
  104. I can be reached on Bix as Nickerson.
  105.  
  106. Kevin Nickerson.
  107.  
  108.  
  109.  
  110. --------------------------------------------------------------------------
  111. Yeah, someone did it.
  112.  
  113. I had some problems
  114. o  If font-famlilies were converted, Textprocessors showed each font
  115.    for semselfes (e.g. Times-Bold, Times-Italic etc.) instead of 
  116.    grouping them.
  117. o  There was a bug in the table of characters higher than 128.
  118.    (bad to be a european :-)
  119.  
  120. Now the Program looks for a pfb-file and tries to extract some data
  121. (ItalicAngle, FontBBox, Weight, FamilyName) from there. If the  data
  122. is not there (I found out, that not all pfb-files contain ascii-data) 
  123. it tries to guess them from the font name by looking for words like
  124. "Bold, Italic, Heavy" and so on.
  125.  
  126. For sake of batch-processing I changed the command-line-parameters a 
  127. bit. Call it with a pfm-file and it builds the names of afm/pfb-files
  128. for itself. Convert all your files with 
  129.  
  130. CONVALL.CMD:
  131.     for %%a in (*.PFM) do pfm2afm %%a
  132.  
  133.  
  134. Markus Schmidt, Internet: m.schmidt@msn.rmi.DE
  135.