From dd83b791a1b4d7c0c3fb044de6194d6aeb05984a Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Mon, 12 Nov 2018 23:42:10 -0300 Subject: [PATCH 01/11] =?UTF-8?q?C=C3=B3digo=20de=20barras=20opcional?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyboleto/pdf.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pyboleto/pdf.py b/pyboleto/pdf.py index c6fdc37..b774493 100644 --- a/pyboleto/pdf.py +++ b/pyboleto/pdf.py @@ -45,6 +45,7 @@ def __init__(self, file_descr, landscape=False): self.font_size_value = 9 self.delta_title = self.height_line - (self.font_size_title + 1) self.delta_font = self.font_size_value + 1 + self.print_barcode = True if landscape: pagesize = pagesize_landscape(A4) @@ -758,8 +759,9 @@ def _drawReciboCaixa(self, boleto_dados, x, y): boleto_dados.linha_digitavel ) - # Codigo de barras - self._codigoBarraI25(boleto_dados.barcode, 2 * self.space, 0) + # Código de barras + if self.print_barcode: + self._codigoBarraI25(boleto_dados.barcode, 2 * self.space, 0) self.pdf_canvas.restoreState() From f66bda5b0e35f9475ae620cf15f85cc16fe24690 Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Thu, 29 Oct 2020 16:57:52 -0300 Subject: [PATCH 02/11] =?UTF-8?q?Bump=20version=20para=20simplificar=20a?= =?UTF-8?q?=20identifica=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyboleto/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyboleto/__init__.py b/pyboleto/__init__.py index 887a342..f0a58d9 100644 --- a/pyboleto/__init__.py +++ b/pyboleto/__init__.py @@ -1 +1 @@ -__version__ = '1.0.7' +__version__ = '1.0.7-jf' From d708eee296e4e843925fa53ee9add0a2f9610d6c Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Fri, 30 Oct 2020 13:32:27 -0300 Subject: [PATCH 03/11] Fix package name (requirement for poetry) --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 34398a5..1be0459 100644 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ def get_version(package): ).group(1) setup( - name='python3-boleto', + name='python-boleto', version=get_version('pyboleto'), author='Trust-Code', author_email='suporte@trustcode.com.br', From ae056a3435fe20c76ff821b50438d85a178906dc Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Fri, 6 Nov 2020 01:30:13 -0300 Subject: [PATCH 04/11] Suporte para logo via file object (banco de dado) --- pyboleto/pdf.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyboleto/pdf.py b/pyboleto/pdf.py index b774493..91ba145 100644 --- a/pyboleto/pdf.py +++ b/pyboleto/pdf.py @@ -228,7 +228,10 @@ def _drawReciboSacado(self, boleto_dados, x, y): self.height_line) if boleto_dados.logo_image: - logo_image_path = load_image(boleto_dados.logo_image) + if not hasattr(boleto_dados.logo_image, 'read'): + logo_image_path = boleto_dados.logo_image + else: + logo_image_path = load_image(boleto_dados.logo_image) self.pdf_canvas.drawImage( logo_image_path, 0, (linha_inicial + 3) * self.height_line + 3, From 16f54419d36091c1c8ef3d6f67438e8ce363cb69 Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Fri, 6 Nov 2020 01:33:51 -0300 Subject: [PATCH 05/11] =?UTF-8?q?Vers=C3=A3o=201.0.7b-jf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyboleto/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyboleto/__init__.py b/pyboleto/__init__.py index f0a58d9..936d9da 100644 --- a/pyboleto/__init__.py +++ b/pyboleto/__init__.py @@ -1 +1 @@ -__version__ = '1.0.7-jf' +__version__ = '1.0.7b-jf' From 8b2f155da69d8197b2b702b50cdea27f82c7ec4a Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Fri, 6 Nov 2020 01:35:47 -0300 Subject: [PATCH 06/11] Melhoria no suporte para logo (via file) --- pyboleto/__init__.py | 2 +- pyboleto/pdf.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pyboleto/__init__.py b/pyboleto/__init__.py index 936d9da..dc1bcb9 100644 --- a/pyboleto/__init__.py +++ b/pyboleto/__init__.py @@ -1 +1 @@ -__version__ = '1.0.7b-jf' +__version__ = '1.0.7c-jf' diff --git a/pyboleto/pdf.py b/pyboleto/pdf.py index 91ba145..d66f76a 100644 --- a/pyboleto/pdf.py +++ b/pyboleto/pdf.py @@ -739,7 +739,10 @@ def _drawReciboCaixa(self, boleto_dados, x, y): self.__verticalLine(60 * mm, y, self.height_line) # Numero do Banco if boleto_dados.logo_image: - logo_image_path = load_image(boleto_dados.logo_image) + if not hasattr(boleto_dados.logo_image, 'read'): + logo_image_path = boleto_dados.logo_image + else: + logo_image_path = load_image(boleto_dados.logo_image) self.pdf_canvas.drawImage( logo_image_path, 0, From deae31a090b3229807df5d8110abb1a02338d91d Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Fri, 6 Nov 2020 01:39:01 -0300 Subject: [PATCH 07/11] =?UTF-8?q?Corre=C3=A7=C3=A3o=20no=20file=20object?= =?UTF-8?q?=20(logo)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyboleto/pdf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyboleto/pdf.py b/pyboleto/pdf.py index d66f76a..16f80c2 100644 --- a/pyboleto/pdf.py +++ b/pyboleto/pdf.py @@ -228,7 +228,7 @@ def _drawReciboSacado(self, boleto_dados, x, y): self.height_line) if boleto_dados.logo_image: - if not hasattr(boleto_dados.logo_image, 'read'): + if hasattr(boleto_dados.logo_image, 'read'): logo_image_path = boleto_dados.logo_image else: logo_image_path = load_image(boleto_dados.logo_image) @@ -739,7 +739,7 @@ def _drawReciboCaixa(self, boleto_dados, x, y): self.__verticalLine(60 * mm, y, self.height_line) # Numero do Banco if boleto_dados.logo_image: - if not hasattr(boleto_dados.logo_image, 'read'): + if hasattr(boleto_dados.logo_image, 'read'): logo_image_path = boleto_dados.logo_image else: logo_image_path = load_image(boleto_dados.logo_image) From 86f3f3c25560a6ea0a061631891dcef2966b7ca7 Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Fri, 6 Nov 2020 01:39:52 -0300 Subject: [PATCH 08/11] =?UTF-8?q?Vers=C3=A3o=201.0.7d-jf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyboleto/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyboleto/__init__.py b/pyboleto/__init__.py index dc1bcb9..9fccbba 100644 --- a/pyboleto/__init__.py +++ b/pyboleto/__init__.py @@ -1 +1 @@ -__version__ = '1.0.7c-jf' +__version__ = '1.0.7d-jf' From f4fe39128880c8228ea069e526c2bd43539c4fa4 Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Fri, 6 Nov 2020 01:47:22 -0300 Subject: [PATCH 09/11] Suporte para ImageReader (reportlab) --- pyboleto/__init__.py | 2 +- pyboleto/pdf.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pyboleto/__init__.py b/pyboleto/__init__.py index 9fccbba..8d334b3 100644 --- a/pyboleto/__init__.py +++ b/pyboleto/__init__.py @@ -1 +1 @@ -__version__ = '1.0.7d-jf' +__version__ = '1.0.7e-jf' diff --git a/pyboleto/pdf.py b/pyboleto/pdf.py index 16f80c2..5044207 100644 --- a/pyboleto/pdf.py +++ b/pyboleto/pdf.py @@ -15,6 +15,7 @@ from reportlab.lib.colors import black from reportlab.lib.pagesizes import A4, landscape as pagesize_landscape from reportlab.lib.units import mm, cm +from reportlab.lib.utils import ImageReader from reportlab.pdfbase.pdfmetrics import stringWidth from reportlab.pdfgen import canvas @@ -229,7 +230,7 @@ def _drawReciboSacado(self, boleto_dados, x, y): if boleto_dados.logo_image: if hasattr(boleto_dados.logo_image, 'read'): - logo_image_path = boleto_dados.logo_image + logo_image_path = ImageReader(boleto_dados.logo_image) else: logo_image_path = load_image(boleto_dados.logo_image) self.pdf_canvas.drawImage( @@ -740,7 +741,7 @@ def _drawReciboCaixa(self, boleto_dados, x, y): if boleto_dados.logo_image: if hasattr(boleto_dados.logo_image, 'read'): - logo_image_path = boleto_dados.logo_image + logo_image_path = ImageReader(boleto_dados.logo_image) else: logo_image_path = load_image(boleto_dados.logo_image) self.pdf_canvas.drawImage( From db59f5e3f0aab6f41d474a19fde3bc32847c86db Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Sun, 25 Sep 2022 22:08:51 -0300 Subject: [PATCH 10/11] =?UTF-8?q?Vers=C3=A3o=201.0.8=20(pep=20440)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyboleto/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyboleto/__init__.py b/pyboleto/__init__.py index 8d334b3..52e9a85 100644 --- a/pyboleto/__init__.py +++ b/pyboleto/__init__.py @@ -1 +1 @@ -__version__ = '1.0.7e-jf' +__version__ = '1.0.8' From 103c64d02ceea28d92a2a796808ea370e0555ba7 Mon Sep 17 00:00:00 2001 From: Juracy Filho Date: Mon, 14 Oct 2024 23:12:04 -0300 Subject: [PATCH 11/11] =?UTF-8?q?Suporte=20para=20boletos=20al=C3=A9m=20de?= =?UTF-8?q?=2022/02/2025?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyboleto/__init__.py | 2 +- pyboleto/data.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pyboleto/__init__.py b/pyboleto/__init__.py index 52e9a85..a682442 100644 --- a/pyboleto/__init__.py +++ b/pyboleto/__init__.py @@ -1 +1 @@ -__version__ = '1.0.8' +__version__ = '1.0.9' diff --git a/pyboleto/data.py b/pyboleto/data.py index 28cede0..443f3fd 100644 --- a/pyboleto/data.py +++ b/pyboleto/data.py @@ -212,10 +212,14 @@ def barcode(self): len(value))) due_date_days = (self.data_vencimento - _EPOCH).days - if not (9999 >= due_date_days >= 0): + if not (18999 >= due_date_days >= 0): raise TypeError( "Invalid date, must be between 1997/07/01 and " - "2024/11/15") + "2049/10/13") + # Support for dates beyond 2025/02/22 + # https://forum.casadodesenvolvedor.com.br/topic/47631-desvendando-o-mist%C3%A9rio-do-fator-de-vencimento-em-boletos-al%C3%A9m-do-9999/ + if due_date_days > 9999: + due_date_days -= 9000 num = "%s%1s%04d%010d%24s" % (self.codigo_banco, self.moeda, due_date_days,