RTF to PDF — Convert Rich Text to PDF Online
Convert Rich Text Format (.rtf) documents to a clean paginated PDF. Bold, italic, paragraphs, and headings are preserved.
Drop your RTF file hereTap to select a file
Supports RTF, up to 50MB
What to do next
Related tools
Text to PDF Converter
Convert a plain text file (.txt) to a properly formatted PDF document with automatic word wrap and page breaks.
pdfODT to PDF
Convert OpenDocument Text (.odt) files from LibreOffice / OpenOffice to a paginated PDF. Headings, paragraphs, lists, and inline emphasis are preserved.
pdfHTML to PDF
Convert an HTML file to a styled PDF. Headings, paragraphs, lists, links, and inline emphasis are preserved with semantic typography.
pdfPDF to Text Extractor
Extract all text content from a PDF and download it as a plain text file. Preserves reading order across all pages.
pdfAbout RTF to PDF
RTF to PDF converts a Rich Text Format document — the cross-platform "interchange" format Microsoft has shipped with Word for decades — into a styled PDF. RTF still shows up everywhere: TextEdit on macOS saves to .rtf by default, many electronic-health-record systems export reports as RTF for portability, government and legal templates ship as RTF so they open identically on Windows, macOS, and Linux without depending on a specific Office version. When one of those documents lands in your inbox and the recipient just wants a PDF, this is the tool. Conversion happens entirely inside your browser tab; the file is never uploaded to a server.
Under the hood the tool ships a purpose-built RTF tokenizer that reads the document’s control words (\par for paragraph, \b for bold, \i for italic, \page for page break, \u for Unicode escapes, \'XX for byte escapes, and many more), maintains the per-group state stack the RTF spec mandates, and emits a clean block list that the open-source pdf-lib JavaScript library lays out onto A4 portrait pages. Writing the tokenizer in-tree rather than pulling an npm RTF package keeps the bundle small (most browser-side RTF libraries are old, Node-only stream parsers, or 100+ KB) and lets the parser correctly skip the chunky destinations — font tables, colour tables, stylesheets, info blocks, embedded pictures — that no end-user wants in their output PDF.
The visible result preserves what readers actually care about: paragraph structure, bold and italic emphasis, soft line breaks, explicit page breaks, tabs, and the full Unicode range that RTF encodes via the \u escape mechanism. RTF’s peculiar dual encoding for Unicode (a numeric \u code followed by an ANSI fallback that older readers should display) is handled correctly — the Unicode codepoint is rendered and the fallback bytes are skipped per the spec, so you do not see garbled placeholder characters in the output.
What is intentionally skipped: tables (RTF’s table model is row-oriented control words rather than nested elements, and rendering them faithfully needs a layout engine), embedded pictures (\pict blobs that would require their own image decoder), OLE objects (\object blobs that wrap proprietary embedded data), and form fields. These omissions match what other browser-side RTF tools do; if you need exact fidelity for a heavily formatted Word document, "Save as PDF" inside Word itself uses Microsoft’s own layout engine and will always be closer to perfect than any third-party converter.
Files up to 50 MB are accepted, which is wildly more than any realistic RTF document needs — even a long manuscript exported as RTF rarely crosses 5 MB on disk because the control-word format compresses text efficiently. Conversion finishes in well under a second on desktop for typical documents and a couple of seconds on mobile for very long ones. The same code runs in every modern browser without requiring any plugin or extension. If you have a stack of RTF reports to convert, you can run them one after another with no quota in the way.
How it works
- 1Pick a .rtf file from your device. The picker accepts the standard application/rtf and text/rtf MIME types.
- 2The in-tree RTF tokenizer reads control words, groups, escapes, and Unicode \u sequences according to the published RTF spec.
- 3Destination groups (font tables, colour tables, info blocks, embedded pictures) are skipped so they do not pollute the output.
- 4pdf-lib renders the resulting block list onto paginated A4 pages with bold and italic spans preserved.
- 5Click Download. Re-run with another file at any time — the tool runs entirely on your device and has no per-user quota.
Common use cases
- Convert a legal template a colleague sent as RTF into a PDF before printing for signatures
- Turn a TextEdit-saved draft into a PDF for sharing with someone who does not run macOS
- Convert an electronic-health-record export from RTF to PDF for inclusion in a patient file
- Archive a government-form RTF as a stable PDF copy after filling it in
- Bundle a stack of RTF meeting notes into PDFs for distribution to attendees
- Convert a Word "Save as RTF" output into a PDF when the recipient does not have Word
FAQ
What RTF features are supported?
Plain and styled paragraphs, bold and italic runs, page breaks, soft line breaks, tabs, and Unicode characters via the standard RTF \u escape. Tables, embedded images, and OLE objects are not rendered in this version.
Where do RTF files usually come from?
RTF is Microsoft’s cross-platform "interchange" text format. Word can save documents as .rtf, TextEdit on macOS produces RTF by default, and many EHR / legal / government systems still export reports as RTF for portability.
Is the file uploaded?
No. The .rtf is read into memory by JavaScript running in your tab, tokenized by a built-in RTF parser, and rendered to PDF by the open-source pdf-lib JavaScript library — entirely on your device.
Will the output match Word’s "Save as PDF" exactly?
Not pixel-for-pixel. Word’s built-in PDF export uses Microsoft’s proprietary layout engine; this tool uses pdf-lib with the standard PDF Helvetica font. Text content, structure, and basic emphasis match; column widths, kerning, and line breaks may differ slightly.
What’s the maximum input size?
Files up to 50 MB are supported per run. RTF text content is small even for long documents, so this comfortably covers reports of several hundred pages.
Why does RTF still exist when everyone uses .docx now?
RTF predates .docx by a decade and remains the lingua franca for situations where you need a formatted document to open identically across Word, WordPerfect, LibreOffice, TextEdit, and a long tail of government, legal, and healthcare systems. .docx is more capable but is also more tightly tied to Word’s rendering — many enterprise systems still standardise on RTF for portability.
Will the output look exactly like Word’s "Save as PDF"?
Not pixel-for-pixel. Word’s built-in PDF export uses Microsoft’s proprietary layout engine, which knows about every nuance of Word’s typography. This converter uses the standard PDF Helvetica font family for portability. Text content, paragraph structure, bold/italic emphasis, and page breaks match; column widths, kerning, line breaks, and font choice may differ slightly.
Are tables supported?
Not in this version. RTF tables are encoded as a sequence of row-level control words (\trowd, \cell, \row) rather than as nested elements, and rendering them faithfully requires a column-width layout pass. Documents that contain tables will still convert successfully — the table cells’ text content appears as paragraphs in reading order — but the grid structure is flattened. A future version will add bordered table rendering.
What about embedded images?
Embedded \pict blobs (which can be PNG, JPEG, EMF, or WMF depending on how the source program saved them) are skipped in this version. Decoding the EMF/WMF Microsoft metafile formats inside the browser is non-trivial and would add substantial bundle weight for a feature most users do not need. Pure-text RTF files convert without losing anything.
Does it handle non-English characters?
Yes within the limits of the standard PDF Helvetica encoding (WinAnsi), which covers western European languages and most common punctuation. RTF’s \u escape sequence is decoded correctly, and the per-spec ANSI fallback bytes that follow each \u are skipped so they do not appear as garbled placeholders. Cyrillic, Greek, CJK, Arabic, and Hebrew characters are detected and silently dropped because the standard PDF fonts cannot encode them — bundling Unicode fonts is on the roadmap.
Is the file uploaded?
No. The .rtf file is read into memory by JavaScript running in your tab, tokenized in-place, rendered to PDF by pdf-lib, and the resulting PDF is offered as a direct download. Nothing is transmitted to a server, nothing is written to disk, and closing the tab discards every byte from memory.
What’s the maximum file size?
Files up to 50 MB per run are accepted. RTF is a text-based format and compresses content efficiently — even a long manuscript or a multi-hundred-page report rarely exceeds a few megabytes on disk. The cap is well above any realistic document size.
Will it convert .rtfd or .doc files?
No. .rtfd is macOS’s "rich text directory" wrapper around an RTF plus media bundle and is structurally different. .doc is the legacy binary Word format from before .docx. Neither is supported here. Save the document as plain .rtf or .docx and use the appropriate converter for that format.