FormsPrinter && abstract class to define the interface PCL4FormsPrinter && fully functional PCL4 class UserSpecificPrinterA && if needed to add PostscriptFormsPrinter && fully functional Postscript UserSpecificPrinterBThere's also the new report features of Europa where a forms engine like this could be put to use but it'd be simple because it could just be written to GDI+ and let the O/S deal with the printer specifics.
>define class virtual_printer as custom > >output_type='PostScript' >procedure write_at >lparameters nTop , nLeft,cOutpuText > >do case > case this.output_type = 'PCL4' > this.pcl4_write_at(lparameters nTop , nLeft,cOutpuText) > > case this.output_type = 'PostScript' > this.postsript_write_at(lparameters nTop , nLeft,cOutpuText) >endcase >enddefine >>