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;
}


  • Dr. Ciro Bianco

    Pharmacist from Naples, Italy

    «Universal Document Converter excellently fulfilled my professional needs. It is easy to install, understand, and use. With Universal Document Converter I solved a number of organizational problems and sped up a myriad of tasks.»