Ver Mensaje Individual
  #6  
Antiguo 30-04-2012
gmendoza5426 gmendoza5426 is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 11
Reputación: 0
gmendoza5426 Va por buen camino
Hola Javier
Muy interesante tu codigo, de manera similar yo utilizo los comandos de la TM U950, justamente este tipo de impresion es lo que buscaba, a lo mejor soluciono de esta forma el problema que tengo hoy dia porque logre hacer imprimir el ticket directamente al puerto paralelo mediante el hilo que me dejo ecfisa, pero el problema es que no se como hacer que aumente el tamaño de mi impresion, es decir solo cierto numero de linea me permite imprimir en mi ticket, cuando mi ticket tiene demasiados detalles ya me imprimi solo hasta la linea 70 siempre, seguro abra alguna forma de decirle la cantidad de linea que quiero imprimir en mi documento, les dejo mi codigo a ver si me pueden decir con que comando lo puedo aumentar mi tamaño de impresion. De todas formas voy a mirar tu codigo, el tema es que recien despues de programar completamente la impresion de mi ticket me di cuanta de que solo 70 lineas me permite, es justo el largor de una hoja oficio. Coloco debajo de todo el codigo que utilizo hoy para imprimir, que como te comento mas arriba salio del hilo que me dejo ecfisa, si por ahi me pueden dar una manito de como hacer que me imprima mas de 70 lineas seria genial, porque lleva bastante tiempo armar todo de nuevo.

Desde ya muchas gracias por la ayuda.

Saludos
_____________________________________________________
Código Delphi [-]
unit impresiontmu220;
interface
Uses Printers;
procedure imprimirTicket220;

begin
//Inicio de Cabecera
  generarcabecera220;
  generardatosticket220;
  nitem := DMVentas.SQLCantItemcant.AsInteger;
   with TPrinter.Create do
   try
    x := Printer.PageWidth div 250;
    y := Printer.PageHeight div 80;
    nLin:= 1;
    BeginDoc;
    Canvas.Font.Name:= 'Courier New';//'Times new Roman';
    Canvas.Font.Size := 6;
    //Canvas.Font.Color:= clBlack;
    Canvas.Font.Height:= Printer.PageHeight div 80;
    PrintLine(Canvas,90, nLin, DMPrincipal.CDSEmpresanom_empresa.AsString);
    nLin:= LinesDown(Canvas, 2);
    PrintLine(Canvas,15, nLin, DMPrincipal.CDSEmpresanom_comercial.AsString );
    //nLin := nLin + 1;
    nLin:= LinesDown(Canvas, 3); // saltamos 1 linea
    PrintLine(Canvas,90, nLin, DMPrincipal.CDSSucursaltipo_sucursal.AsString );
    nLin:= LinesDown(Canvas, 4);
    PrintLine(Canvas,90, nLin, DMPrincipal.CDSSucursalnom_sucursal.AsString );
    nLin:= LinesDown(Canvas, 5);
    PrintLine(Canvas,90, nLin, 'RUC: '+ DMPrincipal.CDSEmpresaruc_empresa.AsString );
    nLin:= LinesDown(Canvas, 6); // saltamos 1 linea
    PrintLine(Canvas, 50, nLin, DMPrincipal.CDSSucursaldir_sucursal.AsString);
    nLin:= LinesDown(Canvas, 7); // saltamos 1 linea
    PrintLine(Canvas, 90, nLin, DMPrincipal.CDSSucursalciudad.AsString);
    //Fin de Cabecera
    nLin:= LinesDown(Canvas, 9); // saltamos 2 linea
    PrintLine(Canvas, 80, nLin, '***IVA INCLUIDO***');
    nLin:= LinesDown(Canvas, 10); // saltamos 1 linea
    PrintLine(Canvas, 80, nLin, 'TIMBRADO Nº: '+DMPrincipal.CDSEmpresanro_timbrado.AsString);
    nLin:= LinesDown(Canvas, 11); // saltamos 1 linea
    PrintLine(Canvas, 70, nLin, 'Válido hasta '+DMPrincipal.CDSEmpresafecha_venc_timbrado.AsString);
    nLin:= LinesDown(Canvas, 12); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'FACTURA CONTADO '+DMPrincipal.CDSSucursalcod_sucursal.AsString+'-'+DMVentas.CDSCajanro_caja_fiscal.AsString+'-'+
     Padear(DMVentas.CDSMovCajanro_ticket_fiscal.AsString,'0',7));
    nLin:= LinesDown(Canvas, 13); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, 14); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'FECHA:'+ DateToStr(DMVentas.CDSMovCajafecha.AsDateTime)+ '       HORA:'+DMVentas.CDSMovCajahora.AsString);
    nLin:= LinesDown(Canvas, 15); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'CAJERO: '+ sNombreCajero);
    nLin:= LinesDown(Canvas, 16); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'Caja/Ticket: '+ DMVentas.CDSMovCajanro_caja.AsString +' / '+DMVentas.CDSMovCajanro_transaccion.AsString);
    nLin:= LinesDown(Canvas, 17); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, 18); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'CLIENTE: ' + DMVentas.SQLClientenom_cliente.AsString);
    nLin:= LinesDown(Canvas, 19); // saltamos 1 linea
    if DMVentas.SQLClientesdig_verificador.IsNull then
       PrintLine(Canvas, x, nLin, 'RUC/CI: ' + DMVentas.SQLClientenro_documento.AsString)
    else
       PrintLine(Canvas, x, nLin, 'RUC/CI: ' + DMVentas.SQLClientenro_documento.AsString+'-'+DMVentas.SQLClientesdig_verificador.AsString);
    nLin:= LinesDown(Canvas, 12); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, 21); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'Articulo      Descrip.   IVA');
    nLin:= LinesDown(Canvas, 22); // saltamos 1 linea
    PrintLine(Canvas, 50, nLin, ' Cant     Precio      Importe');
    nLin:= LinesDown(Canvas, 23); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, linea);
    DMVentas.CDSDetMovCaja.First;
    while not DMVentas.CDSDetMovCaja.Eof do
    begin
      PrintLine(Canvas,x, nLin, DMVentas.CDSDetMovCajaarticulo.AsString + ' '+DMVentas.CDSDetMovCajadescripcion_ticket.AsString + 
Padear(DMVentas.CDSDetMovCajaiva.AsString,' ',3)+'%');
      if DMVentas.CDSDetMovCajaprecio_unitario.AsCurrency > 999 then
         precio := FormatFloat('0,000',DMVentas.CDSDetMovCajaprecio_unitario.AsCurrency)
      else
         precio := CurrToStr(DMVentas.CDSDetMovCajaprecio_unitario.AsCurrency);
      if DMVentas.CDSDetMovCajaprecio_total.AsCurrency > 999 then
         importe := FormatFloat('0,000',DMVentas.CDSDetMovCajaprecio_total.AsCurrency)
      else
         importe := CurrToStr(DMVentas.CDSDetMovCajaprecio_total.AsCurrency);
      PrintLine(Canvas,30, nLin, Padear(DMVentas.CDSDetMovCajacantidad.AsString,' ',6)+' x'+ Padear(precio,' ',10)+Padear(importe,' ',13));

      DMVentas.CDSDetMovCaja.Next;
    end;
    nLin:= LinesDown(Canvas, (nitem * 2)+24); // saltamos 1 linea despues del ultimo detalle
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, (nitem * 2)+25); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'Cant. de Item:'+IntToStr(nitem));
    if DMVentas.CDSMovCajatotal_venta.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_venta.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_venta.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+26); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, PadearDerecho('NETO A PAGAR',' ',20)+':'+ Padear(aux,' ',12));
    nLin:= LinesDown(Canvas, (nitem * 2)+27); // saltamos 1 linea
    PrintLine(Canvas, x, nLin, 'PAGOS');
    //Imprimimos los pagos
    DMVentas.CDSDetPago.First;
    while not DMVentas.CDSDetPago.Eof do
    begin
      //npagos := npagos + 1;
      DMVentas.SQLNomPago.Params.ParamByName('cod_tp_medio_pago').AsInteger := DMVentas.CDSDetPagocod_tp_medio_pago.Value;
      UCerrarAbrirPG(DMVentas.SQLNomPago,nil);
      if DMVentas.CDSDetPagomonto_moneda.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSDetPagomonto_moneda.AsCurrency)
      else
       aux := CurrToStr(DMVentas.CDSDetPagomonto_moneda.AsCurrency);
       PrintLine(Canvas, x, nLin, PadearDerecho(DMVentas.SQLNomPagodes_tp_medio_pago.AsString,' ',20)+':'+ Padear(aux,' ',12));
      DMVentas.CDSDetPago.Next;
    end;
    if DMVentas.CDSPagototal_pago.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSPagototal_pago.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSPagototal_pago.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+28);
    PrintLine(Canvas, x, nLin, PadearDerecho('NETO PAGADO',' ',20)+':'+ Padear(aux,' ',12));
    if DMVentas.CDSPagovuelto.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSPagovuelto.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSPagovuelto.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+29);
    PrintLine(Canvas, x, nLin, PadearDerecho('VUELTO',' ',20)+':'+ Padear(aux,' ',12));
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+30);
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+31);
    PrintLine(Canvas, x, nLin, 'DETALLE POR CONCEPTOS');
    if DMVentas.CDSMovCajatotal_ex.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_ex.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_ex.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+32);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total exentas',' ',20)+':'+ Padear(aux,' ',12));
    if DMVentas.CDSMovCajatotal_gr_5.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_gr_5.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_gr_5.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+33);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total Grabadas 5%',' ',20)+':'+ Padear(aux,' ',12));
    if DMVentas.CDSMovCajatotal_gr_10.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_gr_10.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_gr_10.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+34);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total Grabadas 10%',' ',20)+':'+ Padear(aux,' ',12));
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+35);
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+36);
    PrintLine(Canvas, x, nLin, 'LIQUIDACION IVA');
    if DMVentas.CDSMovCajatot_iva_5.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatot_iva_5.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatot_iva_5.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+37);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total IVA 5%',' ',20)+':'+ Padear(aux,' ',12));
    if DMVentas.CDSMovCajatot_iva_10.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatot_iva_10.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatot_iva_10.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+38);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total IVA 10%',' ',20)+':'+ Padear(aux,' ',12));
    //Total IVA
    if DMVentas.CDSMovCajatotal_iva.AsCurrency > 999 then
       aux := FormatFloat('0,000',DMVentas.CDSMovCajatotal_iva.AsCurrency)
    else
       aux := CurrToStr(DMVentas.CDSMovCajatotal_iva.AsCurrency);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+39);
    PrintLine(Canvas, x, nLin, PadearDerecho('Total IVA',' ',20)+':'+ Padear(aux,' ',12));
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+40);
    PrintLine(Canvas, x, nLin, linea);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+41);
    PrintLine(Canvas, x, nLin, DMPrincipal.CDSImpLeyendasleyenda_pie_1.AsString);
    nLin:= LinesDown(Canvas, (nitem * 2)+npagos+42);
    PrintLine(Canvas, x, nLin, ' .  ');
    EndDoc;
  finally
    Free;
  end;
end;

Última edición por Casimiro Notevi fecha: 30-04-2012 a las 17:08:48.
Responder Con Cita