Often users print from applications that support a font the printer doesn’t. An error occurs if an application uses a statement such as Printer.Print SomethingToPrint following a Printer.FontName = FontName statement, and the printer doesn’t support the FontName.
You can use this function procedure as a corrective measure after the error is trapped. This function procedure uses only one parameter-the font names specified by the application. If the printer doesn’t support the font, the function procedure returns a font on the printer most similar to the font in the application:
Function FindFont (SpecifiedFont As String)'find the font on the printer which is the 'closest to the font name passed to this procedure:Dim i%, tempfont%For i% = 1 To Printer.FontCount tempfont = InStr(Printer.Fonts(i%), SpecifiedFont) 'Get font's position. If tempfont <> 0 Then Exit For End IfNextIf tempfont <> 0 Then FindFont = Printer.Fonts(i%)Else 'take an action if no similar fonts are 'found on this printerEnd IfEnd Function
In your error handler, use this function in conjunction with the FontName property of the Printer object. After you take this corrective measure, resume the execution of your program:
Printer.FontName = FindFont(SpecifiedFont)Resume Next