/build/static/layout/Breadcrumb_cap_w.png

Problem installing PostScript Type 1 fonts

I have PostScript Type 1 font(s) (.pfb and .pfm) I'm trying to install with Wise Package Studio 5.6 HF1 (5.60.0.466).

Adding the .pfb and .pfm font files to FontsFolder folder.
The font is installed (viewable under Fonts directory) but not showing up as a available font in ex. wordpad, winword and so on. Also tried populating the Font table but same issue.

Using "Adobe Type Manager" (ATMLIB.DLL/5.1.2.226) to install the font(s) manual will do the trick.

I've also tried adding the "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Type 1 Installer\Type 1 Fonts" registry entry "Eurostile", "(T[~]eu______.PFM[~]eu______.PFB)" with no success.

The target is Windows XP Professional SP2 (English)

Any thoughts?

0 Comments   [ + ] Show comments

Answers (4)

Posted by: bheers 14 years ago
Second Degree Blue Belt
0
have you tried restarting the machine, the font files "sometimes" would not apply unless the machine is restarted.
Posted by: AngelD 14 years ago
Red Belt
0
Hi bheers,

Well, after some more testing I restarted the client and that did the trick, but I would like it to work directly without any reboot. As the ATM does this, it should work in some how.
Posted by: kevco 13 years ago
Yellow Belt
0
I realize this is an old thread but I found it while searching for a solution to the same problem. I never found a solution posted anywhere so I came up with one myself and I figured I'd share it here.

I read through the ATM API information and was able to figure out how to call atmlib.dll to add and remove Type 1 fonts. My MSI copies the PFM and PFB files to the c:\widnows\fonts and also made the corresponding registry entries in HKLM\Software\Microsoft\Windows NT\CurrentVersion\Type 1 Installer\Type 1 Fonts and then I run a wisescript custom action. The wisescript used the Call DLL Function configured as follows:

DLL PathName: %sys32%\atmlib.dll, Function Name
Function Name: ATMAddFont
Call a Funtion with variable parameter list:
string pointer, constant, [your font name]
word, constant, 256 (256 for regular, 257 for italic, 258 for bold, 259 for bold & italic)
string pointer, contant, c:\windows\fonts\[your font filename].pfm
string pointer, contant, c:\windows\fonts\[your font filename].pfb

To remove the font I used a wisescript that does the following (this has to be run before the files are removed):

DLL PathName: %sys32%\atmlib.dll, Function Name
Function Name: ATMRemoveFont
Call a Funtion with variable parameter list:
string pointer, constant, [your font name]
word, constant, NULL (NULL for regular, 1 for italic, NULL called a 2nd time for bold, 1 called a 2nd time for bold & italic)

From my understanding of the API calls, to remove the "bold" and "bold/italic" fonts I should be passing 3 and 4 respectively to the ATMRemoveFont function but it didn't work. However if ran the call once with NULL and then ran the same call with NULL again it would remove the regular font and then the bold font on the second pass. Same with italic and bold/italic. I'm not sure why but it works.

Hope this helps.


I tried using the "Call Custom DLL from Destination" action directly from my MSI, instead of using wisescript but couldn't get it working. There doesn't seem to be an option for to pass a "word" parameter, only dword or word pointer, neither of which worked for me.
Posted by: AngelD 13 years ago
Red Belt
0
Thanks for the info!

It was along time ago and in the end the customer had the same font in TrueType format which worked using the Font table.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ