mygems

Cómo convertir un CSV a PDF

Un CSV no tiene páginas y un PDF son solo páginas, por eso las columnas se salen del borde. Cómo decidir qué incluir antes de convertir.

Por uos ·

Lo molesto de esto es que un CSV no tiene páginas. Es una cuadrícula sin límites, mientras que un PDF es una pila de rectángulos fijos. Toda conversión tiene que decidir dónde cortar, y todas las herramientas que lo hacen mal toman la misma decisión: cortar donde se acaba el papel y dejar que las columnas restantes se caigan por el borde derecho.

Así que la pregunta útil no es "cómo convierto", ya que casi cualquier cosa generará un archivo, sino qué columnas y qué filas van realmente al PDF. Responde eso primero y la conversión es trivial.

Antes de convertir: reduce el archivo

Un PDF de 40.000 filas no es un documento, es un error con tamaño de archivo. Nadie abre la página 612. Si el destinatario necesita todas las filas, envíale el CSV.

El PDF es el formato correcto cuando el resultado está pensado para leerse y no para procesarse, lo que significa que debería ser:

  • Filtrado. Las filas relevantes para este destinatario, no toda la exportación.
  • Estrecho. De seis a diez columnas caben con claridad en una página A4 horizontal. Quince no, con ningún tamaño de letra que una persona vaya a leer.
  • Resumido, muchas veces. Un GROUP BY que convierte 40.000 filas en 30 suele ser el documento que realmente se quería.

Hacer esto antes de la conversión es toda la diferencia entre un informe útil y 600 páginas de cuadrícula cortada.

Orientación y ancho de columna

Dos ajustes deciden si el resultado se lee bien, y ambos vienen mal por defecto.

Horizontal, siempre, salvo que el archivo tenga menos de cinco columnas. En vertical, un A4 admite unas seis columnas estrechas; en horizontal, diez.

Ajustar al ancho, no a un porcentaje. Todas las hojas de cálculo lo tienen y casi nadie lo encuentra: en Excel está en Diseño de página → Ajustar área de impresión → Ancho: 1 página. Sin eso, las columnas de la once en adelante se imprimen en su propio grupo de páginas después de la última fila, y así es como acabas con un PDF de 40 páginas para una tabla de 12.

Después, dos cosas que conviene configurar una sola vez:

  • Repetir la fila de encabezado en cada página. Excel lo llama Imprimir títulos → Repetir filas en extremo superior. Una tabla cuyo encabezado aparece solo en la primera página es ilegible desde la segunda.
  • Activar las líneas de cuadrícula. Al imprimir vienen desactivadas, y una tabla ancha sin ellas es muy difícil de seguir en horizontal.

Las vías, según la situación

Desde una hoja de cálculo, en el escritorio

Abre el CSV, aplica los ajustes anteriores y luego Imprimir → Guardar como PDF. Es el resultado de mejor aspecto de todos los métodos aquí descritos, y el único en el que puedes poner un título y números de página sin escribir código.

Eso sí, ojo con la importación: al abrir un CSV, Excel convierte todo lo que parezca una fecha, y un PDF es un registro permanente de ese error. Una columna de ID de pedido que llega como 43831 era 2020-01-01 en el archivo. Importa como texto si los datos incluyen ID, ceros a la izquierda o números largos.

Desde la línea de comandos

Para una tabla simple y correcta, sin decisiones de estilo:

csvlook data.csv | enscript -B -f Courier8 -o - | ps2pdf - out.pdf

Más práctico, si quieres controlar el diseño, es pasar por HTML. Todos los sistemas tienen un navegador sin interfaz y los navegadores paginan tablas de maravilla:

csvtomd data.csv > table.md
pandoc table.md -o out.pdf

La ventaja de la vía HTML es que @page { size: A4 landscape } y thead { display: table-header-group } en una hoja de estilos te dan justo las dos cosas que las hojas de cálculo entierran en cuadros de diálogo: la orientación y los encabezados repetidos.

Desde el celular

Aquí es donde la conversión realmente surge: el archivo está en tu correo, la persona que lo necesita quiere algo que pueda leer en pantalla sin una app de hojas de cálculo, y no estás cerca de una laptop.

Lo importante es lo mismo que en todos lados: filtrar y reducir columnas antes de exportar. Un PDF del tamaño de un celular con cinco columnas y cuarenta filas es un buen entregable. Un PDF del archivo completo, no.

CSV File Viewer - Smart CSViPhone y iPad · Android

Convierte a PDF directamente, con las columnas y el estilo de la exportación elegidos en lugar de heredados. El editor visual de filtros o una consulta SQL reducen antes el archivo a las filas que vale la pena imprimir, que es el paso que decide si el PDF se puede leer.

Qué hace

Cuándo un PDF es la respuesta equivocada

Tres casos, que cubren la mayoría de las solicitudes.

"Para que lo puedan abrir sin Excel." Ya pueden: un CSV se abre en el Bloc de notas, TextEdit, cualquier navegador, Google Sheets, Numbers y todos los celulares. Si preocupa que se vea mal, la solución suele ser un archivo más estrecho, no otro formato.

"Para que no lo puedan modificar." Un PDF no es de solo lectura en ningún sentido que importe. Se edita con facilidad y se extrae con facilidad. Si el requisito es la integridad, la respuesta es una firma o una suma de verificación, no un formato de archivo.

"Para que puedan usar los datos." Un PDF es el peor contenedor posible para datos tabulares, y sacarlos de ahí es una tarea alrededor de la cual hay toda una industria. Si el destinatario va a hacer algo con los números, envía el CSV y, junto a él, un PDF de resumen.

Los casos genuinos para un PDF: algo que se va a imprimir, algo que se archiva con paginación fija, algo que se adjunta a un registro formal o algo cuyo diseño debe sobrevivir a un reenvío.

Que parezca un informe

Cuatro cosas, ordenadas por cuánto mejoran el resultado:

  1. Alinea los números a la derecha y el texto a la izquierda. Nada cambia tanto la legibilidad, y es un solo ajuste.
  2. Fija los decimales. Una columna que mezcla 1.5 y 1.4999999 se ve descuidada y casi siempre es un artefacto de coma flotante, no precisión real.
  3. Agrega encabezado y pie de página. Título, la fecha que cubren los datos (no la fecha en que imprimiste) y números de página.
  4. Di qué es el archivo. Una línea arriba: la fuente, el filtro aplicado, el número de filas. Seis meses después, eso marca la diferencia entre un documento y un misterio.
CSV Editor - Smart CSViPhone y iPad

Cuando el archivo necesita arreglos antes de enviarse, sea una columna redondeada, un total calculado o filas eliminadas, las columnas de fórmulas lo resuelven en el celular. El resultado se guarda dentro del CSV, así que los números son los mismos con cualquier programa que lo imprima.

Qué hace

Gráficos en lugar de tablas

Vale la pena preguntarse antes de convertir nada: ¿el destinatario quiere las filas o la forma? Una tendencia de doce meses es una línea, y una tabla de doce meses es una línea peor que tarda más en leerse.

La mejor versión de este documento suele ser un gráfico en la primera página y la tabla resumida detrás. Es un trabajo de dos minutos en cualquier herramienta que produzca ambos, y bastante más útil que cualquiera de los dos por separado.

Preguntas

¿Cómo convierto un archivo CSV a PDF?
Ábrelo en una hoja de cálculo, configura orientación horizontal y 'ajustar al ancho: 1 página', activa la repetición de filas de encabezado y las líneas de cuadrícula, y luego imprime a PDF. En la línea de comandos, convierte a HTML o Markdown y deja que un navegador o pandoc lo pagine. En un celular, una app que exporte PDF directamente lo hace en un par de toques. En los tres casos, filtrar antes el archivo es lo que decide si el resultado se puede leer.
¿Por qué se cortan mis columnas en el PDF?
Porque la escala de impresión viene por defecto al 100 %, así que lo que excede el ancho de la página se imprime en un grupo de páginas aparte después de la última fila en lugar de reducirse. Configura 'ajustar al ancho: 1 página'; en Excel está en Diseño de página → Ajustar área de impresión. Si la tabla sigue sin poder leerse a ese tamaño, el archivo tiene demasiadas columnas para una página y hay que reducir columnas en vez de encoger.
¿Cómo repito la fila de encabezado en cada página del PDF?
En Excel es Diseño de página → Imprimir títulos → 'Repetir filas en extremo superior', apuntando a la fila de encabezado. En Google Sheets es Imprimir → Encabezados y pies de página → Repetir filas inmovilizadas. En una conversión basada en HTML, poner el encabezado en un `thead` y definir `display: table-header-group` hace lo mismo.
¿Debo enviar un PDF o el CSV?
Envía el CSV si el destinatario va a hacer algo con los números, porque un PDF es el contenedor del que más cuesta recuperar datos tabulares. Envía un PDF cuando el resultado esté pensado para leerse, imprimirse o archivarse con paginación fija. Un PDF no vuelve los datos no editables, así que no es la respuesta si la preocupación es la integridad.
¿Cuántas filas debe tener una exportación de CSV a PDF?
Las menos que respondan la pregunta. Un PDF de decenas de miles de filas no es un documento que alguien lea más allá de la primera página. Filtra a las filas relevantes o resume con un GROUP BY. Treinta filas de resumen y un gráfico suelen ser lo que realmente se quería, y el archivo completo es mejor adjuntarlo como el CSV original.
¿Por qué cambiaron mis fechas e ID en el PDF?
La hoja de cálculo los convirtió al importar, antes de que existiera el PDF. Los ID de pedido se vuelven fechas en serie, los números largos pasan a notación científica y los ceros a la izquierda desaparecen. Importa el CSV como texto en lugar de dejar que las columnas se detecten automáticamente, o convierte con una herramienta que no reinterprete los valores. El PDF registra de forma permanente cualquier error ocurrido antes.

uos — Desarrollo Smart CSV Viewer, que exporta PDF, así que la pregunta de qué debe y qué no debe ir en uno surge con frecuencia.