FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
No funciana mandar fichero txt a impresora con XE2
Hola a todos
Me surge un problema y haber si alguien me puede orientar. Antes trabajaba con D6 y utilizaba una funcion (que pongo más abajo) para mandar a imprimir un fichero txt con códigos de escape de una zebra, hasta aquí todo bien y utilizo este método porque es muy rápido ante un quickreport y demás. El problema viene cuando ahora estoy utilizando XE2 y utilizó la misma función, el compilador no dice nada pero no se imprime lo que mando. Yo creo que el problema tiene que ver con los arrays of char y unicode, pero la verdad no se por donde metermano. Por eso os pidó ayuda. procedure imprimir(const sFileName:string;impresora:integer); const iBufferSize = 32768; var Count, BytesWritten: Cardinal; hPrinter, hDeviceMode: THandle; sDevice : array[0..255] of Char; sDriver : array[0..255] of Char; sPort : array[0..255] of Char; DocInfo: TDocInfo1A; f: File; pBuffer: Pointer; begin Printer.PrinterIndex := impresora; Printer.GetPrinter(sDevice, sDriver, sPort, hDeviceMode); if not WinSpool.OpenPrinter(@sDevice, hPrinter, nil) then exit; DocInfo.pDocName := 'Probando'; DocInfo.pDatatype := 'RAW'; DocInfo.pOutputFile := nil; if StartDocPrinter(hPrinter, 1, @DocInfo) = 0 then begin WinSpool.ClosePrinter(hPrinter); exit; end; if not StartPagePrinter(hPrinter) then begin EndDocPrinter(hPrinter); WinSpool.ClosePrinter(hPrinter); exit; end; System.Assign(f, sFileName); try Reset(f, 1); GetMem(pBuffer, iBufferSize); while not eof(f) do begin Blockread(f, pBuffer^, iBufferSize, Count); if Count > 0 then begin if not WritePrinter(hPrinter, pBuffer, Count, BytesWritten) then begin EndPagePrinter(hPrinter); EndDocPrinter(hPrinter); WinSpool.ClosePrinter(hPrinter); FreeMem(pBuffer, iBufferSize); exit; end; end; end; FreeMem(pBuffer, iBufferSize); EndDocPrinter(hPrinter); WinSpool.ClosePrinter(hPrinter); finally System.Closefile(f); end; end; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
seleccion de impresora y letra de la impresora | emeceuy | Impresión | 6 | 13-08-2017 14:11:05 |
Mandar a Puerto de Impresora | Carliviris | Varios | 1 | 11-01-2007 21:31:29 |
Obtener un fichero adjunto a un nodo de un fichero XML | muntasil | Internet | 0 | 18-07-2006 12:57:57 |
Como mandar datos a la impresora | Felix el Gato | JAVA | 3 | 27-04-2004 22:13:11 |
Mandar dos impresiones y cambiar de impresora Quick Report | MRSAM | Impresión | 2 | 18-02-2004 11:18:51 |
|