Pick any route to jump to the converter with it pre-selected.
TXT→PDF
Text → PDF
Type or paste any text and download it as a formatted PDF.
PDF→TXT
PDF → Text
Extract all readable text from any PDF file.
DOCX→PDF
DOCX → PDF
Convert Word documents to PDF preserving text and structure.
TXT→DOCX
Text → DOCX
Turn any text into a proper Word document with optional title.
CSV→XLSX
CSV → Excel
Convert CSV files into proper Excel spreadsheets.
XLSX→CSV
Excel → CSV
Export any Excel sheet to universal CSV format.
JSON→CSV
JSON → CSV
Convert a JSON array of objects into a clean CSV spreadsheet.
CSV→JSON
CSV → JSON
Parse CSV into a JSON array with first row as keys.
MD→HTML
Markdown → HTML
Convert .md files to full HTML with proper markup.
HTML→MD
HTML → Markdown
Strip HTML and convert structure into clean Markdown.
HTML→TXT
HTML → Text
Strip all HTML tags and extract clean readable text.
JSON→TXT
JSON → Text
Pretty-print any JSON data as clean, readable plain text.
The tool
File Converter
TXT⇢PDF
Type or paste text, then click convert
Input
0 characters
📂
Drop your file here
or
—
—
CONVERT
Output.pdf
✦
Result appears here
✓
output.pdf
—
Process
Three steps. That's it.
01
Pick a conversion route
Choose from 12 available conversions — text to PDF, CSV to Excel, JSON to CSV, Markdown to HTML, and more.
02
Drop your file or paste text
Upload a file from your device, or just type and paste directly. Nothing is sent to any server.
03
Download the result
Click Convert, preview the output, and download the converted file instantly. Done in seconds.
FAQ
Questions
Is my file uploaded to a server?
No. Every conversion happens entirely inside your browser. Your files never leave your device. There is no server, no backend, no storage.
Does it work offline?
Text-to-text conversions (JSON↔CSV, HTML→Text, HTML→Markdown, etc.) work 100% offline. Conversions that produce PDF, DOCX, or XLSX need to load a small library from a CDN the first time only.
Why can't I convert PDF to DOCX directly?
True PDF-to-DOCX needs server-side layout parsing. Instead, use PDF→TXT to extract text, then TXT→DOCX to create a clean Word file — a reliable two-step workflow.
What's the file size limit?
No enforced limit — the only constraint is your device's available memory. Very large files (100MB+) may slow down on older devices but typical documents work fine.
Are the converted files formatted correctly?
Yes. Every conversion uses a purpose-built library: jsPDF for PDFs, docx.js for Word, SheetJS for Excel and CSV, and native browser APIs for text formats.
Reference
Documentation
Every conversion route — inputs, outputs, options, and examples.
Overview
Documents
Spreadsheets
Markup
Reference
⇄
Getting started
Browser native
ConvertKit converts files between 12 format pairs — entirely inside your browser. No account, no upload, no server. Open the page, pick your conversion, and go.
1
Pick a route — the 12 route buttons at the top of the tool update the input area automatically.
2
Add content — text-based routes accept typed or pasted input. File routes need a file upload via drag-and-drop or Browse.
3
Set options (optional) — Title, Font, Sheet name, or JSON indent appear automatically when relevant.
4
Click ⇄ Convert — preview the output, then download with one click.
✓
No file size limit. The only constraint is your device's memory, which is rarely an issue for normal documents and spreadsheets.
⚙
How it works
Every conversion runs in one of two modes depending on the output format.
A small library loads from CDN the first time that route is used. Subsequent uses are instant (browser cached).
ℹ
CDN libraries are loaded lazily — only when first used. If you only ever use JSON→CSV, nothing is ever downloaded.
🔒
Privacy & security
Your files and content never leave your device. All conversion logic runs entirely inside your browser tab.
What
Status
File upload to server
Never. Files are read via browser File API only.
Content sent over network
Never. Zero data transmitted except CDN library scripts.
Local storage / cookies
Not used. Nothing persists after you close the tab.
Analytics or tracking
None. No third-party trackers of any kind.
CDN libraries
Loaded from trusted CDNs (cdnjs, unpkg) as scripts only — they never see your file content.
PDF
Text → PDF
Auto CDN · jsPDF
Converts typed or pasted text into a formatted .pdf document. Supports multi-page output, optional title with a rule, and three font choices. Long text wraps and paginates automatically.
Option
Type
Description
Title
string
Heading printed at top with a horizontal rule. Also used as the filename.
Font
select
Helvetica (default), Times, or Courier.
💡
Use blank lines to separate paragraphs. Single newlines become line breaks within the same block.
TXT
PDF → Text
Auto CDN · pdf.js
Extracts all readable text from a .pdf file using Mozilla's pdf.js. Each page is prefixed with a --- Page N --- separator. Ideal for copying content out of documents.
⚠
Scanned PDFs (images of text) will return empty output — they have no text layer. Use OCR software first to create a text-embedded PDF.
PDF
DOCX → PDF
Auto CDN · mammoth + jsPDF
Converts a Word .docx file to PDF. Uses mammoth.js to extract text and structure, then jsPDF to render it. Paragraphs and line breaks are preserved.
⚠
Tables, images, and columns are not preserved. For pixel-perfect layout, use Word's built-in "Save as PDF" instead.
Option
Type
Description
Title
string
Override the PDF heading. Defaults to the filename.
Font
select
Helvetica, Times, or Courier.
DOCX
Text → DOCX
Auto CDN · docx.js
Converts text into a real .docx Word document that opens in Microsoft Word, Google Docs, and LibreOffice. Blank-line-separated blocks become separate Word paragraphs.
paragraph formatting
// Blank lines → separate paragraphs in Word
First paragraph here.
Second paragraph starts after blank line.
// Single newlines → line breaks within paragraph
Line one.
Line two (same paragraph).
XLSX
CSV → Excel
Auto CDN · SheetJS
Converts a .csv file to a proper .xlsx Excel spreadsheet. Column detection is automatic and the sheet tab name can be customised. Numbers are preserved as numeric cells.
Option
Type
Description
Sheet name
string
The worksheet tab name in Excel. Defaults to "Sheet1".
💡
SheetJS auto-detects comma, semicolon, and tab delimiters. Most CSV files just work without any configuration.
CSV
Excel → CSV
Auto CDN · SheetJS
Exports the first sheet of an .xlsx Excel file as a UTF-8 .csv. Formulas are resolved to their computed values. Cell formatting is removed. Compatible with databases, Python pandas, Google Sheets, and any CSV reader.
ℹ
First sheet only. If the Excel file has multiple sheets, only the first one is exported.
CSV
JSON → CSV
No CDN · Instant
Converts a JSON array of objects into a CSV spreadsheet. All unique keys across all objects become column headers. Missing values in any row are left as empty cells.
required input format
// ✅ Array of objects
[
{ "name": "Ali", "age": 25, "city": "Lahore" },
{ "name": "Sara", "age": 30, "city": "Karachi" }
]
// ❌ Single object — wrap in [ ] first
{ "name": "Ali", "age": 25 }
JSON
CSV → JSON
No CDN · Instant
Parses any CSV content into a JSON array of objects. The first row becomes the object keys. Numeric values are automatically cast to numbers. Handles quoted fields and commas inside values correctly.
Converts Markdown into a complete, self-contained .html file with an embedded stylesheet. Supports headings h1–h6, bold, italic, inline code, fenced code blocks, blockquotes, links, images, horizontal rules, and unordered lists.
supported syntax
# Heading 1 ## Heading 2**bold** *italic* ~~strikethrough~~ `code````jsconst x = 1;
```- list item > blockquote ---[link](url) 
MD
HTML → Markdown
No CDN · Instant
Strips HTML tags and converts the structure into clean Markdown. Handles headings, bold, italic, code, pre blocks, links, images, list items, blockquotes, and horizontal rules. Automatically extracts <body> from full HTML pages.
💡
Paste a full HTML page — the converter automatically ignores the <head> and extracts only the body content.
TXT
HTML → Text
No CDN · Instant
Strips all HTML tags and extracts clean, readable plain text. Block elements (headings, paragraphs, list items) are separated by newlines. HTML entities like & and are decoded automatically.
TXT
JSON → Text
No CDN · Instant
Pretty-prints any JSON value as indented plain text. Useful for reading complex API responses or config files in a human-readable format without a JSON viewer.
Option
Type
Description
JSON indent
select
2 spaces (default) or 4 spaces per level of nesting.
📦
Libraries used
These libraries are loaded automatically from CDN the first time a route that needs them is used. If you never use that route, they are never downloaded.
Library
Version
Used for
Source
jsPDF
2.5.1
TXT→PDF, DOCX→PDF output rendering
cdnjs
pdf.js
3.11.174
PDF→TXT text extraction
cdnjs
mammoth.js
1.6.0
DOCX→PDF text and structure extraction
cdnjs
docx.js
8.5.0
TXT→DOCX Word file generation
unpkg
SheetJS (xlsx)
0.18.5
CSV→XLSX and XLSX→CSV conversion
cdnjs
✓
All six text-based routes — JSON↔CSV, HTML→TXT, HTML→MD, MD→HTML, JSON→TXT — use zero external libraries. Pure browser JavaScript.
🔧
Troubleshooting
Problem
Cause
Fix
PDF→TXT returns nothing
PDF is a scanned image with no text layer
Use OCR software (Adobe Acrobat, online OCR tools) to create a text-embedded PDF first
DOCX→PDF loses formatting
Tables, images, and columns aren't preserved
This is a text-extraction conversion. For layout-perfect PDF use Word's built-in "Save as PDF"
JSON→CSV: "must be an array"
Input is an object {"{"}...{"}"} not an array
Wrap the object: [{"{"} ... {"}"}]
Excel opens with wrong characters
Encoding mismatch on special characters
Open Excel → Data → From Text/CSV → choose UTF-8 encoding
CDN library fails to load
No internet on first use of that route
Connect to internet and retry. Browser caches the library after first load
Nothing happens on Convert
Input is empty or wrong file type
Check the status bar below the converter for the exact error message
MD→HTML missing syntax
Complex or non-standard Markdown extensions
The parser supports CommonMark basics. GFM tables and task lists are not yet supported