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


  • «Universal Document Converter  is a instrument that allows me to do my CRM consultant work much faster. It converts Documents for my clients,  in various Formats such as  PDF, docx, and even image diagrams in  JPEG, BMP, PCX, PNG, with the best conversion quality!»