// Enviar Datos a la Torreta
void Torreta(AnsiString vLinea)
{
vLinea=vLinea+" ";
vLinea=vLinea.SubString(1,20);
// Falta Parametrizar
String printerPort = "TORRETA"; // o aqui pon String printerPort = "LPT1:"
HANDLE printerHandle = 0;
PRINTER_DEFAULTS printerOptions;
printerOptions.pDatatype = "RAW";
printerOptions.pDevMode = NULL;
printerOptions.DesiredAccess = PRINTER_ACCESS_USE;
try
{
if (!OpenPrinter(printerPort.c_str(), &printerHandle, NULL)) throw "Error when opening printer port";
DOC_INFO_1 docInfo;
docInfo.pDocName = "TORRETA";
docInfo.pOutputFile = NULL;
docInfo.pDatatype = "RAW";
if (!StartDocPrinter(printerHandle, 1, (LPBYTE)&docInfo)) throw "Error when starting printing";
if (!StartPagePrinter(printerHandle)) throw "Error when starting a new page";
char* lineToPrint = "";
DWORD numBytesWritten;
//nsiString vClear=12; // CLR de la torreta
/*lineToPrint="\x12"; //vClear.c_str(); //
BOOL correct = WritePrinter(printerHandle, (LPVOID*)lineToPrint,
strlen(lineToPrint), &numBytesWritten);
*/
lineToPrint=vLinea.c_str(); // convertir linea a cadena
bool correct = WritePrinter(printerHandle, (LPVOID*)lineToPrint,
strlen(lineToPrint), &numBytesWritten);
if (!correct || numBytesWritten < DWORD(strlen(lineToPrint))) throw "Error al imprimir la linea";
if (!EndDocPrinter(printerHandle)) throw "Error al finalizr la impresion";
ClosePrinter(printerHandle);
}
catch (...)
{
// NO se pudo enviar a la torreta
}
}