Send an Image File Directly to Printer
Universal Document Converter is the software based on virtual printering. With Universal Document Converter practically any document can be saved as a PDF file or an image file. You can use a post-print feature of Universal Document Converter to apply additional processing to every output file. The example below is just one of many post-print processing solutions.
// Some professional printers allow you send image files directly
// without opening in graphics viewer. In some cases you can receive
// better results if you print your drawing to high-resolution
// image file using Universal Document Converter and then send this
// image file to the printer directly.
#include "Winspool.h"
#include <io.h>
BOOL Img2Printer(char* filePath, char* prnName)
{
HANDLE prnHandle;
DOC_INFO_1 di;
DWORD cWritten, len;
BOOL retCode;
FILE *fp;
char *buff;
////
fp = fopen( filePath, "rb" );
if( !fp ) return 0;
len = _filelength( fileno(fp) );
buff = new char[len];
fread( buff, len, 1, fp );
fclose( fp );
////
if( !::OpenPrinter( prnName, &prnHandle, 0 ) )
{
delete buff;
return 0;
}
////
di.pDocName = "My Image File";
di.pOutputFile = 0;
di.pDatatype = "RAW";
if( !::StartDocPrinter( prnHandle, 1, (LPBYTE)&di ) )
return 0;
retCode = ::WritePrinter( prnHandle, buff, len, &cWritten );
::EndDocPrinter( prnHandle );
ClosePrinter( prnHandle );
delete buff;
return retCode;
}