Chapter 5.2 - HP-PCL concatenated sequences and printer fonts
While normally each control code is designed to enable / disable one particular effect, the HP-PCL language allows concatenating multiple sequences that start with similar bytes.
For example: Esc(s3B (27,40,115,51,66 in decimal notation) enables the Bold effect, Esc(s17H (27,40,115,49,55,72) compress the font in 17 cpi, and Esc(s3B17H (27,40,115,51,66,49,55,72) performs both the actions in once.
If your source program makes use of HP concatenated strings, then you can select the "HP-Complex.Seq" or the "HP-Comp2.seq" emulation at Configuration -> Standard -> Escape to make Printfil manage them separately instead of twicking the default entries in the previous chapter to match the program's concatenated ones.
The HP-Complex.seq emulation setup PreProcess=1 in the [Sequences] section of the Printfil.ini file for this purpose (older Printfil versions did setup this parameter=.T., that's still a supported value, but now it's deprecated), while the HP-Comp2.Seq emulation setup PreProcess=3.
In addition, the HP-PCL emulation allows changing font face within a single print job, by using the hardware specific fonts embedded in the printer itself. For example, the header may be printed in Times New Roman, while the body may be printed in Courier.
Printfil makes use of Windows fonts instead of printer specific fonts so that the source job can be correctly rendered even on printers does NOT have any embedded font (GDI printers for example).
When PreProcess=1 or 3, Printfil detects the HP-PCL sequences used to switch the font and converts them into the corresponding ones to select the corresponding Windows font.
The HP-PCL sequence starts with Esc(s (27,40,115), then there's a number to identify the font, then it ends for T (84) or t (116). The table below shows which Windows font is used by Printfil instead of the HP font number in the PCL escape sequence.
If a font is not installed on your Windows system, then Printfil will use the default Windows font.
You can also make Printfil using a different Windows font instead of the printer font originally defined by the programmer in the source print job.
For this purpose a [Fonts] section can be used in the Printfil.ini file, when PreProcess=1 or 3 - It's automatically managed by the "Printer fonts" button at Configuration -> Standard -> Escape
For each single font in the table above you can choose to make Printfil using it (leaving the Windows font column empty), or choose "Default" to make Printfil using the Windows font selected at Configuration -> Standard, or even choose any other Windows font installed on your machine.
So, a job designed to be printed in Times New Roman + Courier by the original programmer may even be printed in Arial + Lucida Console with Printfil.