Sending Output to a Printer (23976)



The information in this article applies to:

  • Microsoft C for MS-DOS 5.1
  • Microsoft C for MS-DOS 6.0
  • Microsoft C for MS-DOS 6.0a
  • Microsoft C for MS-DOS 6.0ax
  • Microsoft C/C++ for MS-DOS 7.0
  • Microsoft Visual C++ 1.5
  • Microsoft Visual C++ 1.0
  • Microsoft Visual C++ 2.0
  • Microsoft Visual C++ 4.0

This article was previously published under Q23976

SUMMARY

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

MORE INFORMATION

Method 1

The first method uses the fprintf() function with the preopened "stdprn" stream. The following code example demonstrates this technique:
   #include <stdio.h>
   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 <stdio.h>
   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.

REFERENCES

For more information on the int86() and int86x() functions, refer to the Microsoft C "Run-Time Library Reference" manual.

Modification Type:MajorLast Reviewed:12/1/2003
Keywords:KB23976