Como converter arquivo CSV em arquivo PDF usando Python?
No mundo de hoje, os dados são gerados a um ritmo sem precedentes e é essencial ser capaz de os gerir e apresentar de forma eficaz. Arquivos CSV são comumente usados para armazenar e transferir dados entre sistemas, mas às vezes é necessário converter esses dados em um formato mais legível, como PDF.
Python, com sua vasta gama de bibliotecas, oferece uma maneira fácil e eficiente de converter arquivos CSV em arquivos PDF.
Neste artigo, exploraremos as etapas envolvidas na conversão de um arquivo CSV em um arquivo PDF usando Python e forneceremos um exemplo de código que você pode usar para começar. Quer você seja um analista de dados, um cientista ou apenas esteja procurando melhorar suas habilidades de apresentação de dados, este guia o ajudará a converter seus arquivos CSV em arquivos PDF com facilidade.
Abaixo está a abordagem mencionada que adotaremos para converter um arquivo CSV em um arquivo PDF em Python.
Convertendo arquivo CSV em HTML usando Pandas - Pandas é uma poderosa biblioteca Python usada para manipulação e análise de dados. Ele fornece um método chamado "read_csv" que nos permite ler o conteúdo de um arquivo CSV em um dataframe do pandas. Podemos então usar o método “to_html” para converter este dataframe em uma tabela HTML.
-
Conversão de arquivo HTML em PDF usando PDFkit Python API - PDFkit é um wrapper Python para o utilitário de linha de comando wkhtmltopdf . Ele nos permite converter arquivos HTML em arquivos PDF invocando o utilitário wkhtmltopdf em nosso script Python.
Digamos que temos um arquivo CSV chamado inputs.csv que contém os seguintes dados.
entradas.csv
Name, Age, Occupation
John, 32, Engineer
Jane, 28, Teacher
Bob, 45, Salesperson
Convertendo arquivo CSV para HTML
Agora vamos nos concentrar na primeira etapa, onde pegaremos o arquivo CSV acima como entrada e depois o converteremos em um arquivo HTML.
Exemplo
Considere o código mostrado abaixo.
main.py
# Import the pandas library
import pandas as pd
# Read the CSV file into a pandas dataframe
df = pd.read_csv('inputs.csv')
# Convert the dataframe to an HTML table
html_table = df.to_html()
# Print the HTML table to the console
print(html_table)
Explicação
import pandas as pd - Isso importa a biblioteca Pandas e fornece um alias "pd" para facilitar o uso posteriormente no código.
df=pd.read_csv('inputs.csv') - Isso lê o conteúdo do arquivo "inputs.csv" em um dataframe do pandas chamado "df". Presume-se que o conteúdo do arquivo seja separado por vírgulas, que é o separador padrão para o método "read_csv".
html_table=df.to_html() - Isso converte o dataframe "df" do pandas em uma tabela HTML e atribui o código HTML resultante à variável "html_table". Por padrão, este método inclui a coluna de índice do dataframe como a primeira coluna da tabela HTML.
print(html_table) - Imprime a tabela HTML no console. Alternativamente, você pode salvar a tabela HTML em um arquivo usando o método "write" da função "open".
Para executar o código acima precisamos primeiro instalar a biblioteca pandas em nossa máquina, e para isso podemos utilizar o comando mostrado abaixo.
Saída
A saída do comando acima é mostrada abaixo.
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Name</th>
<th>Age</th>
<th>Occupation</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>John</td>
<td>32</td>
<td>Engineer</td>
</tr>
<tr>
<th>1</th>
<td>Jane</td>
<td>28</td>
<td>Teacher</td>
</tr>
<tr>
<th>2</th>
<td>Bob</td>
<td>45</td>
<td>Salesperson</td>
</tr>
</tbody>
</table>
Convertendo o HTML para PDF
Para que possamos criar PDF a partir do CSV após convertê-lo para HTML, primeiro precisamos ter o wkhtmltopdf instalado em nosso sistema, e para isso podemos visitar a URL mostrada abaixo.
https://wkhtmltopdf.org/downloads.html
A partir do URL acima, podemos baixar a versão específica do executável wkhtmltopdf em nosso sistema.
Depois de instalado, podemos executar o código mostrado abaixo.
principal.py
import pdfkit
import pandas as pd
df = pd.read_csv('inputs.csv')
html_table = df.to_html()
options = { 'page-size': 'Letter',
'margin-top': '0mm',
'margin-right': '0mm',
'margin-bottom': '0mm',
'margin-left': '0mm'
}
pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_string(html_table, 'outputs.pdf', options=options)
Nota - Observe que na minha máquina, o wkhtmltopdf foi instalado no caminho: /usr/local/bin/wkhtmltopdf portanto eu passei esse caminho, pode variar para você .
Para executar o código acima, primeiro precisamos instalar a biblioteca pdfkit em nossa máquina, e para isso podemos utilizar o comando mostrado abaixo.
pip3 install pdfkit
Assim que o pdfkit for instalado com sucesso, podemos executar o comando mostrado abaixo
python3 main.py
Assim que executarmos o comando acima no terminal, um novo arquivo chamado outputs.pdf será criado na mesma pasta.
Abaixo está uma captura de tela anexada do arquivo "outputs.pdf".
Conclusão
Concluindo, a conversão de arquivos CSV em PDFs usando Python pode ser feita usando as bibliotecas pandas e pdfkit.
Primeiro, o arquivo CSV é convertido em uma tabela HTML usando pandas e, em seguida, a biblioteca pdfkit é usada para converter HTML em PDF. Com essa abordagem, é fácil gerar documentos PDF bem formatados e imprimíveis a partir de dados CSV.