PFM font files are not compatible with Windows and only can be installed by dragging them in the fonts folder via explorer if they have a PFB script file. I use a conversion tool from fontlab dot com to convert them usualy to TTF before I include them in a package such as a installer.
Font files can be best installed on Windows XP or newver creating a compact package such a microsoft cabinet file with a information file wich can be included or merged with another pack later.
There are more ways to create a inf file. The most hard one is for Windows 95 using fontreg and the most easy is using fontinst.
I use IExpress Wizard included in Windows to make standallone selfextract cabinet files and is best if this is done / build on the lower version of Windows witch should be supported using or including last versions of system files that ever work.
Will show as example the "European Union Expansion Font Update" for both Windows 9x and NT based.
1.
The layout inf file using FontReg should look like this, FontsUPD.inf:
; FontsUPD.INF
;
; This is the Setup information file for some optional aditional fonts
; not included in the Windows 98 product.
;
[version]
LayoutFile= FontsUPD.inf, Layout.inf, Layout1.inf, Layout2.inf
signature="$CHICAGO$"
SetupClass=BASE
[SourceDisksNames]
1 = "Fonts Files Upgrade for Windows 98-XP", , 01
[SourceDisksFiles]
PANMAP.DLL=1
FONTREG.EXE=1
FONTEXT.DLL=1
MFC30.DLL=1
FONTVIEW.EXE=1
ARIAL.TTF=1
ARIAL__R.TTF=1
ARIAL_YM.TTF=1
ARIALB_R.TTF=1
ARIALBD.TTF=1
ARIALBI.TTF=1
ARIALBIR.TTF=1
ARIALCAPS.TTF=1
ARIALI.TTF=1
ARIALI_R.TTF=1
ARIALN.TTF=1
ARIALNB.TTF=1
ARIALNBI.TTF=1
ARIALNI.TTF=1
ARIALUNI.TTF=1
ARIBLK.TTF=1
ARLRDBDO.TTF=1
ARLRDBDT.TTF=1
CALIBRI.TTF=1
CALIBRI0.TTF=1
CALIBRIB.TTF=1
CALIBRII.TTF=1
CALIBRIZ.TTF=1
SEGOE.TTF=1
SEGOEB.TTF=1
SEGOEPR.TTF=1
SEGOEPRB.TTF=1
SEGOESC.TTF=1
SEGOESCB.TTF=1
SEGOEUI.TTF=1
SEGOEUIB.TTF=1
SEGOEUII.TTF=1
SEGOEUIL.TTF=1
SEGOEUIZ.TTF=1
SEGUIBD.TTF=1
SEGUIBK.TTF=1
SEGUISB.TTF=1
SEGUISYM.TTF=1
TIMES.TTF=1
TIMESBD.TTF=1
TIMESBI.TTF=1
TIMESI.TTF=1
TAHOMA.TTF=1
TAHOMABD.TTF=1
TREBUC.TTF=1
TREBUCBD.TTF=1
TREBUCBI.TTF=1
TREBUCIT.TTF=1
VERDANA.TTF=1
VERDANAB.TTF=1
VERDANAI.TTF=1
VERDANAZ.TTF=1
[DestinationDirs]
CustomTTFonts = 11 ; LDID_SYS
folder.sys = 11
folder.win = 25
MultiLangInf = 17
[DefaultInstall]
CopyFiles = folder.sys, folder.win, CustomTTFonts
AddReg = folder.addre
[BaseWinOptions]
CustomTTFonts.Base
[CustomTTFonts.Base]
CopyFiles = folder.sys, folder.win, CustomTTFonts
AddReg = folder.addre
UpdateInis= CustomTTFonts.inis
;** Add Registry Entries ***
;** Register Font Review for Win95 ***
[folder.addreg]
HKCR,CLSID\BD84B381-8CA2-1069-AB1D-08000948F534,,,"PANOSE Core Mapper"
HKCR,CLSID\BD84B381-8CA2-1069-AB1D-08000948F534\InprocServer32,,,"panmap.dll"
HKCR,CLSID\BD84B381-8CA2-1069-AB1D-08000948F534\InprocServer32,ThreadingModel,,"Apartment"
HKCR,CLSID\BD84B380-8CA2-1069-AB1D-08000948F534,,,"%Font_Folder_Desc%"
HKCR,CLSID\BD84B380-8CA2-1069-AB1D-08000948F534\InProcServer32,,,"fontext.dll"
HKCR,CLSID\BD84B380-8CA2-1069-AB1D-08000948F534\InProcServer32,ThreadingModel,,"Apartment"
HKCR,CLSID\BD84B380-8CA2-1069-AB1D-08000948F534\DefaultIcon,,,"fontext.dll, -101"
HKCR,CLSID\BD84B380-8CA2-1069-AB1D-08000948F534\Hierarchical,,,"0"
HKCR,ttffile\shell
HKCR,ttffile\shell\open
HKCR,ttffile\shell\open\command,,,"%25%\fontview.exe %%1"
HKCR,ttffile\shell\print
HKCR,ttffile\shell\print\command,,,"%25%\fontview.exe /p %%1"
HKCR,fonfile\shell
HKCR,fonfile\shell\open
HKCR,fonfile\shell\open\command,,,"%25%\fontview.exe %%1"
HKCR,fonfile\shell\print
HKCR,fonfile\shell\print\command,,,"%25%\fontview.exe /p %%1"
; Set the System attribute on the Fonts folder:
; R=1; H=2; S=4; HS=6; SHR=7
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Win,,,%25%
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Win,FONTS,,"FONTS,4"
;****************************************************
;** Copy files ***
;**************************************************
[folder.sys]
panmap.dll
fontreg.exe
fontext.dll
mfc30.dll
[folder.win]
fontview.exe,,,8
;****************************************************
;*** This section added for Custom Fonts Support ***
;****************************************************
[CustomTTFonts]
; the "8" flag forces a rename since the files may be in use and we can't detect it.
ARIAL.TTF,,,8
ARIAL__R.TTF,,,8
ARIAL_YM.TTF,,,8
ARIALB_R.TTF,,,8
ARIALBD.TTF,,,8
ARIALBI.TTF,,,8
ARIALBIR.TTF,,,8
ARIALCAPS.TTF,,,8
ARIALI.TTF,,,8
ARIALI_R.TTF,,,8
ARIALN.TTF,,,8
ARIALNB.TTF,,,8
ARIALNBI.TTF,,,8
ARIALNI.TTF,,,8
ARIALUNI.TTF,,,8
ARIBLK.TTF,,,8
ARLRDBDO.TTF,,,8
ARLRDBDT.TTF,,,8
CALIBRI.TTF,,,8
CALIBRI0.TTF,,,8
CALIBRIB.TTF,,,8
CALIBRII.TTF,,,8
CALIBRIZ.TTF,,,8
SEGOE.TTF,,,8
SEGOEB.TTF,,,8
SEGOEPR.TTF,,,8
SEGOEPRB.TTF,,,8
SEGOESC.TTF,,,8
SEGOESCB.TTF,,,8
SEGOEUI.TTF,,,8
SEGOEUIB.TTF,,,8
SEGOEUII.TTF,,,8
SEGOEUIL.TTF,,,8
SEGOEUIZ.TTF,,,8
SEGUIBD.TTF,,,8
SEGUIBK.TTF,,,8
SEGUISB.TTF,,,8
SEGUISYM.TTF,,,8
TIMES.TTF,,,8
TIMESBD.TTF,,,8
TIMESBI.TTF,,,8
TIMESI.TTF,,,8
TAHOMA.TTF,,,8
TAHOMABD.TTF,,,8
TREBUC.TTF,,,8
TREBUCBD.TTF,,,8
TREBUCBI.TTF,,,8
TREBUCIT.TTF,,,8
VERDANA.TTF,,,8
VERDANAB.TTF,,,8
VERDANAI.TTF,,,8
VERDANAZ.TTF,,,8
;*** TTF End
[CustomTTFonts.inis]
win.ini,fonts,,"Arial (OpenType) = ARIAL.TTF"
win.ini,fonts,,"Arial RO (TrueType) = ARIAL__R.TTF"
win.ini,fonts,,"Arial Simbol (OpenType) = ARIAL_YM.TTF"
win.ini,fonts,,"Arial RO Bold (TrueType) = ARIALB_R.TTF"
win.ini,fonts,,"Arial Bold (OpenType) = ARIALBD.TTF"
win.ini,fonts,,"Arial Bold Italic (OpenType) = ARIALBI.TTF"
win.ini,fonts,,"Arial RO Bold Italic (TrueType) = ARIALBIR.TTF"
win.ini,fonts,,"Arial Caps (OpenType) = ARIALCAPS.TTF"
win.ini,fonts,,"Arial Italic (OpenType) = ARIALI.TTF"
win.ini,fonts,,"Arial RO Italic (TrueType) = ARIALI_R.TTF"
win.ini,fonts,,"Arial Narrow (OpenType) = ARIALN.TTF"
win.ini,fonts,,"Arial Narrow Bold (OpenType) = ARIALNB.TTF"
win.ini,fonts,,"Arial Narrow Bold Italic (OpenType) = ARIALNBI.TTF"
win.ini,fonts,,"Arial Narrow Italic (OpenType) = ARIALNI.TTF"
win.ini,fonts,,"Arial Unicode MS (OpenType) = ARIALUNI.TTF"
win.ini,fonts,,"Arial Black (TrueType) = ARIBLK.TTF"
win.ini,fonts,,"Arial Rouded MT Bold (OpenType) = ARLRDBDO.TTF"
win.ini,fonts,,"Arial Rouded Bold (TrueType) = ARLRDBDT.TTF"
win.ini,fonts,,"Calibri (OpenType) = CALIBRI.TTF"
win.ini,fonts,,"Calibri Caps (OpenType) = CALIBRI0.TTF"
win.ini,fonts,,"Calibri Bold (OpenType) = CALIBRIB.TTF"
win.ini,fonts,,"Calibri Italic (OpenType) = CALIBRII.TTF"
win.ini,fonts,,"Calibri Bold Italic (OpenType) = CALIBRIZ.TTF"
win.ini,fonts,,"Segoe Condensed (OpenType) = SEGOE.TTF"
win.ini,fonts,,"Segoe Condensed Bold (OpenType) = SEGOEB.TTF"
win.ini,fonts,,"Segoe Print (OpenType) = SEGOEPR.TTF"
win.ini,fonts,,"Segoe Print Bold (OpenType) = SEGOEPRB.TTF"
win.ini,fonts,,"Segoe Script (OpenType) = SEGOESC.TTF"
win.ini,fonts,,"Segoe Script Bold (OpenType) = SEGOESCB.TTF"
win.ini,fonts,,"Segoe UI (OpenType) = SEGOEUI.TTF"
win.ini,fonts,,"Segoe UI Bold (OpenType) = SEGOEUIB.TTF"
win.ini,fonts,,"Segoe UI Italic (OpenType) = SEGOEUII.TTF"
win.ini,fonts,,"Segoe UI Light (OpenType) = SEGOEUIL.TTF"
win.ini,fonts,,"Segoe UI Bold Italic (OpenType) = SEGOEUIZ.TTF"
win.ini,fonts,,"Segoe UI Bold Alfa (OpenType) = SEGUIBD.TTF"
win.ini,fonts,,"Segoe UI Alfa (OpenType) = SEGUIBK.TTF"
win.ini,fonts,,"Segoe UI Semibold (OpenType) = SEGUISB.TTF"
win.ini,fonts,,"Segoe UI Simbol (OpenType) = SEGUISYM.TTF"
win.ini,fonts,,"Tahoma (OpenType) = TAHOMA.TTF"
win.ini,fonts,,"Tahoma Bold (OpenType) = TAHOMABD.TTF"
win.ini,fonts,,"Trebuchet MS (OpenType) = TREBUC.TTF"
win.ini,fonts,,"Trebuchet MS Bold (OpenType) = TREBUCBD.TTF"
win.ini,fonts,,"Trebuchet MS Bold Italic (OpenType) = TREBUCBI.TTF"
win.ini,fonts,,"Trebuchet MS Italic (OpenType) = TREBUCIT.TTF"
; User-visible strings
[Strings]
;Non-Localizable strings:
;Localizable strings:
MSFontSizeOptions="Font Size Options"
TTFONTS ="True Type Fonts"
CustomTTFonts ="Custom True Type Fonts"
Font_Folder_Desc = "Fonts"
Bold ="Bold"
Italic ="Italic"
Bold.Italic ="Bold Italic"
PUI_DESC_FONTS = "Windows Setup - Fonts"
PUI_VERSION = "4,10,1,1"
;Normal Strings
Custom.Desc="Custom Fonts"
;end
Make sure that in wizard you include all files including the inf file if you plan to add a uninstall section, except the text files (License, etc.) to be show before and after extraction and the SED file used by the wizard.
In the wizard box select the layout information file:
2.
Using fontinst both executable and layout information file have to be named "fontinst".
The layout file using FontInst should look like this, fontinst.inf:
[fonts]
arial.ttf
arial__r.ttf
arial_ym.ttf
arialb_r.ttf
arialbd.ttf
arialbi.ttf
arialbir.ttf
arialcaps.ttf
ariali.ttf
ariali_r.ttf
arialn.ttf
arialnb.ttf
arialnbi.ttf
arialni.ttf
arialuni.ttf
ariblk.ttf
arlrdbdo.ttf
arlrdbdt.ttf
calibri.ttf
calibri0.ttf
calibrib.ttf
calibrii.ttf
calibriz.ttf
segoe.ttf
segoeb.ttf
segoepr.ttf
segoeprb.ttf
segoesc.ttf
segoescb.ttf
segoeui.ttf
segoeuib.ttf
segoeuii.ttf
segoeuil.ttf
segoeuiz.ttf
seguibd.ttf
seguibk.ttf
seguisb.ttf
seguisym.ttf
times.ttf
timesbd.ttf
timesbi.ttf
timesi.ttf
tahoma.ttf
tahomabd.ttf
trebuc.ttf
trebucbd.ttf
trebucit.ttf
trebucbi.ttf
verdana.ttf
verdanab.ttf
verdanai.ttf
verdanaz.ttf
In this case select in the wizard box the fontinst.exe and IExpress will add automaticly the paramenters if any neccesary:
I will post the SED file only for the fontinst:
[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=1
;HideExtractAnimation=0
HideExtractAnimation=1
UseLongFileName=1
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[Strings]
InstallPrompt=
DisplayLicense=eula.txt
FinishMessage=Microsoft European Union Expansion Font Update is now installed!
TargetName=FontsEUupdate.EXE
FriendlyName=Microsoft European Union Expansion Font Update!
AppLaunched=fontinst.exe
PostInstallCmd=<None>
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="ARIAL.TTF"
FILE1="ARIAL__R.TTF"
FILE2="ARIAL_YM.TTF"
FILE3="ARIALB_R.TTF"
FILE4="ARIALBD.TTF"
FILE5="ARIALBI.TTF"
FILE6="ARIALBIR.TTF"
FILE7="ARIALCAPS.TTF"
FILE8="ARIALI.TTF"
FILE9="ARIALI_R.TTF"
FILE10="ARIALN.TTF"
FILE11="ARIALNB.TTF"
FILE12="ARIALNBI.TTF"
FILE13="ARIALNI.TTF"
FILE14="ARIALUNI.TTF"
FILE15="ARIBLK.TTF"
FILE16="ARLRDBDO.TTF"
FILE17="ARLRDBDT.TTF"
FILE18="CALIBRI.TTF"
FILE19="CALIBRI0.TTF"
FILE20="CALIBRIB.TTF"
FILE21="CALIBRII.TTF"
FILE22="CALIBRIZ.TTF"
FILE23="FONTINST.EXE"
FILE24="FONTINST.INF"
FILE25="SEGOE.TTF"
FILE26="SEGOEB.TTF"
FILE27="SEGOEPR.TTF"
FILE28="SEGOEPRB.TTF"
FILE29="SEGOESC.TTF"
FILE30="SEGOESCB.TTF"
FILE31="SEGOEUI.TTF"
FILE32="SEGOEUIB.TTF"
FILE33="SEGOEUII.TTF"
FILE34="SEGOEUIL.TTF"
FILE35="SEGOEUIZ.TTF"
FILE36="SEGUIBD.TTF"
FILE37="SEGUIBK.TTF"
FILE38="SEGUISB.TTF"
FILE39="SEGUISYM.TTF"
FILE40="TAHOMA.TTF"
FILE41="TAHOMABD.TTF"
FILE42="TIMES.TTF"
FILE43="TIMESBD.TTF"
FILE44="TIMESBI.TTF"
FILE45="TIMESI.TTF"
FILE46="TREBUC.TTF"
FILE47="TREBUCBD.TTF"
FILE48="TREBUCBI.TTF"
FILE49="TREBUCIT.TTF"
FILE50="VERDANA.TTF"
FILE51="VERDANAB.TTF"
FILE52="VERDANAI.TTF"
FILE53="VERDANAZ.TTF"
[SourceFiles]
SourceFiles0=
[SourceFiles0]
%FILE0%=
%FILE1%=
%FILE2%=
%FILE3%=
%FILE4%=
%FILE5%=
%FILE6%=
%FILE7%=
%FILE8%=
%FILE9%=
%FILE10%=
%FILE11%=
%FILE12%=
%FILE13%=
%FILE14%=
%FILE15%=
%FILE16%=
%FILE17%=
%FILE18%=
%FILE19%=
%FILE20%=
%FILE21%=
%FILE22%=
%FILE23%=
%FILE24%=
%FILE25%=
%FILE26%=
%FILE27%=
%FILE28%=
%FILE29%=
%FILE30%=
%FILE31%=
%FILE32%=
%FILE33%=
%FILE34%=
%FILE35%=
%FILE36%=
%FILE37%=
%FILE38%=
%FILE39%=
%FILE40%=
%FILE41%=
%FILE42%=
%FILE43%=
%FILE44%=
%FILE45%=
%FILE46%=
%FILE47%=
%FILE48%=
%FILE49%=
%FILE50%=
%FILE51%=
%FILE52%=
%FILE53%=
I hope this will help.