Make every conversion intentional.
FormatKit is a free browser conversion preview. Choose Images, PDFs, Word or Tables & data, add your files, choose an output, then download. Processing happens on your device without GPT calls or file uploads. No account is needed.
Supported conversions
| Input | Output | Behavior |
|---|---|---|
| PNG, JPEG, WebP | PNG, JPEG, WebP | Resize without upscaling. Quality controls JPEG/WebP. |
| PNG, JPEG, WebP | One image per PDF, one page at 96 dpi. Resize applies first. | |
| TXT | Selectable text, with page markers. No OCR or layout reconstruction. | |
| PNG, JPEG | One image per selected page. Multiple pages arrive in a ZIP. | |
| Word DOCX | TXT | Stored text, tab-separated table cells, linked headers/footers and referenced notes/comments. No layout reconstruction. |
| CSV, TSV, flat JSON, JSON Lines (.jsonl / .ndjson) | CSV, TSV, JSON, JSON Lines (.jsonl) | Header-based tables with scalar cells. No nested objects or arrays. |
Limits that keep the browser responsive
Up to 10 input files, each up to 10 MiB (shown as 10 MB in the interface). Images are limited to 24 megapixels. Tables allow 200,000 cells, including the header and missing cells. Saved outputs are limited to 80 MiB per queue. PDF files may have up to 100 pages; convert at most 20 selected pages in each run. For a longer PDF, enter 1-20, download, then use 21-40. Re-converting replaces a result only after success.
Image, Word and table conversions have a 30-second timeout per file; PDFs have 60 seconds. Cancel stops the active conversion. Earlier completed downloads remain available. Large or complex files may exceed your device's capabilities even within these limits.
Image fidelity
PNG and WebP preserve transparency. JPEG composites transparent pixels onto white. Image-to-PDF embeds the converted image with transparency over the viewer's page background. Original metadata is removed and animated inputs become a single frame. Browser color handling may change colors. Keep your originals for print, color-critical or archival work.
PDF page images use white backgrounds, at up to 144 dpi and at most 2400 pixels on the longest edge. Visible annotation appearances are rendered; interactive behavior, attachments and scripts are not carried into the images. Raster output does not preserve signatures, forms, layers or searchable text.
PDF text and page selection
Leave Pages empty for all pages in documents of up to 20 pages, or enter a range such as 1-3, 5. Pages are exported in document order, without duplicates. A single image downloads directly; multiple page images download as a ZIP.
Text extraction uses the PDF's selectable text. Reading order and spacing can differ from the visual layout, especially in columns or tables. Scanned pages need OCR, which is not included. Blank or scanned pages are marked in a mixed text output; a document with no selectable text produces a clear error. Password-protected PDFs, dynamic XFA forms, malformed files and unusual unsupported encodings may not convert. Complex colors, fonts or page features should be checked against your original.
Word documents to plain text
Choose Word, add a DOCX and convert to UTF-8 text. Paragraphs, line breaks, tabs and Unicode text are preserved. Table cells are separated by tabs; multi-paragraph and nested cells can span lines, so this is not a spreadsheet export. Linked headers and footers appear once after the body, followed by referenced footnotes, endnotes and comments with ID markers. These extra sections may differ from their visual page position.
Conversion reads stored text, including text that may be hidden or conditional in Word. Review before sharing. Fonts, styling, page layout, images, automatic list numbering and hyperlink destinations are not preserved. Field results are taken as saved and may be out of date. Per-file notes identify lists, drawings, fields and hyperlinks. This does not convert DOCX to PDF or reconstruct a Word layout.
Packages are limited to 500 entries, 20 MiB of actual expanded contents, 2 MiB per XML part, 128 XML levels and 250,000 text characters. Standard UTF-8 and UTF-16 XML is supported. ZIP integrity, duplicate names, missing referenced parts and malformed XML are checked. Macros, embedded files, doctypes, tracked changes, equations, symbol fonts and alternate content that could duplicate or omit text are rejected. Accept or reject changes in Word, or export reviewed plain text/PDF there for unsupported documents. DOC, DOCM, encrypted files and scans are not supported.
Tables without hidden rounding
CSV and TSV require unique, non-empty column names. Values stay as strings when converted to JSON, preserving leading zeros. JSON accepts an array of flat row objects containing strings, numbers, booleans or null. Numeric tokens retain their original digits, decimals and exponent spelling. Duplicate JSON keys are rejected because accepting them would discard data.
Input CSV:
id,name
001,Zoë
Output JSON:
[{ "id": "001", "name": "Zoë" }]CSV/TSV cannot preserve JSON types: null and missing values become blank, and booleans and numbers become text. A header-only CSV can become TSV and vice versa, but cannot become JSON row objects without losing its headers. An empty JSON array can remain JSON, but has no columns for CSV/TSV. Files must use UTF-8. CSV, TSV and JSON arrays accept a UTF-8 byte-order mark; JSON Lines does not.
JSON Lines without rounding
Choose Tables & data and add a .jsonl or .ndjson file. This converter supports one flat row object per physical line, with string, number, boolean or null cells. Arrays, standalone scalar records and nested values cannot be represented as this flat table. LF and CRLF endings work; the last line ending is optional. Blank lines and a byte-order mark are rejected with a line-specific error instead of skipping records.
JSON Lines downloads use .jsonl, UTF-8 without BOM, one compact object per line and a final newline. Escaped newlines inside strings remain inside their record. Number digits, decimal zeros and exponent spelling survive JSON/JSON Lines conversions. Missing keys remain missing; column order follows first appearance. CSV/TSV values remain strings. Empty JSON arrays and header-only tables cannot become JSON Lines without losing information; keep their original format. The same 10 MiB and 200,000 cell limits apply across the entire input, including sparse cells. See the JSON Lines format reference.
Spreadsheet formula protection is on by default. It adds an apostrophe to headers and cells beginning with =, +, -, or @, including after whitespace. This also affects negative numbers. Turn it off only when you trust the input and need exact values. Quoting alone does not stop a spreadsheet from executing a formula. Spreadsheet software can also round long numbers when opening a CSV; import those columns as text.
Download and troubleshoot
Each successful file has its own download. “Prepare ZIP” packages completed results; failed files are excluded. Duplicate output names receive a numbered suffix. ZIP uses storage without additional compression, so its size may be close to the total file sizes. A failed retry preserves the previous download, labeled “Previous”. Clear the queue before changing input type.
Use a current Chromium, Firefox or Safari browser with workers, Canvas and WebAssembly support. Unsupported codecs or device memory limits can prevent conversion. Try a smaller image, fewer PDF pages or another supported output. Formats such as DOC, HEIC, audio and video, combined multi-image PDFs, OCR, cloud storage and a conversion API are not available in this preview.
Privacy, access and pricing
This preview is free, without subscriptions or checkout. Files are not uploaded or saved by FormatKit between visits. Read how local processing and hosting work. Account access and paid services are not enabled. Explore other MacL tools at macl.app.