RTF: Plain Document
The simplest possible RTF: one monospace font and a couple of paragraphs, no styling. A minimal baseline for RTF parsers and conversion tools.

Rendered preview of the rtf file (348 B). Download above for the original.
Specifications
- Format
- RTF 1.x
- Encoding
- ASCII
- Features
- single monospace font, no styling
- Fonts
- Courier New
Testing contract
Expected to pass- Scenario
- Exercise RTF: Plain Document in its rich text workflow. The simplest possible RTF: one monospace font and a couple of paragraphs, no styling.
- Expected result
- 6 text lines, decoded as UTF-8; first nonempty line is '{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fmodern Courier New;}}'. Declared feature checks: features=single monospace font, no styling; fonts=Courier New.
What is a .rtf file?
RTF (Rich Text Format) is a plain-text-based document format that encodes styling, fonts, and layout using backslash control words. It is human-readable in a text editor and broadly interoperable across word processors. It predates Office Open XML and remains a portable rich-text interchange format.
How to use this file
Use an example RTF to test rich-text parsing, control-word handling, and converters that translate between RTF and DOCX, HTML, or plain text.
How to use this file for testing
“RTF: Plain Document” is a deterministic Testaroo fixture for Conversion testing. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.
Documented properties for this file: ASCII · RTF 1.x. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.
Document fixtures list their internal structure (pages, fields, tracked changes, embedded objects) in the spec table. Test extractors, converters, and OCR against that known structure, and compare searchable↔scanned or format-twin companions when present.
Code examples
soffice --headless --convert-to txt plain.rtf # LibreOffice
textutil -convert txt plain.rtf # macOSGenerated by generation/docs_rtf.py. Free for any use, no attribution required, license.
Related files
- rtfRTF: Formatted DocumentA Rich Text Format document exercising bold, italic, underline, colour, headings, and a bullet list: all as plain control words. For testing RTF parsers, text extraction, and RTF→DOCX/PDF conversion.

- ediAlder Table Bistro: ANSI X12 810 invoiceANSI X12 810 invoice for Alder Table Bistro. Version 004010 transaction set 810 for invoice INV-BST-5002, control number 810002. 3 IT1 segments, a TXI segment stating GST of 15.69, and a TDS segment of 32953 in implied-decimal cents, which is 329.53 CAD. SE declares 13 segments and 13 are present.

- ediAlder Table Bistro: ANSI X12 810 invoice with a wrong SE segment countANSI X12 810 invoice with a wrong SE segment count for Alder Table Bistro. Identical to edi-810-invoice.edi except for one element: SE declares 11 segments where 13 are present between ST and SE inclusive. The ISA, GS, GE and IEA control numbers, every data segment and the TDS total of 32953 are unchanged, so a parser that checks only syntax accepts the file and only a parser that recounts segments rejects it.

- ediAlder Table Bistro: ANSI X12 850 purchase orderANSI X12 850 purchase order for Alder Table Bistro. Version 004010 transaction set 850 for PO-BST-1002, control number 850002. 3 PO1 segments carry quantity, X12 unit code, unit price, the supplier item code (VP) and the buyer item code (BP); CTT declares 3 line items and SE declares 14 segments, which is the number actually present between ST and SE inclusive.

- ediAlder Table Bistro: ANSI X12 856 despatch adviceANSI X12 856 despatch advice for Alder Table Bistro. Version 004010 transaction set 856 for supplier delivery note DN-BST-3002 against PO-BST-1002, control number 856002. The shipment, order and item hierarchy uses HL segments, and the SN1 quantities are the quantities actually delivered, so line 2 reports 16 where the 850 ordered 20.

- xmlAlder Table Bistro: Factur-X CII invoice XMLFactur-X CII invoice XML for Alder Table Bistro. UN/CEFACT Cross Industry Invoice for INV-BST-5001 at the Factur-X BASIC guideline, with 3 trade line items, a TaxTotalAmount of 10.38 and a DuePayableAmount of 217.98 CAD. These bytes are the exact bytes embedded as factur-x.xml inside invoice-facturx.pdf.
