O motivo de isso ser chato é que um CSV não tem página. Ele é uma grade sem limites, enquanto um PDF é uma pilha de retângulos fixos. Toda conversão precisa decidir onde cortar, e toda ferramenta que faz isso mal toma a mesma decisão: corta onde o papel acaba e deixa as colunas restantes caírem pela borda direita.
Então a pergunta útil não é "como converter", já que quase qualquer coisa gera um arquivo, mas quais colunas e quais linhas realmente vão para o PDF. Responda isso primeiro e a conversão fica trivial.
Antes de converter: reduza o arquivo
Um PDF de 40.000 linhas não é um documento, é um erro com tamanho de arquivo. Ninguém abre a página 612. Se o destinatário precisa de todas as linhas, envie o CSV.
O PDF é o formato certo quando a saída é para ser lida e não processada, o que significa que ela deve ser:
- Filtrada. As linhas relevantes para este destinatário, não a exportação inteira.
- Estreita. De seis a dez colunas cabem com legibilidade numa página A4 em paisagem. Quinze não cabem, em nenhum tamanho de fonte que uma pessoa vá ler.
- Resumida, com frequência. Um GROUP BY que transforma 40.000 linhas em 30 costuma ser o documento que realmente se queria.
Fazer isso antes da conversão é toda a diferença entre um relatório utilizável e 600 páginas de grade cortada.
Orientação e largura das colunas
Duas configurações decidem se o resultado fica legível, e as duas vêm erradas por padrão.
Paisagem, sempre, a menos que o arquivo tenha menos de cinco colunas. Em retrato, um A4 comporta cerca de seis colunas estreitas; em paisagem, dez.
Ajustar à largura, não a uma porcentagem. Toda planilha tem isso e quase ninguém encontra: no Excel fica em Layout da Página → Dimensionar para Ajustar → Largura: 1 página. Sem isso, as colunas da onze em diante são impressas num conjunto próprio de páginas depois da última linha, e é assim que você acaba com um PDF de 40 páginas para uma tabela de 12.
Depois, duas coisas que vale configurar uma vez só:
- Repetir a linha de cabeçalho em todas as páginas. O Excel chama isso de Imprimir Títulos → Linhas a repetir na parte superior. Uma tabela cujo cabeçalho aparece só na primeira página fica ilegível a partir da segunda.
- Ativar as linhas de grade. Elas vêm desligadas na impressão, e uma tabela larga sem elas é muito difícil de acompanhar na horizontal.
Os caminhos, por situação
De uma planilha, no computador
Abra o CSV, aplique as configurações acima e depois Imprimir → Salvar como PDF. É o resultado de melhor aparência entre todos os métodos aqui, e o único em que dá para colocar título e número de página sem escrever código.
Mas atenção à importação: ao abrir um CSV, o Excel converte tudo que parece uma data, e um PDF é um registro permanente desse erro. Uma coluna de IDs de pedido que chega como 43831 era 2020-01-01 no arquivo. Importe como texto se os dados tiverem IDs, zeros à esquerda ou números longos.
Pela linha de comando
Para uma tabela simples e correta, sem decisões de estilo:
csvlook data.csv | enscript -B -f Courier8 -o - | ps2pdf - out.pdf
Mais prático, se você quer controlar o layout, é passar pelo HTML. Todo sistema tem um navegador headless e os navegadores são excelentes em paginar tabelas:
csvtomd data.csv > table.md
pandoc table.md -o out.pdf
A vantagem do caminho via HTML é que @page { size: A4 landscape } e thead { display: table-header-group } numa folha de estilo dão exatamente as duas coisas que as planilhas enterram em caixas de diálogo: orientação e cabeçalhos repetidos.
Pelo celular
É aqui que a conversão realmente aparece: o arquivo está no seu e-mail, quem precisa dele quer algo que dê para ler na tela sem um aplicativo de planilha, e você não está perto de um notebook.
O essencial é o mesmo de sempre: filtrar e reduzir as colunas antes de exportar. Um PDF do tamanho de um celular com cinco colunas e quarenta linhas é uma boa entrega. Um PDF do arquivo inteiro, não.
Converte direto para PDF, com as colunas e o estilo da exportação escolhidos em vez de herdados. O editor visual de filtros ou uma consulta SQL reduzem antes o arquivo às linhas que valem a impressão, e esse é o passo que decide se o PDF fica legível.
O que ele fazQuando o PDF é a resposta errada
Três casos, que cobrem a maioria dos pedidos.
"Para que possam abrir sem o Excel." Eles já podem: um CSV abre no Bloco de Notas, no TextEdit, em qualquer navegador, no Google Planilhas, no Numbers e em todo celular. Se a preocupação é que fique feio, a solução costuma ser um arquivo mais estreito, não outro formato.
"Para que não possam alterar." Um PDF não é somente leitura em nenhum sentido relevante. É trivial de editar e trivial de extrair. Se o requisito é integridade, a resposta é uma assinatura ou um checksum, não um formato de arquivo.
"Para que possam usar os dados." O PDF é o pior contêiner possível para dados tabulares, e tirá-los de lá é uma tarefa em torno da qual existe toda uma indústria. Se o destinatário vai fazer qualquer coisa com os números, envie o CSV e, junto, um PDF de resumo.
Os casos genuínos para PDF: algo que será impresso, algo que será arquivado com paginação fixa, algo que será anexado a um registro formal ou algo cujo layout precisa sobreviver a um encaminhamento.
Fazendo parecer um relatório
Quatro coisas, em ordem de quanto melhoram o resultado:
- Alinhe números à direita e texto à esquerda. Nada muda tanto a legibilidade, e é uma única configuração.
- Fixe as casas decimais. Uma coluna que mistura
1.5e1.4999999parece desleixada e geralmente é um artefato de ponto flutuante, não precisão real. - Adicione cabeçalho e rodapé. Título, a data que os dados cobrem (não a data em que você imprimiu) e números de página.
- Diga o que é o arquivo. Uma linha no topo: a fonte, o filtro aplicado, a contagem de linhas. Seis meses depois, isso é a diferença entre um documento e um mistério.
Quando o arquivo precisa de ajustes antes de sair, seja uma coluna arredondada, um total calculado ou linhas excluídas, as colunas de fórmula resolvem no celular. O resultado é salvo dentro do CSV, então os números são os mesmos em qualquer programa que imprima.
O que ele fazGráficos em vez de tabelas
Vale perguntar antes de converter qualquer coisa: o destinatário quer as linhas ou a forma? Uma tendência de doze meses é uma linha, e uma tabela de doze meses é uma linha pior que leva mais tempo para ler.
A versão mais forte deste documento costuma ser um gráfico na primeira página e a tabela resumida atrás dele, o que é trabalho de dois minutos em qualquer ferramenta capaz de produzir os dois, e bem mais útil do que qualquer um dos dois sozinho.