Does anyone know how to get a c++ program to output to a usb printer or at the very least an acrobat distiller? I am trying to use the following:

ofstream print;
print.open("lpt1:", ios::out);

print<<"blah blah blah";


but I guess I have a usb printer and not a lpt1 printer. PLease help...I am going crazy here!!! :-)

MuthuIVS

Recommended Answers

All 8 Replies

You can use the printer's device driver and win32 API OpenPrinter and associated functions. (Scroll down to the bottom of the page and you will find other links).

Where is the printer name, What is a printer hadle and printer defaults. I am not sure what to pass into these parameter : OpenPrinter(PrinterName ,PrintHandle,&PrinterDefault)

Sorry, just have never had to print directly to a printer other than in COBOL.

MuthuIVS

Do you have to print to the printer directly? And is this related to your other thread?

Actually it is related to my other thread about making labels. I have tried outputting to a text file with 4 labels across and 20 vertically. The problem I am running into is that once it starts printing the next line it works ok but it starts shifting up a little so by the time the program prints anywhere between the middle and last rows are all shifted and the text isnt aligning with labels.

Is there a way to at least reduce my endl character to 0.5 points or something?

Instead of using a text file, use another format that lets you adjust the hieght between lines of the character and the page width. Check out RTF format.

Where is the printer name, What is a printer hadle and printer defaults. I am not sure what to pass into these parameter : OpenPrinter(PrinterName ,PrintHandle,&PrinterDefault)

Sorry, just have never had to print directly to a printer other than in COBOL.

MuthuIVS

You have to name the printer when you installed it. Start --> Printers & Faxes dialog will show all the printers that are installed on your computer.

There are some printer MFC and non-MFC c++ classes at www.codeproject.com that you can use as examples. Printing can become pretty complex, especially if you want lines such as on a form.

The problem I am running into is that once it starts printing the next line it works ok but it starts shifting up a little so by the time the program prints anywhere between the middle and last rows are all shifted and the text isnt aligning with labels.

Like this?

foo bar foo bar foo bar foo bar foo bar
 foo bar foo bar foo bar foo bar foo ba
r foo bar foo bar foo bar foo bar foo b
ar foo bar foo bar foo bar foo bar foo

No, the verticle distance of the printed charachters start to get smaller. but I have decided to get the program to write to a rtf file and use a rtf label template. It seem to work better than text files and simpler than a USB printer headache.

MuthuIVS

Like this?

foo bar foo bar foo bar foo bar foo bar
 foo bar foo bar foo bar foo bar foo ba
r foo bar foo bar foo bar foo bar foo b
ar foo bar foo bar foo bar foo bar foo
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.