Búsqueda de sitios web

¿Cómo convertir un archivo CSV a un archivo PDF usando Python?


En el mundo actual, los datos se generan a un ritmo sin precedentes, y poder gestionarlos y presentarlos de forma eficaz es esencial. Los archivos CSV se utilizan habitualmente para almacenar y transferir datos entre sistemas, pero a veces es necesario convertir estos datos a un formato más legible, como PDF.

Python, con su amplia gama de bibliotecas, proporciona una manera fácil y eficiente de convertir archivos CSV a archivos PDF.

En este artículo, exploraremos los pasos necesarios para convertir un archivo CSV a un archivo PDF usando Python y le proporcionaremos un código de muestra que puede usar para comenzar. Si es analista de datos, científico o simplemente busca mejorar sus habilidades de presentación de datos, esta guía lo ayudará a convertir sus archivos CSV en archivos PDF con facilidad.

A continuación se muestra el enfoque mencionado que adoptaremos para convertir un archivo CSV en un archivo PDF en Python.

  • Conversión de archivos CSV a HTML usando Pandas: Pandas es una potente biblioteca de Python que se utiliza para la manipulación y el análisis de datos. Proporciona un método llamado "read_csv" que nos permite leer el contenido de un archivo CSV en un marco de datos de pandas. Luego podemos usar el método "to_html" para convertir este marco de datos en una tabla HTML.

  • Conversión de un archivo HTML a PDF usando PDFkit Python API: PDFkit es un contenedor de Python para la utilidad de línea de comandos wkhtmltopdf . Nos permite convertir archivos HTML a archivos PDF invocando la utilidad wkhtmltopdf desde nuestro script Python.

Digamos que tenemos un archivo CSV llamado inputs.csv que contiene los siguientes datos en su interior.

entradas.csv

Name, Age, Occupation
John, 32, Engineer
Jane, 28, Teacher
Bob, 45, Salesperson

Convertir un archivo CSV a HTML

Ahora centrémonos en el primer paso donde tomaremos el archivo CSV anterior como entrada y luego lo convertiremos en un archivo HTML.

Ejemplo

Considere el código que se muestra a continuación.

principal.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)

Explicación

  • importar pandas como pd: importa la biblioteca Pandas y le asigna un alias "pd" para facilitar su uso más adelante en el código.

  • df=pd.read_csv('inputs.csv'): lee el contenido del archivo "inputs.csv" en un marco de datos de pandas llamado "df". Se supone que el contenido del archivo está separado por comas, que es el separador predeterminado para el método "read_csv".

  • html_table=df.to_html() - Esto convierte el marco de datos de pandas "df" en una tabla HTML y asigna el código HTML resultante a la variable "html_table". De forma predeterminada, este método incluye la columna de índice del marco de datos como la primera columna de la tabla HTML.

  • print(html_table): esto imprime la tabla HTML en la consola. Alternativamente, puede guardar la tabla HTML en un archivo usando el método "escribir" de la función "abrir".

Para ejecutar el código anterior, primero necesitamos instalar la biblioteca pandas en nuestra máquina, y para eso podemos usar el comando que se muestra a continuación.

Producción

La salida del comando anterior se muestra a continuación.

<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>

Convertir el HTML a PDF

Para que podamos crear PDF desde el CSV después de convertirlo a HTML, primero debemos tener wkhtmltopdf instalado en nuestro sistema, y para eso podemos visitar la URL que se muestra a continuación.

https://wkhtmltopdf.org/downloads.html

Desde la URL anterior, podemos descargar la versión específica del ejecutable wkhtmltopdf en nuestro sistema.

Una vez instalado, podemos ejecutar el código que se muestra a continuación.

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 − Tenga en cuenta que en mi máquina, wkhtmltopdf se instaló en la ruta: /usr/local/bin/wkhtmltopdf, por lo tanto, pasé esa ruta, puede variar para usted. .

Para ejecutar el código anterior, primero necesitamos instalar la biblioteca pdfkit en nuestra máquina, y para eso podemos usar el comando que se muestra a continuación.

pip3 install pdfkit

Una vez que pdfkit se haya instalado correctamente, podemos ejecutar el comando que se muestra a continuación

python3 main.py

Una vez que ejecutemos el comando anterior en la terminal, se creará un nuevo archivo llamado salidas.pdf en la misma carpeta.

A continuación se adjunta una captura de pantalla del archivo "outputs.pdf".

Conclusión

En conclusión, la conversión de archivos CSV a PDF usando Python se puede realizar usando las bibliotecas pandas y pdfkit.

Primero, el archivo CSV se convierte en una tabla HTML usando pandas, y luego se usa la biblioteca pdfkit para convertir HTML a PDF. Con este enfoque, es fácil generar documentos PDF imprimibles y con un buen formato a partir de datos CSV.