Microsoft KB Archive/23976

= Sending Output to a Printer =

Article ID: 23976

Article Last Modified on 12/1/2003

-

APPLIES TO


 * Microsoft C Professional Development System 5.1
 * Microsoft C Professional Development System 6.0
 * Microsoft C Professional Development System 6.0a
 * Microsoft C Professional Development System 6.0a
 * Microsoft C/C++ Professional Development System 7.0
 * Microsoft Visual C++ 1.5 Professional Edition
 * Microsoft Visual C++ 1.0 Professional Edition
 * Microsoft Visual C++ 2.0 Professional Edition
 * Microsoft Visual C++ 4.0 Standard Edition

-



This article was previously published under Q23976





SUMMARY
This article presents three methods an application can use to send output to a printer.



Method 1
The first method uses the fprintf function with the preopened "stdprn" stream. The following code example demonstrates this technique: #include   main {     fprintf(stdprn, "a line of text\n"); } This method works only in the MS-DOS operating system because the "stdprn" stream is not defined by Microsoft Windows or Microsoft Windows NT.

Method 2
Another method uses the fopen function to open the LPT1, LPT2, or PRN device as a file and uses the fprintf function to write data to the file handle returned by fopen. The following code example demonstrates this technique:

#include   main {     FILE *stream;

stream = fopen("PRN", "w"); fprintf(stream, "a line of text\n"); } This method works in Windows NT as well as the MS-DOS and Windows operating systems.

Method 3
Finally, in MS-DOS, an application can use the int86 or int86x functions to call one of the following BIOS printer services provided by Interrupt 17h:

service 0: send byte to the printer.

service 1: initialize the printer.

service 2: get printer status.

