CSV to PDF Converter
Turn a CSV or spreadsheet export into a PDF table that people can actually read. It parses the file properly, so quoted fields containing commas and line breaks survive, works out sensible column widths, repeats the header on every page, and splits long tables across pages. Nothing is uploaded.
- Nothing uploaded
- Works with no signal
- No sign up
- Searchable output
or paste it in
Nothing loaded yet.
What was read
Load a CSV to see how it was parsed.
The table goes in as real text, so the finished PDF stays searchable and you can select and copy values out of it.
Your data never leaves this device.The file is read by your browser, the PDF is built here in the page, and the download comes from your own machine. Nothing is sent to a server, so nothing is stored on one. That matters more than usual for a CSV, because these are often full of names, prices or readings.
Quoted fields survive intact
A value wrapped in quotes can contain commas and line breaks. Splitting on commas breaks it silently; parsing it properly keeps the table you expected.
How to use this tool
Drop a CSV on the box at the top or paste rows straight in. The separator is worked out for you, and the table appears immediately so you can see how it was read.
Wide tables belong on landscape paper, which is why that is the default here. Adjust the font size and margin until the page count and the column widths look right.
Everything above the button is a preview. Nothing is built until you press it.
Splitting on commas is not parsing a CSV
This is where most quick conversions go wrong, and it is worth understanding because the failure is silent.
A CSV field can be wrapped in quotation marks, and once it is, it may contain the separator itself. The line "Smith, John",42 is two fields, not three. Split it on commas and you get a name broken in half and a table with the wrong number of columns, which then throws every following column out of alignment.

The same applies to line breaks. A quoted field may contain them, so a single row of data can span several lines in the file. Counting lines to count rows gives the wrong answer on any export containing an address or a comment.
And a doubled quotation mark inside a quoted field means one literal quote. So "He said ""go""" is the text He said "go", not a mess of stray characters.
All three are handled here, which is why a file exported from a spreadsheet with names, notes or addresses in it comes through as the table you expected.
What happens when the columns will not fit
Column widths start from the content: each column is made wide enough for its longest value, plus padding. Add those up and you often get a table wider than the paper.
When that happens the widest columns are trimmed first, which is usually right, because the widest column is normally a remarks field with room to spare rather than a reference number that must stay intact.
There is a floor, though. Below a certain width a column stops being readable, so trimming stops there. If the table still does not fit at that point, the tool says so instead of squeezing everything into an unreadable strip. That is a real answer: landscape, a bigger sheet or a smaller font will fix it, and pretending otherwise would just waste your time.
Cells that are too long for their column wrap onto more lines, making that row taller. A row taller than the entire page is split across pages rather than running off the bottom edge, which is the one case where a table row cannot stay whole.
A worked check you can repeat
Take a hundred row monitoring table with three columns on landscape A4 at 8 point Courier.
Landscape A4 is 841.89 by 595.28 points. A 12 mm margin is 12 times 72 divided by 25.4, which is 34.02 points a side, leaving 773.85 points of width and 527.24 of height. Each line occupies 8 times 1.35, which is 10.8 points, so 48 lines fit vertically.
With the header repeated, each page carries the header plus 47 data rows, so a hundred rows needs three pages. Turn the header repetition off and the same data fits in slightly fewer.
The parsing and layout were checked against an independent implementation before publishing: forty eight hand written cases covering quoted separators, quoted line breaks, doubled quotes, unterminated quotes, ragged rows, all four separators and column fitting at the readable minimum. Then forty five thousand generated cases, including a round trip that writes a table out as CSV and reads it back expecting the original. That fuzzing found two real defects: rows taller than a page overflowing off the sheet, and a case where a header as tall as the page sent the layout into an endless loop. Both were fixed before this went up.
Mistakes that catch people out
Leaving a wide table on portrait paper. Landscape is the default here for a reason. Most exports have more columns than a portrait page can carry.
Ignoring the unclosed quote warning. A stray quotation mark makes everything after it one enormous field. The tool flags it, and the fix is in the source file rather than here.
Treating a data row as a header. If your export has no header row, switch that setting off, otherwise the first line of real data gets repeated on every page.
Assuming European exports use commas. Software set to a European locale often writes semicolons, because the comma is the decimal separator. Detection handles it, but it is worth knowing why the choice exists.
Expecting a spreadsheet. This makes a document for reading and printing. If you need to keep working with the numbers, keep the CSV as well.
Common questions
Is my CSV uploaded anywhere?
No. The file is read by your browser, the PDF is built here on the page, and the download comes from your machine. That matters more than usual for a CSV, because these files are often full of names, prices or readings.
Does it handle commas inside a field?
Yes. A field wrapped in quotes can contain commas, line breaks and doubled quotation marks, and all of it survives. That is the difference between parsing a CSV properly and splitting it on commas.
Why is the header repeated on every page?
So a long table stays readable. On page seven of a settlement record you still need to know which column is which. You can turn it off if the first row is really just data.
My columns will not fit. What now?
The tool tells you rather than crushing them. Landscape helps most, then a larger sheet, then a smaller font. Columns are never squeezed below a readable minimum.
What happens to a very long cell?
It wraps within its column, so the row becomes taller. If a single row ends up taller than the whole page it is split across pages rather than running off the bottom.
Will the values stay selectable?
Yes. The table goes in as real text rather than as a picture, so the finished PDF is searchable and you can copy values straight out of it.
Related PDF tools and reference
Reference: RFC 4180, the specification describing the CSV quoting rules used here.
