Skip to content

CSV to PDF converter

CSV → PDF typesets the rows as a proper table with repeating header, switching to landscape for wide files, instead of printing a spreadsheet grid.

  • Converted with Table engine → Document engine → PDF renderer · input deleted within 24 h
  • Free: 5 conversions a day · 5 MB each
  • Higher limits →

From real runs

What you get — and what changes

  • Rows and columns Kept

    The 4-row, 5-column sample became a five-column table with all four rows; a 15-row, 12-column file kept every cell across two pages.

  • Header row Kept

    The first CSV line is set as the table header with a rule beneath it and is repeated at the top of every continuation page.

  • Page orientation Changed

    Files with 7 or more columns are typeset landscape at 9 pt; the 12-column test fitted cleanly, while the same table in portrait overlapped its column labels.

  • Number alignment Changed

    Cells are centred, including numbers, because the table carries no column types; sums do not line up on the decimal point.

  • Fonts Changed

    Text is set in Libertinus Serif and embedded in the PDF; the CSV has no fonts of its own.

  • Quoting and delimiters Kept

    Quoted commas and semicolon or tab delimiters are parsed by our table engine before typesetting, so cell boundaries follow the data, not the punctuation.

  • Page footer Changed

    Each page gets a centred page number; there is no title, date or file name unless the CSV contains them.

Sample conversions

Sales pipeline, 5 columns

Input
sample.csv, 226 bytes: company, stage, arr, owner, close_date with four rows.
Output
11,305-byte one-page Letter PDF in 72 ms; a centred table with a header rule and the numbers readable but not decimal-aligned.

Order export, 12 columns and 15 rows

Input
A wide CSV with order_id through ordered_at, long customer names and decimal amounts.
Output
14,110-byte two-page landscape PDF at 9 pt in 94 ms; every column fitted and the header repeated on page 2.

A real CSV → PDF run

We converted our CSV sample (226 B) with Table engine → Document engine → PDF renderer on 2026-09-11. It took 89 ms and produced a 11 KB PDF file, 50× larger than the input. The engine raised no warnings.

Input · sample.csv · 226 B

4 data rows × 5 columns; header: company,stage,arr,owner,close_date

Rows
4
Columns
5
Header
company,stage,arr,owner,close_date

Output · sample.pdf · 11 KB

PDF 1.7, 1 page, selectable text (LibertinusSerif-Regular-Identity-H, LibertinusSerif-Regular), 0 image objects

Version
1.7
Pages
1
Fonts
LibertinusSerif-Regular-Identity-H, LibertinusSerif-Regular
Images
0
Text layer
yes

Options and when to change them

delimiter
Set it when the file uses semicolons or pipes and detection picks the wrong one, which shows as a single-column table.
encoding
Choose windows-1252 or another encoding when accented characters render as replacement marks.
headerRowIndex
Point it at the real field-name row when the export starts with a title line.
landscape
Force it on for 5–6 wide columns with long text, or off for a narrow file that happened to have many short columns.
fontSize
Use 8pt for very wide tables or 11pt for a short, readable handout.

Do it yourself

pandas and Typst

bash
import pandas as pd
df = pd.read_csv("in.csv")
open("in.md", "w").write(df.to_markdown(index=False))
# then: pandoc in.md --pdf-engine=typst -V "header-includes=#set page(flipped: true)" -o out.pdf

Wrap the table so it can break across pages; a table inside an unbreakable figure jumps to a new page and overflows.

LibreOffice

bash
soffice --headless --convert-to pdf in.csv --outdir out

Prints the sheet grid with default column widths, clipping long text and splitting columns across pages.

CSV to PDF by API or MCP

The HTTP API and the MCP server run the exact engine this page uses (Table engine → Document engine → PDF renderer); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=csv&to=pdf.

curl
curl -X POST https://filetypeconverters.com/api/v1/convert \
  -H "Authorization: Bearer $FTC_API_KEY" \
  -F "file=@input.csv" -F "from=csv" -F "to=pdf" \
  --output output.pdf
API reference

When this is the wrong conversion

  • If the recipient will filter or sum the data, CSV → XLSX keeps it live; a PDF is read-only.
  • If you need exact column widths, colours and a title block, build the sheet in Excel and use XLSX → PDF.
  • If the CSV has more than about 14 columns, split it or transpose it; even landscape 8 pt runs out of width.

CSV to PDF questions

How are wide CSV files handled?

Seven or more columns switch the page to landscape at 9 pt automatically; a 12-column, 15-row file fitted on two pages with the header repeated. Override with landscape and fontSize when the guess is wrong.

Why are numbers centred instead of right-aligned?

The table is typeset from a Markdown table that carries no column types, so every cell is centred. Right-aligned numbers need XLSX → PDF, where the spreadsheet knows which columns are numeric.

What if the delimiter is a semicolon?

Detection handles commas, semicolons, tabs and pipes. If the result is one column per row, pass delimiter explicitly and run it again.