Home › File & PDF Tools › JSON to PDF Converter
JSON to PDF Converter
Our free JSON to PDF converter turns JSON data into a real, printable PDF document right in your browser. Paste your JSON, pick a table or pretty-printed text layout, choose the page size, orientation, and font size, add a title, and download a genuine PDF — no upload to any server, no sign-up, and no watermark. The PDF prints cleanly and attaches to an email like any document.
Your data stays on your device. It is parsed in your browser and never uploaded anywhere.
Auto picks the table when your JSON is an array of objects.
10 pt fits dense tables; 14 pt is easiest to read.
Landscape fits wide tables with more columns.
How it works
JSON is a data format, and a PDF is a document format, so converting between them means deciding how the data should look on a page. This tool offers two layouts for that decision. The table layout is for a list of records that all share the same fields — a list of customers, orders, products, or students. Each record becomes one row and each field becomes one column, with the field names as the header row, so the PDF reads like a spreadsheet printout. The pretty-printed text layout is for everything else: it prints your JSON exactly as written, indented and wrapped across as many pages as it needs, so nested objects, single records, and mixed data keep their full structure.
The table layout is picked automatically when your JSON is a top-level array of objects. The columns are the union of every field name in every record, in the order they first appear, so a record that is missing a field simply leaves that cell blank, and a record with an extra field adds a column rather than losing the value. Column widths are set from the longest cell in each column, so a short number column stays narrow and a long name column gets the space it needs. If you ask for the table layout but your JSON is not a list of records, the tool tells you plainly and suggests the text layout instead of guessing.
You control how the PDF looks. Page size offers Letter (8.5 by 11 inches, the standard sheet in North America) or A4 (210 by 297 millimeters, the standard sheet almost everywhere else). Portrait suits narrow tables and text, while landscape gives wide tables more room and fits more columns on each page without shrinking the text. Font size runs from 10 points for dense tables to 14 points for easy reading, and the optional title prints at the top of the first page in a larger bold font. Page numbers print "Page 1 of 2" at the bottom of each page, and the header row can be switched off.
Long documents are handled by wrapping and paging. Text that is too long for its column wraps onto extra lines inside the cell, and when a table or a block of text runs past the bottom of a page it continues on the next one, with the header row repeated at the top so every page is readable on its own. Nothing is uploaded: the PDF is built in your browser with a local copy of the jsPDF library.
The Preview button shows you exactly what the PDF will contain before you download it — the table as rows and columns, or the indented JSON text — along with the row and column counts or the line count. The Download button then builds the real PDF and saves it, named after your title (or data.pdf if you left the title blank). The PDF is a genuine document, not a screenshot: the text is selectable and searchable.
Worked example
Suppose you run a small online shop and have this month's orders as a JSON list:
[{"name": "Alice", "city": "Austin", "orders": 12}, {"name": "Bob", "city": "Chicago", "orders": 8}, {"name": "Carol", "city": "Denver", "orders": 15}]
Step 1: paste the JSON into the box, with the layout on Auto, the page size on Letter, the orientation on Portrait, and the font size on 12 pt, with the title "Orders by Customer".
Step 2: click Preview. The preview shows the header row — Name, City, Orders — followed by the three customers: Alice from Austin on 12 orders, Bob from Chicago on 8, and Carol from Denver on 15. The tool reports 3 records and 3 columns.
Step 3: click Download PDF. The tool builds a one-page Letter PDF titled "Orders by Customer", with the same 3 rows and 3 columns, and saves it as orders-by-customer.pdf. The file starts with the bytes %PDF-, which is how you know it is a real PDF, and it is about 4,600 bytes for this small list — a PDF carries fonts and page layout, so it is always larger than the 159 bytes of JSON it holds.
Step 4: switch the layout to Pretty-printed JSON text and download again. This time the PDF shows the JSON exactly as written, indented line by line, which keeps the structure visible instead of flattening it into a table.
If the same export had 200 customers instead of 3, the result would be the same, just spread across several pages with the header repeated on each one and page numbers at the bottom. A mistake such as a missing comma shows a friendly message naming the line and column, so you can fix it and convert again.
FAQ
Is my JSON uploaded to a server?
No. Your JSON is parsed and turned into a PDF entirely in your browser with a local copy of the jsPDF library. Nothing is uploaded anywhere, so private API responses, configuration files, and customer data stay on your own device.
When should I use the table layout?
Use the table layout when your JSON is a list of records with the same fields — for example a list of customers with name, city, and orders. Each record becomes one row and each field becomes one column. For anything else, the pretty-printed text layout keeps the full structure.
What if my JSON is not a list of records?
Pick the pretty-printed text layout. It prints your JSON exactly as written, indented and wrapped across as many pages as it needs, with the title on the first page. The table layout only applies to a top-level array of objects.
Can I change the page size and orientation?
Yes. Page size offers Letter or A4, orientation offers portrait or landscape, and font size runs from 10 to 14 points. Landscape with a smaller font fits wide tables with more columns on each page.
What happens if my JSON has an error?
The tool checks your JSON before building the PDF and shows a friendly message with the line and column where the problem is, for example a missing comma or an unclosed quote. Fix that spot and try again — no broken PDF is produced.