Sample files
You need a 10 MB PDF to test the upload limit, a CSV with 5,000 rows to test the import, and a .docx because someone said “Word files break it”. Set the size and the records, click the format.
Runs in your browser. Nothing you paste or drop here is uploaded anywhere.
Every file gets 25 records, then filler up to exactly 1 MB. If the records alone come out bigger, the file stays bigger.
Quotes, commas, line breaks, Cyrillic, Hebrew, emoji, empty cells.
★ Starred
Star a format and it stays up here, also next time.
Spreadsheets and tables
Documents
Data files
Images
Calendar, contacts, email, audio
No format matches that.
How to use it
- Set Records: rows in table files, events in the calendar, contacts in the address book (up to 100,000).
- Set Size in megabytes. Every file comes out exactly that big. Leave it empty for files as small as the records make them.
- Pick a format: click it, or type in the search until one is left. Then press Download (or Enter in the search). The star keeps a format at the top next time; PDF and Excel start out starred.
- Need something specific inside? Open Content: People, Orders or Products, document pages, image size, a seed, and Tricky values for testing parsers (quotes, commas, line breaks inside cells, Cyrillic, Hebrew, emoji, empty fields and a spreadsheet formula that should never run).
What it does
Every file is written by this page, in your browser. Nothing is downloaded from a server and nothing you set is sent anywhere, so it also works offline once the page is loaded.
The size is exact to the byte, and the file still opens. The extra bytes go where the format’s readers ignore them: a comment at the end of XML, HTML, Markdown, YAML and SQL, trailing whitespace in JSON, blank lines at the end of CSV, comment lines after the PDF header, an ignored metadata comment inside Word, Excel, PowerPoint and OpenDocument files, an X-PADDING property in calendars and contacts, the MIME epilogue of the email, a comment chunk in PNG and JPEG, and a longer tone in the WAV. 1 MB here is 1,000,000 bytes.
Tables come as CSV, TSV, JSON, NDJSON, XML, YAML, SQL, Excel .xlsx with real dates and numbers, OpenDocument .ods, an HTML table and a Markdown table. Documents are lorem ipsum with headings, a list and a small table: PDF, Word .docx, .odt, RTF, PowerPoint .pptx, EPUB, plain text, Markdown and HTML. Plus PNG, JPEG, WebP, SVG and BMP placeholder images, an .ics calendar, a .vcf address book, an .eml email with a CSV attachment and a .wav tone.
The files were checked by opening them, padded and not: Excel, Word and PowerPoint files in python-openpyxl, python-docx and python-pptx, PDFs in qpdf and pypdf, the rest with Python’s csv, json, email and wave modules, icalendar, vobject and sqlite. The fake people live at example.com and other reserved domains, so a test that accidentally sends mail sends it nowhere.
Questions
Why is my file bigger than the size I asked for?
Padding can only add bytes. If the records, pages or image size already make the file bigger than the target, you get it as it is, and the size shows on its button. Lower the records, or the image size in Content. One more case: a WebP file always has an even number of bytes, so an odd target comes out one byte short.
Is 1 MB 1,000,000 or 1,048,576 bytes?
Here it is 1,000,000 bytes, like on disk labels and in macOS. Upload limits are often set in mebibytes instead: nginx’s client_max_body_size 10m and PHP’s upload_max_filesize = 10M both mean 10 × 1,048,576 bytes. To test right at such a limit, type the size in MB as bytes ÷ 1,000,000, for example 10.48576 for 10 MiB.
Why do some characters show up as “?” in the PDF?
The PDF uses Helvetica, one of the 14 fonts every PDF reader has built in, so the file needs no embedded font. Those fonts only cover Western European characters. With Tricky values on, the Cyrillic, Hebrew, Chinese and emoji become “?” in the PDF; every other format keeps them.
Why does the CSV have a cell that says =SUM(1+1)?
That is the Tricky values option testing for CSV injection. If your app exports user data to CSV and someone puts a formula in their company name, Excel will run it when the export is opened. The safe fix is to prefix cells that start with =, +, - or @ with an apostrophe on export.