With FontLab, that looks quite easy. With FontForge, for those that are not Unix Shell or Python literate, that may be tricky. I thus wrote a small Mac application pfb2otf that you can download by clicking here and that makes it easy too: you double click the icon of pfb2otf, select the folder containing the afm and pfb files of the fonts to convert, and that is it. If the afm file is not there, you lose kerning.
Now for Mac programmers: if you have a look at the script
pfb2otf.app/Contents/MacOS/pfbtootf that does everything (in 70 lines or so), could you tell me what would have been the proper way to pass information from Applescript to the Unix shell? I fudged something using temporary files. Is there a good reference on this? Moreover, to show what is being done during processing, I display in a Finder window the otf files that are being generated; sometimes the displayed size is Zero KB, whilst the file is definitely not empty as we see when we check with File Info. Where is the bug?
May 13 2009: link to pfb2otf modified following this post.
May 13 2009: pfb2otf now returns an error if X11 is not installed.
May 14 2009: And here is pfb2otfpy, that does not require X11, and can also read data from pfm files.
Feb 02 2010 pfb2otf, that does not use the Python library but requires X11, also reads data from .pfm files when they are in the same folder as the .pfb files.
Dec 27 2011. The message for pfb2otf was changed to "Enter the folder with the font files to convert (listed in grey)"; you must indeed enter the folder containing the fonts to convert before clicking on Choose (tested on OS X 10.5, 10.6 and 10.7 with the MacPorts FontForge).