Hello. I don't use LPRINT for printing. I'm using _PRINTIMAGE. It's easier to work with. In addition, some LPRINT escape codes do not work correctly under QB64. To use LPRINT, the printer must be set as Windows default and must be LPT or USB.
Copyed from Help:
There are some Windows command line statements that allow one to (i) identify the current Windows default printer (as well as other printers associated with a PC) and (ii) change the default to a different printer.
A program can use SHELL statements in QB64 to execute those operating system commands. See the following examples provided by forum member DonW:
Contents
This code issues the command to display a PC's list of printers and routes the output to a text file:
SHELL _HIDE "CMD /C" + "wmic printer get name,default > default.txt"
A sample of the contents of the resulting file is as follows. Notice that the default printer is listed as "TRUE":
Default Name
FALSE Microsoft XPS Document Writer
TRUE HP Photosmart C7200 series
FALSE HP Officejet Pro 8600
FALSE Fax
Here is the code to set the default printer to the "HP Officejet Pro 8600" listed in the sample above:
SHELL _HIDE "CMD /C" + "wmic printer where name='HP Officejet Pro 8600' call setdefaultprinter"
Then running the get default SHELL code again, we see the following contents of the text file:
Default Name
FALSE Microsoft XPS Document Writer
FALSE HP Photosmart C7200 series
TRUE HP Officejet Pro 8600
FALSE Fax
Now we see that the "HP Officejet Pro 8600" is marked as "TRUE", and thus is now the default printer for LPRINT and _PRINTIMAGE.
Example with _PRINTIMAGE:
PrintImage
= _NEWIMAGE(210 * 3, 297 * 3, 32) 'A4 paper size is 210x297, for smoother output i set virtual screen 3x biggest_DEST PrintImage
'all graphic operations are now created on this unvisible screen 'now your code:
text$ = "This is printed"
_PUTIMAGE (300, 300)-(600, 600), _SCREENIMAGE 'Print current screen to paper (place it as image to virtual screen and then is printed), SCREENIMAGE works under Windows only
'show you, what is ready for printing
'and print it