All tools run in your browser — your files never leave your device.
All tools154

PDF

Turning a CSV into a PDF that is actually readable

Every complaint about CSV-to-PDF conversion losing formatting has the same root cause: there was no formatting in the file to begin with.

The short answer. A CSV contains only values and separators — no column widths, fonts, alignment or page setup. Converting one to PDF means those decisions get made by whatever software you use, and the defaults are usually poor. Open the CSV in a spreadsheet, set column widths and print area, then export to PDF. That gives you control over the result rather than accepting a guess.

Why the result looks wrong

A CSV file is text. A row is a line, a cell boundary is a comma, and that is very nearly the whole specification.

There is no column width, no font, no number format, no alignment, no page size, no header row marker. When a converter turns that into a PDF it has to invent every one of those, and it invents them without knowing that column three holds dates or that column seven is a 400-character description that will now be one line wide and clipped.

So "convert CSV to PDF without losing formatting" is asking for something that cannot happen, because nothing was lost. What people actually want is a PDF that presents the data well — and that requires making the layout decisions rather than hoping a converter guesses them.

The reliable route

  1. Open the CSV in a spreadsheet. Excel, LibreOffice Calc, Numbers or Google Sheets. Watch the import dialog — this is where the delimiter and encoding get set.
  2. Fix the columns that imported wrong. Usually dates, leading zeros and long numbers. See the next section.
  3. Set column widths. Auto-fit, then narrow anything absurd and wrap the text columns.
  4. Define a print area and set the header row to repeat. In Excel this is Page Layout → Print Titles → Rows to repeat at top. Without it, page two onwards is a wall of unlabelled numbers.
  5. Choose landscape and "fit to one page wide". Almost every table needs both.
  6. Export to PDF rather than printing to a PDF driver, where the option exists — it usually produces selectable text and a smaller file.

That is five minutes of work and it is the difference between a usable document and a mess. A one-click converter skips all five steps, which is exactly why the output disappoints.

The import problems everyone hits

The import problems everyone hits
SymptomCauseFix
Leading zeros vanishPostcode or ID read as a numberImport the column as Text
Dates flip day and monthLocale mismatch on importSet the date format in the import dialog
Long numbers become 1.23E+14Treated as a floatImport as Text
Accented characters garbledFile is UTF-8, read as ANSIChoose UTF-8 encoding on import
Everything in one columnSemicolon or tab delimiterSet the correct delimiter
Rows split mid-recordNewline inside a quoted fieldEnsure the parser honours quoting

The date one deserves particular caution because it fails silently. A European file read with a US locale turns 03/07 into 7 March instead of 3 July, and every affected value is still a plausible date. Nothing warns you. If a CSV contains dates and crossed a border, check a handful of rows against a known value before you export anything.

When the file is too big for a spreadsheet

Above roughly a hundred thousand rows, the manual route stops being pleasant, and above about a million Excel simply will not open the file.

At that point a PDF of the whole thing is rarely what anyone wants anyway — nobody reads a 40,000-page document. The useful question becomes which subset needs to be a PDF.

  • Filter first, export second. A summary or a filtered view is what the recipient needs in almost every case.
  • Or pivot it. A pivot table of a large CSV is often the entire point of the request.
  • Or convert the structure instead. If the destination is a system rather than a person, CSV to JSON is usually the conversion that was actually wanted.

It is worth asking the requester what they will do with the PDF. "Send it to the auditor" and "look up one customer" lead to completely different exports.

Doing it on a phone or tablet

The spreadsheet route works on mobile, with one caveat: the print-setup controls are heavily reduced.

On iOS, opening a CSV in Numbers and using Export to PDF works, though repeating header rows is not exposed. Google Sheets in a mobile browser gives you the full desktop print dialog if you request the desktop site, which is the more capable option.

If the table is wide, do the export on a desktop. Mobile PDF exports of wide tables consistently either clip columns or shrink them past legibility, and there is no setting to fix it because the setting is not there.

Keeping the output small

A text-only table exports to a very small PDF — a few hundred kilobytes for hundreds of pages — because it is fonts and text, not images.

It gets large when the spreadsheet contains embedded charts, conditional formatting with heavy fills, or a logo placed in the header at full camera resolution. That last one is the usual culprit behind a 30 MB PDF of a plain table.

If a table PDF is unexpectedly large, look for an image before touching anything else. Failing that, Compress PDF will downsample what is in there, and it runs in your browser so the data does not leave the machine — which matters when the table is a customer export.

Frequently asked questions

Why does my CSV lose formatting when converted to PDF?

It had none to lose. A CSV stores values and separators only — no fonts, column widths, alignment or page setup. The converter invents all of that, and its guesses are usually poor. Open the file in a spreadsheet and set the layout yourself before exporting.

How do I stop leading zeros disappearing?

Import the column as Text rather than General in the spreadsheet import dialog. Postcodes, product codes and account numbers are the usual victims — once the value is read as a number the zeros are gone and cannot be recovered from the imported data.

How do I repeat the header row on every PDF page?

In Excel, Page Layout → Print Titles → Rows to repeat at top, and select row 1. LibreOffice Calc has the same option under Format → Print Ranges → Edit. Without it every page after the first is unlabelled columns of data.

My dates came out wrong. What happened?

A locale mismatch on import — a day/month file read as month/day. It fails silently because the wrong values are still valid dates. Set the date format explicitly in the import dialog, and spot-check a few known rows before exporting.

Can I convert a very large CSV to PDF?

Technically, but a PDF of a million rows is not useful to anyone. Filter or pivot to the subset the recipient actually needs. If the destination is a system rather than a person, converting to JSON is usually the conversion that was really wanted.

Is it safe to use an online CSV to PDF converter?

It depends entirely on what is in the CSV. Exports of customer records, transactions or staff data should not be uploaded to a third-party service without a processing agreement in place. The spreadsheet route keeps the file on your machine.

Stop reading, start doing

Every tool in this guide is free.

154 browser-based utilities. No account, no upload, and no file size limit — your files are processed on your own device and never sent anywhere.

Browse all 154 tools