Preciso de indicação de LIB Python

Eu preciso de uma lib que funcione no python para converter html em imagem.

Eu até tenho funcionando o imgkit que funciona com wkhtmltopdf.

O problema é o seguinte, o imgkit me atende mas o pacote wkhtmltopdf foi descontinuado e nem tem nos repositorios do debian 13.

Eu vou passar a usar o WeasePrint, mas ele converte para pdf e depois tenho q converter o pdf para img. Um salto a mais e ele quebra a imagem por pagina o imgkit gera uma imagem so de todo o html.

Não sendo ingrato, mas selenium e web drivers similares nao me serve, o custo computacional deles é bastante elevado. Levando em conta que devo gerar de 1000 a 3000 imagens por dia.

OBS: Utilizo para gerar relatorio e enviar para o usuario final um relatorio com uma tabela estilizada(viadagem que noob gosta de ver). E montar um relatorio de conversa para ficar similar a interface do zap a partir de um json.

Obrigado pela resposta. Eu já o usava isolado em container, a questão no qual eu decidi mudar é que o wkhtmltopdf não tem mais suporte e pelo o que entendi não vai ter mais atualização. O pacote wkthmltopdf não tem mais como instalar no debian 13, o meu receio é por não ter mais atualização e ele poder a vir causar uma brecha de segurança.

Eu migrei para o weasyprint como mencionei acima, mas ele não gera a imagem com o tabanho exato do html, ele gera um pdf dai tem que converter o Image PIl para imagem por conta disso ele gera a imagem do tamanho de uma folha A4, mas funciona.

Cara não manjo de python, mas se por acaso você precise de gráficos ou tabelas, caso não encontre outra alternativa. Uma outra possibilidade e encontrar uma biblioteca que gere as imagens direto das informações, sem ter que gerar o html antes.

1 curtida

Cara eu achei uma que não usa browser. Juro que pesquisei muito converter html para imagem. Dai hoje pesquisei gerador de relatório e achei a matplotlib.

Ela já gera a imagem p mim.

Quem quiser esse exemplo ta ai o código…

OBS: tem que instalar o matplotlib

pip install matplotlib

import numpy as np

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(7.67, 3))

# hide axes
#fig.patch.set_visible(False)
ax.axis('off')
ax.axis('tight')

fig.patch.set_facecolor('#4793E3')

data = [['30/10/2025', '170', 'XXXXX', '', 'R$ 323,13', 'R$ 68,86'],
        ['30/10/2025', '170', 'XXXXX', '', 'R$ 323,13', 'R$ 68,86'],
        ['30/10/2025', '170', 'XXXXX', '', 'R$ 323,13', 'R$ 68,86'],
        ['30/10/2025', '170', 'XXXXX', '', 'R$ 323,13', 'R$ 68,86'],
        ['30/10/2025', '170', 'XXXXX', '', 'R$ 323,13', 'R$ 68,86'],
        ['30/10/2025', '170', 'XXXXX', '', 'R$ 323,13', 'R$ 68,86'],
        ['30/10/2025', '170', 'XXXXX', '', 'R$ 323,13', 'R$ 68,86']]

columns = ('Dt Protocolo', 'Protocolo', 'Credor(a)', 'Natureza da Dívidia', 'Vlr. XXX', 'Vlr. XXX')



table = ax.table(cellText=data, colLabels=columns, loc='center', cellLoc='center')
#table.auto_set_font_size(False)
table.set_fontsize(20)
#table.scale(1, 1.5)  # Escalonar tamanho das células

#fig.tight_layout()

plt.savefig('foo.jpeg', dpi=300, bbox_inches='tight', format='png')

Ainda vou melhorar o visual.

1 curtida

Eu preciso por demanda, conforme o pessoal faz os request no chatbot. Eu ate vi algumas pagas mas sao economicamente inviaveis, 3000 mil conversao a 49 usd. Um cliente gasta isso em um dia. Mas eu resolvi com matplotlib.

1 curtida