Generar PDF para la nueva Factura A con leyenda

16 views
Skip to first unread message

Marcelo Javier Perales

unread,
Dec 23, 2025, 11:19:21 AM (2 days ago) Dec 23
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Para la generación del pdf utilizo VB6 para generar los CSV y de ahí el script del proyecto pyfepdf.py el cual tuve que modificar para que presente en lugar de la M la A y adicionalmente la leyenda.

 También tuve que hacer modificaciones en el CSV para que presente la leyenda en el mismo recuadro donde va la letra de la factura (ignoro si en otro lado es valida la leyenda, pero como así sale en por ejemplo comprobantes en línea, tomé eso como referencia).

Estos fueron los cambios:

Para archivo pyfepdf.py:

Buscar:

  1. Alrededor de la línea 145: El diccionario letras_fact

letras_fact = {(1, 2, 3, 4, 5, 39, 60, 63, 201, 202, 203): 'A',

               (6, 7, 8, 9, 10, 40, 61, 64, 206, 207, 208): 'B',

               (11, 12, 13, 15, 211, 212, 213): 'C',

               (51, 52, 53, 54): 'M',  # <-- Línea a cambiar Acá cambia la M por A

               (19, 20, 21): 'E',

               (91, ): 'R',

            }

 

Alrededor de la línea 640: En el método ProcesarPlantilla, busca donde está:

f.set('LETRA', letra_fact)

f.set('TipoCBTE', "COD.%02d" % int(fact['tipo_cbte']))

 

Justo después de esas líneas de arriba, agrega las tres leyendas que indico seguidamente, que trabajarán con las líneas agregadas a su vez en el factura.csv:

                  

                    # Leyenda para facturas tipo 51, 52 y 53 (operaciones sujetas a retención)

                    if int(fact['tipo_cbte']) in (51, 52, 53):

                        f.set('LEYENDA_RET1', 'OPERACI\xd3N')

                        f.set('LEYENDA_RET2', 'SUJETA A')

                        f.set('LEYENDA_RET3', 'RETENCI\xd3N')

                    else:

                        f.set('LEYENDA_RET1', '')

                        f.set('LEYENDA_RET2', '')

                        f.set('LEYENDA_RET3', '')

 

Modificaciones en CSV con el que trabaja pyfepdf.py (se pueden agregar al final de todo:

'LEYENDA_RET1';'T';94;28;106;29.30;'Arial';6;1;0;0;0x000000;0xFFFFFF;'C';'';2

'LEYENDA_RET2';'T';94;29.94;106;31.24;'Arial';6;1;0;0;0x000000;0xFFFFFF;'C';'';2

'LEYENDA_RET3';'T';94;31.88;106;33.38;'Arial';6;1;0;0;0x000000;0xFFFFFF;'C';'';2

 

Modificar estas dos líneas (son el recuadro de la letra de factura, para hacerlo más grande y que entre la leyenda) NO EDITAR LAS LÍNEAS ORIGINALES, SOLO COMENTARLAS PORQUE LAS VAS A NECESITAR

PARA LAS DEMÁS FACTURAS (tendras que valerte de algún if o select case). Pero para la ‘A’ con leyenda tienen que trabajar estas:

    'CuadroX';'B';92;15;108.50;35.50;'Arial';0;1;0;0;0x000000;0xFFFFFF;'I';None;2"

    'Linea1';'L';100;35.50;100;57;'Arial';0;0;0;0;0;0;'I';;3   


Eso es todo. Espero que alguien le sirva.

Saludos.

 

 

 


Reply all
Reply to author
Forward
0 new messages