Using the printer in FPC and Lazarus can be done from high levels of abstraction down to being able to control what bytes get sent to the printer.
From high to low abstraction level:
- Printer4Lazarus package included with Lazarus.
- LazReport Documentation LazReport (depends on Printer4Lazarus package) allows creating reports that can be printed on any printer supported by the OS.
- Using the printer Tutorial on using printing in Lazarus, including painting of the printer "canvas".
- Hardware Access Byte level control over what gets sent over which physical connection.
- www.freepascal.org/docs-html/rtl/printer/index.html Turbo Pascal style unit that gives cross-platform but limited access (basically printing text files) to printers.
There may also be platform-specific code snippets, and API samples for the various OSes (FreeBSD, Linux, macOS, Windows etc) on the relevant wiki pages. If so, they can be linked to here.
- Using the printer tutorial.