The basics
What is a WPD file?
A .wpd file is a document saved by WordPerfect. Bruce Bastian and Alan Ashton wrote the first version in 1979 for a minicomputer in Orem, Utah, and their company, Satellite Software International, sold it as SSI*WP from 1980. Under the WordPerfect name it became the standard word processor on DOS: WordPerfect 5.1 for DOS, released in November 1989, was its most successful version.
Microsoft Word overtook it in the Windows years. Novell bought WordPerfect in 1994 for $1.4 billion and sold it to Corel in 1996 for $186 million. Corel still sells WordPerfect Office for Windows; its most recent major version is WordPerfect Office 2021. There's no current version for the Mac.
WordPerfect never disappeared from law firms and government offices, which valued its macros and Reveal Codes. Corel's Professional edition includes a legal toolbar for pleading papers and tables of authorities. So WPD files still turn up in court records, contracts and archives.
- It's binary. Open one in a text editor and you'll see the words between unreadable bytes.
- It's one stream of text and codes. Bold, fonts, margins and tabs are codes placed in the text where they take effect, not styles kept somewhere else.
- It's stable. The format has barely changed since WordPerfect 6 in 1993, so a file from the 1990s and one from WordPerfect Office 2021 share the same structure.
Anatomy
What's inside a WPD file
There's no sample file on this page: WordPerfect files can only be written by WordPerfect itself. The layout below comes from WordPerfect's own file-format documentation for version 7 (which uses the version 6 format) and from libwpd, the open-source library LibreOffice uses to read WordPerfect files. A file is a 512-byte header area, a set of prefix packets and then the document itself.
WordPerfect 6 and later (.wpd): the layout described in
WordPerfect's file-format documentation and read by libwpd
offset bytes meaning
0x00 FF 57 50 43 file ID: the byte 0xFF, then "WPC"
0x04 xx xx xx xx where the document area starts
0x08 01 product type: WordPerfect
0x09 0A file type: a document
0x0A 02 major version: 2 = WordPerfect 6 and later
0x0B 00…02 minor version
0x0C 00 00 encryption: 0 = not encrypted
0x0E 00 02 the index area starts at 0x200 (512)
0x10 05 00 00 00 start of the extended header
0x14 xx xx xx xx total file size
0x18 … undocumented, used by WordPerfect itself
0x200 index header and packet index, pointing to the
prefix packets: fonts, styles, printer settings,
document summary (author, subject, keywords…)
document area: text and codes in one stream, for example
48 65 6C 6C 6F "Hello" 0x21–0x7F: plain ASCII
80 soft space 0x80–0xCF: one-byte codes
F2 0C F2 bold on 0xF0–0xFE: fixed-length codes
77 6F 72 6C 64 "world"
F3 0C F3 bold off
CC hard return
D4 … D4 a variable-length group (0xD0–0xEF),
such as a font change or a comment- 1
FF 57 50 43The file ID
Every WordPerfect file since version 5.0 starts with the byte 0xFF and the letters "WPC", for WordPerfect Corporation. WordPerfect graphics (
.wpg) and other WordPerfect Corporation products share it, so the next bytes say what kind of file it is. - 2
xx xx xx xxPointer to the document
A 4-byte little-endian offset to where the text begins. Everything before it is header and prefix data, so a reader can jump straight to the content.
- 3
01 0AProduct and file type
Product 1 is WordPerfect and file type
0x0Ais a document. A WordPerfect Graphics file has type0x16, and libwpd recognises type0x2Cas a document from WordPerfect for the Mac. - 4
02 00…02Major and minor version
Major version 0 means a WordPerfect 5.x file; 2 means WordPerfect 6 or later. The minor version separates 6.0 from 6.1 and later releases. Newer versions kept these numbers, because the format itself barely changed.
- 5
00 00Encryption
Zero for an ordinary file. Anything else means the document was saved with a password, and nothing after the header can be read without it.
- 6
00 02Index area
Where the packet index begins, normally at byte 512. The bytes between offset 0x18 and there are an extended header that WordPerfect uses internally and doesn't document.
- 7
prefix packetsDocument-wide data
Packets listed in the index hold what applies to the whole document: the fonts it uses, styles, printer settings, and a document summary with fields such as author, subject, keywords and creation date.
- 8
48 65 6C 6C 6FPlain text
Bytes from
0x21to0x7Fare ordinary ASCII characters. A normal space is the code0x80, not0x20. libwpd reads bytes0x01to0x20as 32 common accented letters; everything else is written as an extended character code:F0, the character, its WordPerfect character set,F0. - 9
F2 0C F2Fixed-length codes
Bytes
0xF0to0xFEstart codes of a known length that end with the same byte.F2 0C F2switches bold on (attribute 12), andF3 0C F3switches it off. Italic is attribute 8. - 10
CCOne-byte codes
Bytes
0x80to0xCFare single-byte codes: spaces, hyphens, soft and hard returns, page breaks, and table row and cell markers.0xCCis a hard return, the code you get by pressing Enter. - 11
D4 … D4Variable-length groups
Bytes
0xD0to0xEFstart groups that carry their own size, repeated at the end for checking. They hold everything bigger: page and paragraph formatting, font changes, comments, headers and footers, footnotes, styles, tables and boxes.
How WordPerfect thinks
Reveal Codes: the file format you can see
WordPerfect's best-known feature is Reveal Codes: a second pane under the document that shows every formatting code as a small named token between the words. Turn on bold and a Bold On code appears before the text and a Bold Off code after it. Change the margins and a margin code appears at that point, affecting everything after it. You can select a code and delete it like a letter.
That pane is close to a picture of the file. A WPD document is a sequence of characters with codes mixed in, in the order you see them in Reveal Codes. Word works differently: a DOCX holds paragraphs and runs of text, each carrying its formatting as properties, so there's no code to find and delete.
| WordPerfect (.wpd) | Word (.docx) | |
|---|---|---|
| Formatting is stored as | Codes in the text stream, switched on and off | Properties of paragraphs and runs, plus named styles |
| A formatting change applies | From the code onwards, until another code changes it | To the paragraph or run that carries it |
| Fixing odd formatting | Open Reveal Codes, find the stray code, delete it | Clear formatting or adjust the style |
This difference is the root of most conversion trouble: codes that apply from one point onwards have to be turned into properties on each paragraph, and a stray code becomes formatting that's hard to trace in Word.
Versions
WordPerfect 5.x, 6 and later
| Versions | Format | How to recognise it |
|---|---|---|
| WordPerfect 4.2 and earlier (DOS) | Older formats without the WPC header | No FF 57 50 43 at the start; libwpd recognises them by their content |
| WordPerfect 5.0 (1988) and 5.1 (1989) | WordPerfect 5.x format | FF 57 50 43, then file type 0A and major version 00 |
| WordPerfect 6.0 (1993) to WordPerfect Office 2021 | WordPerfect 6 format, with small additions | FF 57 50 43, then file type 0A and major version 02 |
| WordPerfect for Macintosh 2.x to 3.5e | Mac format | FF 57 50 43, then file type 2C; often no file extension |
Since version 6, WordPerfect has avoided changing the format, so that offices didn't need to keep old versions around to exchange files. WordPerfect X5 documents are fully compatible with WordPerfect 6.0a documents in both directions, and WordPerfect 5.1+ for DOS was released so that older DOS PCs could use the WordPerfect 6 format.
Older files often have no .wpd extension: WordPerfect for DOS used .wp, .wp5 or .wp6, or no extension at all, and Mac files usually have none. The first four bytes tell you it's WordPerfect whatever the name.
Comparison
WPD vs DOCX, DOC, RTF and PDF
| WPD | DOCX | DOC | RTF | ||
|---|---|---|---|---|---|
| Structure | Header, packets, text with codes | ZIP of XML | Binary records in an OLE2 file | Text with control words | Binary objects and streams |
| Open standard | No | Yes (ISO/IEC 29500) | Documented, not a standard | Documented by Microsoft | Yes (ISO 32000) |
| Text encoding | ASCII and WordPerfect character sets | Unicode | Unicode or code pages | Code pages and Unicode escapes | Depends on fonts |
| Edited with | WordPerfect; imported by LibreOffice | Almost every word processor | Almost every word processor | Almost every word processor | PDF editors only |
| Opens in a browser | No, it downloads | No | No | No | Yes |
If you need to keep a WordPerfect document readable for the long term or send it to people without WordPerfect, convert it: to DOCX or ODT to keep editing it, or to PDF to keep it as it looks.
How to
How to open and convert a WPD file
- WordPerfect Office (Windows 10 and 11) opens WPD files and can save a document as WPD, PDF and HTML at the same time. It also opens and saves Microsoft Office formats, so File, Save As, Word document is the cleanest conversion.
- LibreOffice Writer (free, Windows, macOS, Linux) imports WordPerfect files through libwpd, which reads WordPerfect 4 to 11 for DOS and Windows and WordPerfect for Macintosh 1.x, 2.x and 3.5e. Later versions use the same format. LibreOffice can't save as WPD; save as DOCX, ODT or PDF.
- On a server:
soffice --headless --convert-to docx letter.wpdor--convert-to pdf. For text only, thewpd2texttool from libwpd prints the words. - Microsoft Word can open WordPerfect files when a WordPerfect converter is installed, but it can't save them as WordPerfect.
- On a Mac, phone or tablet: there's no WordPerfect. Use LibreOffice on a Mac, or ask the sender for a DOCX or PDF.
- In a browser: browsers can't display WPD files, so a link to one downloads it.
Check the conversion, especially for legal documents. Pleading paper, line numbering, tables of authorities and automatic numbering are built differently in Word and LibreOffice, so compare them with the original.
Troubleshooting
Common WPD problems
- Windows doesn't know what to open it with. Without WordPerfect installed, nothing is registered for
.wpd. Install LibreOffice and open the file from inside it. - Formatting shifts after conversion. Codes that apply from one point onwards become paragraph properties, and fonts the document asks for may be missing. Compare the result with the original, or with a PDF made by WordPerfect.
- Accented letters or symbols come out wrong. WordPerfect stores many characters in its own character sets, which a converter has to map to Unicode. Rare symbols may be missing from the mapping.
- A password prompt, or nothing readable. The header's encryption field is set. You need the password, or ask the author for an unprotected copy.
- An old file without an extension. If its first bytes are
FF 57 50 43, it's WordPerfect: add.wpdand open it in LibreOffice or WordPerfect.
Security
Is a WPD file safe to open?
WPD files are rarely used for attacks today, but a few things are worth knowing:
- Document summary. The prefix packets can hold the author, subject, keywords, account, address and dates. Check the document's properties before you send it outside your organisation.
- Comments travel in the text. A comment is a code in the text stream. It's hidden on the page but still in the file, and converters may carry it into the DOCX.
- Parsers. The format is old, complex and mostly read by reverse-engineered code. Keep LibreOffice and other readers up to date, and treat files from unknown senders with care, as with any document.
Sample files
WordPerfect files can only be saved by WordPerfect itself: no maintained open-source program writes them, so there are no sample files here. To test, save a document from WordPerfect Office, or use our DOCX samples and DOC samples.
Put it online
Have a WPD file? Give it a link.
Drop a WordPerfect document on 99helpers and it gets its own web address. Browsers can't display WPD files, so visitors download it and open it in WordPerfect or LibreOffice; for a version anyone can read in the browser, upload a PDF copy too.
Questions
WPD files, frequently asked
What is a .wpd file?
A document saved by WordPerfect, the word processor now owned by Corel. It holds text with formatting codes, plus fonts, styles and document properties, in a binary format.
How do I open a WPD file without WordPerfect?
Use LibreOffice Writer, which is free for Windows, macOS and Linux. It imports WordPerfect documents from the DOS versions to the current ones. Microsoft Word can open some WordPerfect files if a WordPerfect converter is installed.
How do I convert a WPD file to Word or PDF?
Open it in WordPerfect or LibreOffice and save it as a Word document or export it as PDF. On a server, soffice --headless --convert-to docx file.wpd converts it with LibreOffice.
Can I open a WPD file on a Mac?
WordPerfect isn't available for current Macs, but LibreOffice for macOS opens WPD files and can save them as DOCX or PDF.
Is WordPerfect still used?
Yes. Corel still sells WordPerfect Office for Windows, and many law firms and government offices kept using it, so WPD files are still common in legal work.
What are Reveal Codes?
A WordPerfect pane that shows the formatting codes between the words, such as bold on and bold off or a margin change. The WPD format stores the document in much the same way: text with codes in it.
Why do WPD files start with WPC?
Every WordPerfect file since version 5.0 starts with the byte 0xFF and the letters WPC, for WordPerfect Corporation. The bytes that follow give the product, the file type and the version.
Related formats
Other file types explained
Keep going
Related
Sources
- WordPerfect 7 file format documentation: file header (copy distributed with wp2latex)
- Ubuntu: libwpd package, with the WordPerfect versions it imports
- The National Archives (PRONOM): WordPerfect for MS-DOS Document 5.0
- libwpd: a library for importing WordPerfect documents
- Corel: WordPerfect Office Professional
- Wikipedia: WordPerfect
Last reviewed 27 October 2026.