One of the most common methods of doing most of what you describe is to use the specific printer's Programming Command Language (PCL).
This approach is consistent with your suggested CHR(xxx) method.
By sending the proper command strings to the printer prior to sending the text, you can control many printing properties - Condensed Font, Bold Font, etc.
Many dot-matrix printers use the old Epson FX-80 PCL as a "generic" standard, but some do not. You would need to check with your printer's manufacturer and/or its manuals to know for certain.
Once you have determined the appropriate and necessary PCL strings you can send them to the printer with either the
???CHR(xxx)
method directly in your code or by calling a function to send them.
Good Luck,
JRB-Bldr
VisionQuest Consulting
Business Analyst & CIO Consulting Services
CIOServices@yahoo.com