Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #20  
Antiguo 26-12-2017
lucho6007 lucho6007 is offline
Miembro
 
Registrado: ene 2009
Ubicación: Junín, pcia de BsAs, Argentina
Posts: 74
Poder: 16
lucho6007 Va por buen camino
Finalmente lo hice a mano, me basé en el codigo en Pyhton de PyAFIPws:
Código Delphi [-]
function GenerarImagen(AImage: TImage; Codigo: String; BaseWidth: Integer = 3; Width: Integer = 0; Height: Integer = 30): Boolean;
var Wide, Narrow, Barra, Espacio: Integer;
    BarraStr: String;
    XPos, I, J: Integer;

const Bars: array[0..11] of string = ('nnwwn', 'wnnnw', 'nwnnw', 'wwnnn', 'nnwnw', 'wnwnn', 'nwwnn', 'nnnww', 'wnnwn', 'nwnwn', 'nn', 'wn');
begin
  if AImage = nil then begin
    AImage:= TImage.Create(nil);
  end;

  Result:= False;
  Wide:= BaseWidth;
  Narrow:= BaseWidth div 3;

  if Odd(Length(Codigo)) then begin
    Codigo:= '0' + Codigo;
  end;

  Codigo:= '::' + Codigo + ';:'; // A y Z en el original

  if Width = 0 then begin
    Width:= (Length(Codigo) * 3) * BaseWidth + (10 * Narrow);
  end;
  AImage.Width:= Width;
  AImage.Height:= Height;

  AImage.Canvas.Pen.Color := clWhite;
  AImage.Canvas.Brush.Color:= clWhite;
  AImage.Canvas.Rectangle(0, 0, AImage.Width, AImage.Height);
  AImage.Canvas.Brush.Color:= clBlack;
  AImage.Canvas.Pen.Color := clBlack;

  XPos:= 18;
  I:= 1;
  while I <= Length(Codigo) do begin
    Barra:= Ord(Codigo[i]) - Ord('0');
    Espacio:= Ord(Codigo[I + 1]) - Ord('0');
    BarraStr:= '';
    for J:= 1 to Length(Bars[Barra]) do begin
      BarraStr:= BarraStr + Bars[Barra][J] + Bars[Espacio][J];
    end;

    for J:= 1 to Length(BarraStr) do begin
      if BarraStr[J] = 'n' then begin
        Width:= Narrow;
      end
      else begin
        Width:= Wide;
      end;
      if Odd(J) then begin
        AImage.Canvas.Rectangle(XPos, 0, XPos + Width, Height);
      end;
      XPos:= XPos + Width;
    end;
    Inc(I, 2);
  end;
  Result:= True;
end;

Última edición por lucho6007 fecha: 26-12-2017 a las 14:08:21. Razón: estaba mal el código de declaracion
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Factura Electronica - Afip Argentina Joe_Balda Varios 30 30-01-2021 04:10:34
Factura Electrónica AFIP Argentina SergioFrey Noticias 2 19-05-2017 21:02:03
xml+xsl a pdf(Factura Electronica) jgutti Varios 4 21-02-2012 16:08:23
factura electronica cmm07 Varios 4 02-04-2009 17:46:03
factura electronica spia Varios 2 22-02-2009 21:30:06


La franja horaria es GMT +2. Ahora son las 01:18:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi