
Why I built this
I needed a WhatsApp chat as a PDF for a legal matter. Not a screenshot stack. Not a forty-page print-to-PDF disaster. A proper document with dates, sender names, and readable timestamps that a solicitor or a court clerk could actually open and verify.
I spent two hours searching before I gave up on existing tools. Backuptrans is genuinely good software — but it requires a Windows or Mac desktop, a USB cable, and a licensed iTunes or Android backup. I had a phone. iMyFone is the same story: desktop app, cable, backup file. Wondershare charges a recurring fee per year. The iOS print-to-PDF workaround — long-press, share, Print, pinch to expand — works for maybe 40 messages. My chat had over 8,000.
Here's the part nobody tells you: every one of these workflows was designed when smartphones were secondary devices. They all assume you'll eventually get back to a computer. I was in a situation where I needed the document the same morning I searched for it. No cable, no desktop, no twenty minutes.
So I built ChatToPDF. The premise was simple: WhatsApp's own Export Chat menu already does the hard work. It packages your messages into a _chat.txt file and bundles any media alongside it. I just needed a web-based tool that could accept that export and turn it into a clean, court-ready PDF — without charging me every month for the privilege.
The per-chat pricing came directly from that original frustration. I didn't want a recurring bill for a tool I might use twice a year. I wanted to pay for the conversion I needed today and nothing more. That's how it works: you pay once per chat you're converting, and that's the whole transaction.
Three years of real-world use have taught me a lot about edge cases: Arabic RTL chats, 80,000-message group threads, voice-note-heavy conversations, exports with encoding quirks from older Android versions. Every one of those has shaped what the tool does now. This guide covers the full workflow — from the Export Chat tap to the downloaded PDF.
Export the chat from WhatsApp
WhatsApp's Export Chat feature has been available on both iPhone and Android for several years, but it's not obvious to find. Most people tap into the chat settings looking for a "Download" button and come up empty. The actual path is a few taps deeper than you'd expect.

Open the chat you want to export
Open WhatsApp and navigate to the individual or group chat you want to convert to PDF. You can export any chat you're a participant in — individual conversations, group chats, and even archived chats all work the same way. Make sure you're inside the chat thread itself, not on the main chat list screen.
Tap the chat name at the top
On iPhone, tap the contact name or group name displayed at the top of the screen. This opens the Contact Info or Group Info panel. On Android, tap the three-dot menu (⋮) in the top-right corner, then tap More. Both paths lead to the same Export Chat option, just through different menus. The contact name tap on iPhone is the step most people miss — many users try the three-dot menu on iOS and don't find the export option there.
Scroll to Export Chat
On iPhone, scroll down past the participants list, mute settings, and media thumbnails. Export Chat appears near the bottom of the Contact Info screen. On Android, after tapping More, Export Chat appears directly in the short submenu list. Tap it on either platform to trigger the format prompt.
Choose Without Media for fastest results
WhatsApp asks: "Without Media" or "Include Media." Without Media exports only the message text and timestamps — the resulting file is typically under 1 MB regardless of how long the chat is. Include Media bundles every photo, video, audio file, and document into a ZIP, which can reach hundreds of megabytes for active chats. Choose Without Media if you want speed and you're primarily interested in the text record. Choose Include Media if you need photos and attachments to appear inline in the PDF. ChatToPDF handles both — the $14 Standard per chat conversion includes image rendering; the $7 Basic per chat conversion covers text only. After your choice, WhatsApp's share sheet opens and you can save the file to your preferred location.
According to WhatsApp's official export documentation, the exported file format is a plain .txt file (named _chat.txt) which WhatsApp wraps inside a .zip when media is included. That .txt file is what ChatToPDF parses — so even if WhatsApp changes the ZIP structure in a future update, the underlying format is stable.
One practical note: iOS typically hands you the share sheet immediately after you confirm the media choice. Tap Save to Files and pick a folder you'll remember — something like iCloud Drive > Downloads. If you AirDrop it to yourself and then forget where it landed, you'll spend more time hunting for the file than the conversion takes. Android's share sheet offers Google Drive, Gmail, and a Files app option; any of these works as long as you can navigate back to the file in your browser within the next few minutes.
Choose ZIP or TXT
The file WhatsApp gives you depends on which export option you chose.

Without Media → a .txt file. The full message history is inside, with each message formatted as [DD/MM/YYYY, HH:MM:SS] Contact Name: message text. ChatToPDF accepts this directly — drag the .txt onto the upload zone and it parses immediately.
Include Media → a .zip file. The ZIP contains the _chat.txt plus every media attachment referenced in it. The ZIP can include .opus audio files (WhatsApp's format for voice notes), .jpg and .webp images, .mp4 videos, .pdf documents, and .vcf contacts. ChatToPDF extracts and processes all of these. Voice notes in .opus format are what the Premium+Voice tier transcribes via Deepgram; images are what the Standard tier renders inline.
Which should you upload? If you only need the text record — for a legal submission, a content audit, or archiving purposes — the .txt is smaller and faster. If you want photos, images, or audio transcripts in the output, upload the .zip. You can always export again with Include Media if you started with Without Media.
One edge case worth knowing: WhatsApp caps the media-included ZIP at 10,000 messages on some Android builds. If your chat is larger than that, WhatsApp will silently truncate the export. The text-only export does not have this cap. If you're working with a long group chat, check the message count in the exported _chat.txt against what WhatsApp's chat info screen shows. If they don't match, export in multiple date-range segments or contact me — there's a workaround for this via the WhatsApp chat export guide I put together separately.
Upload and preview
Drop your .zip or .txt onto the upload zone at chattopdf.app/upload. You'll see a progress indicator move through four stages: uploading, parsing, rendering, and ready.

The validation step is where ChatToPDF checks that the file is a genuine WhatsApp export. It runs a Zod schema check against the _chat.txt structure — looking for the expected [date, time] name: message format — and rejects files that don't match. This prevents accidental uploads of other text files and flags ZIP archives that don't contain a _chat.txt at all.

After validation, the parser runs. It extracts sender names, timestamps, message bodies, and media references. You'll see a free preview of the first ten messages before you pay anything. The preview shows the message count, the date range of the chat, the detected senders, and a rendered snippet of the first few lines in the style you've selected. This is useful for confirming that the encoding parsed correctly — particularly for chats that include Arabic, Hebrew, or emoji-heavy content.
Once you're happy with the preview, you select a tier and pay. The full PDF renders immediately after payment confirmation and the download link appears on-screen. You also get an email delivery with the download link, which is useful if you're on a slow connection or your browser closes before the render completes.

The four PDF styles
ChatToPDF offers four visual styles for the rendered PDF. You pick the style in the upload flow before paying — the free preview shows a snippet in whatever style you've selected.

Green Bubble is the closest to what WhatsApp actually looks like on screen. Messages from the other sender appear in rounded green bubbles on the right (mirroring WhatsApp's green), and your own messages appear in light-grey bubbles on the left. Timestamps sit below each bubble. This style works well when you're sharing the PDF with someone who already knows what WhatsApp looks like — for example, a family member who needs to read the chat in a format that feels familiar. It's also the most visually engaging of the four.
Clean strips away the bubble design entirely. Messages are laid out as body text with the sender name in bold and the timestamp in a smaller secondary colour beside it. Each message is a simple text block, no border, no background. This is my most-recommended style for legal and business use. Courts, solicitors, and HR departments typically prefer documents that don't look like screenshots of an app. Clean outputs resemble a standard email chain or transcript.
Formal goes one step further toward document style. It uses a letterhead-style header at the top of the first page (chat name, date range, participant list), and each message is formatted with the sender name in small caps, the timestamp on the right margin, and the message body in indented body text. It reads like a deposition transcript. If you're submitting a WhatsApp chat as evidence in a formal legal proceeding, Formal is the style to pick — see the dedicated WhatsApp evidence court PDF guide for the full workflow on hash chains, metadata, and admissibility considerations. For HR, customer-service, and contract-trail use cases, the WhatsApp Business PDF guide walks through the bulk and team archiving patterns.
Book renders the chat as chronological prose. Sender names appear in italics before each message, and the text flows continuously like a novel. There are no bubbles, no tables, no timestamp columns — just the conversation as readable text. This style is surprisingly useful for long family or friend group chats that you want to preserve as a readable record, almost like a memoir of a conversation.

Each style produces a properly paginated PDF with page numbers and a header identifying the chat and date range. All four styles are available at every pricing tier.
Pricing tiers
ChatToPDF charges per chat conversion. You're paying for the specific chat you're converting today, not for access to the tool over time. There is no recurring billing.

$7 Basic per chat conversion covers text-only PDF export. Images, voice notes, and other media are noted in the PDF as [image omitted] or [voice note omitted] but not rendered. The message limit for Basic per chat conversion is 5,000 messages. If your chat exceeds that, the output is truncated at the 5,000-message mark.
$14 Standard per chat conversion includes full image rendering. Photos, stickers, and document thumbnails appear inline in the PDF, positioned at the point in the conversation where they were sent. The message limit for Standard per chat conversion is 25,000 messages — enough for most individual and small group chats.
$29 Premium per chat conversion removes the message ceiling entirely. There is no per-chat message cap on Premium per chat conversion. Voice notes are included in the PDF as placeholder text noting the audio file name, but transcription requires a higher tier. Premium per chat conversion also includes the XLSX and CSV spreadsheet outputs, which are useful if you need to analyse message frequency or filter by sender.
$49 Premium+Voice per chat conversion adds Deepgram Nova-3 voice transcription. Every .opus voice note in the export gets transcribed and inserted inline in the PDF, in the correct chronological position. Nova-3 supports over 50 languages with automatic language detection — it handles code-switched conversations (a message in English followed by a voice note in Zulu, for example) without configuration. The $49 tier covers up to 8 hours of audio across the chat. No message cap.
$99 Power User per chat conversion covers bulk and group chat scenarios, priority processing queue, and all features from the tiers above. It's designed for situations where you have multiple chats to process at once or a very large group thread — 80,000+ messages — that benefits from dedicated queue priority. All outputs (PDF, XLSX, CSV, voice transcripts) are included.

Each tier covers exactly one chat conversion. If you convert three chats on three different days, you pay three times. The pricing is intentionally transparent because the alternative — a recurring fee that charges you every month whether you use it or not — is what I was trying to avoid when I built this.
Voice transcription
Voice notes are one of the trickiest parts of WhatsApp exports. The _chat.txt file contains a reference like <attached: 00000012-AUDIO-2024-03-15-09-22-31.opus>, but the actual audio is inside the ZIP as a .opus file. WhatsApp uses the Opus codec for all voice notes — it's efficient and high quality, but it's not a format most people are familiar with.
The $49 Premium+Voice per chat conversion and the $99 Power User per chat conversion both use Deepgram's Nova-3 model to transcribe these .opus files automatically. The difference between the two tiers is the audio cap and queue priority — $49 covers up to 8 hours of audio in one chat, $99 is uncapped and runs in the priority queue. The transcription model is the same. Here's how the pipeline works:
- ChatToPDF extracts all
.opusfiles from the uploaded ZIP. - Each file is matched to its reference in
_chat.txtusing the filename and timestamp. - The audio is submitted to Deepgram Nova-3 with automatic language detection enabled.
- The transcription returns within seconds for most clips (WhatsApp voice notes cap at 10 minutes per clip).
- The transcript is inserted into the PDF at the exact position in the conversation where the voice note was sent, formatted as:
🎤 [Voice note — 0:32] "transcript text here".
Nova-3 is Deepgram's highest-accuracy model as of 2026. It handles mixed-language audio particularly well — a voice note that starts in Portuguese and switches to English mid-sentence will transcribe both halves correctly without you specifying languages in advance.
For chats where the sender speaks a language with a strong regional accent — South African English, Indian English, Brazilian Portuguese — I've found Nova-3 performs meaningfully better than generic transcription models. Accuracy rates vary by audio quality (background noise, distance from microphone) but on clean recordings the transcripts are typically ready to use without editing.
Voice notes that appear on the $7 Basic per chat conversion and $14 Standard per chat conversion are not transcribed. They appear in the PDF as [Voice note — 00000012-AUDIO-2024-03-15-09-22-31.opus]. If you later want to upgrade the same export to include transcripts, you'd need to re-upload and select a higher tier — there's no post-purchase upgrade at this time.
One thing worth knowing: if a voice note file is missing from the ZIP — perhaps because you chose Without Media when exporting — the transcription tier still works for any voice notes that are present. You'll just see the placeholder text for any that are missing. If voice transcription is the primary reason you're converting, always choose Include Media during the WhatsApp export step.
For a deeper look at how the transcription works across languages and audio quality levels, I put together a dedicated guide at /blog/transcribe-whatsapp-audio.
iPhone vs Android differences
The WhatsApp export experience differs between iOS and Android in a few ways that are worth knowing before you start. Both platforms export the same _chat.txt format, but the path to get there and the default share-sheet behaviour are different.

iPhone export path:
- Open the chat → tap the contact name or group name at the top of the screen
- Scroll down past participants, media, and settings
- Tap Export Chat
- Choose Without Media or Including Media
- iOS share sheet appears — tap Save to Files and choose a folder (iCloud Drive > Downloads is a good default)
On iPhone, the export produces either a .txt file (Without Media) or a .zip file (Including Media) and saves it wherever you directed the share sheet. The file is ready to upload immediately.
Android export path:
- Open the chat → tap the three-dot menu (⋮) in the top-right corner
- Tap More
- Tap Export Chat
- Choose Without Media or Including Media
- Android share sheet appears — save to Files or Google Drive
On Android the path is slightly shorter (three-dot menu is one fewer tap than the contact name workaround on iPhone), but the share sheet behaviour varies more between Android manufacturers. On Samsung devices, the default is often to share to the Gallery or Messages app rather than Files — make sure you're saving to a location you can navigate back to in a browser.
Date format differences: WhatsApp exports use different date formats depending on your phone's locale settings. A UK iPhone formats dates as DD/MM/YYYY, a US Android as MM/DD/YYYY. ChatToPDF detects the format automatically by analysing the first ten timestamps in the _chat.txt file and resolving ambiguous dates (like 01/03/2024, which could be January 3 or March 1) using the overall date sequence. In most cases this is correct. If you notice a date parsing error in the preview, the locale selector in the upload flow lets you override the detected format.
Emoji rendering: iOS exports embed Apple Color Emoji into the _chat.txt as Unicode code points; Android exports typically use Noto Color Emoji. ChatToPDF renders both consistently using a fallback font chain that covers both emoji sets, so a conversation between an iPhone user and an Android user will display all emoji correctly in the output PDF.
For a full side-by-side breakdown of the two export flows including screenshots from WA v24.x, see /blog/whatsapp-android-to-iphone.
Privacy and 7-day deletion
When you're converting a personal conversation — especially one that involves a legal matter, a relationship dispute, or anything sensitive — you want to know exactly what happens to the file after you upload it.

Here's what happens, step by step:
Upload: Your file is transmitted over HTTPS (TLS 1.3) from your browser to the ChatToPDF servers. It never travels unencrypted in transit.
Storage: The uploaded file is stored on an AWS S3 bucket with server-side encryption (AES-256) at rest. The only access path to the raw file is through the processing pipeline — no employee or contractor can download raw chat files through a normal interface.
Processing: The conversion runs on a server with no human in the loop. Your messages are read by the parser software, not by a person. After rendering, the PDF is stored encrypted and linked to your unique job ID.
Delivery: You receive the download link on-screen immediately after processing and in an email. The link is tied to your job ID and is not guessable.
Deletion: Seven days after the job is created, both the source file and the output PDF are automatically deleted from storage. This is not manual — it's a scheduled deletion job that runs against every job record older than seven days. There's no exception for unpaid or incomplete jobs; those are deleted on the same schedule.

No third-party services receive the content of your chat. Deepgram receives the audio bytes of .opus voice notes (and only those files, not the full chat text) when you use the Premium+Voice or Power User tiers. Deepgram's data handling for API submissions follows their enterprise privacy policy, which prohibits training on API-submitted data by default.
There's no account creation required to use ChatToPDF. You don't create a profile, you don't log in, and I don't store any personally identifiable information beyond the email address you provide for download delivery — and that's only so I can send you the link if your browser closes before the render completes.
For organisations with specific data retention or compliance requirements, I'm happy to discuss custom processing arrangements via the contact form. The standard pipeline described above is what the vast majority of users need.
Common issues
Most conversions go through without a hitch. Here are the issues I see most often and how to handle them.
"File not recognised" error on upload. This usually means the ZIP doesn't contain a _chat.txt file, or the .txt file doesn't match the expected WhatsApp format. Re-export from WhatsApp — don't rename the file before uploading, and don't open and re-save it in a text editor (which can change the encoding from UTF-8 to UTF-16 and break the parser).
Date order looks wrong in the PDF. The parser auto-detects your date format but can misread ambiguous dates in short chats. Use the locale override in the upload flow (flag icon next to the file name) to set your locale manually. UK and Australia use DD/MM; US uses MM/DD.
Voice notes appear as placeholders on a Premium+Voice tier. Check that you exported with Including Media, not Without Media. The .opus files need to be inside the ZIP for transcription to work. See the voice transcription section above for the full explanation, or refer to /blog/transcribe-whatsapp-audio.
RTL text (Arabic, Hebrew) displaying incorrectly. ChatToPDF preserves Unicode bidirectional control characters (U+200E, U+200F) from the export, and the PDF renderer uses a right-to-left layout for messages where the dominant script is RTL. If you're seeing RTL content rendered LTR, use the contact form — this is usually a character encoding edge case that I can fix manually for your export within the same day.
Emoji showing as boxes. This can happen if you're viewing the PDF in a very old PDF reader that doesn't support Unicode emoji. Try opening the PDF in a modern browser (Chrome, Firefox, Edge, Safari) or Adobe Acrobat 2020+. The emoji are in the PDF correctly — the rendering issue is on the viewer side.
FAQ
Does ChatToPDF charge a recurring fee?
No. Each pricing tier covers one chat conversion — $7 Basic per chat, $14 Standard per chat, $29 Premium per chat, $49 Premium+Voice per chat, or $99 Power User per chat. Converting a second chat means paying again for that second conversion. There is no recurring billing, no auto-renewal, and no account to manage.
Will ChatToPDF read my chat?
No human reads your chat. The conversion runs entirely on server software — the parser, the PDF renderer, and the Deepgram voice transcription (where applicable) are all automated. Source files are deleted automatically 7 days after the job is created. No training data is extracted. No third parties receive the text of your messages.
What's the largest chat I can convert?
The $29 Premium per chat conversion and above have no message cap. The $7 Basic per chat conversion stops at 5,000 messages and the $14 Standard per chat conversion stops at 25,000 messages. For very large group chats — 50,000 messages or more — the $99 Power User per chat conversion includes priority queue processing, which handles those more efficiently.
Does ChatToPDF work on iPhone and Android?
Yes. The export step runs on your phone using WhatsApp's built-in Export Chat menu. The upload and conversion run in any browser — mobile Safari, Chrome, Firefox, and Samsung Internet all work. You don't need to install anything. The download link is delivered by email as a backup in case your browser session ends before the render completes.
Can I get a PDF that includes photos and images from the chat?
Yes. Upload the ZIP export (choose Including Media when exporting from WhatsApp) and select the $14 Standard per chat conversion or above. Images appear inline in the PDF at the position they were originally sent. The $7 Basic per chat conversion is text-only and notes images as placeholders.
What if I only need part of a long chat?
WhatsApp's Export Chat exports the full conversation history without a date filter. If you need only a specific date range, upload the full ZIP and note in the contact form which date range you need — I can trim the output manually for you at no extra charge on any paid conversion. Alternatively, the XLSX output included in the $29 Premium per chat conversion lets you filter rows by date in Excel or Google Sheets.
Key takeaways
- ChatToPDF converts WhatsApp chats to PDF in about 30 seconds — no signup, no recurring billing
- Pricing is per-chat-conversion: $7 Basic per chat to $99 Power User per chat, one payment covers one chat
- Voice notes are transcribed on the $49 Premium+Voice per chat conversion and $99 Power User per chat conversion via Deepgram Nova-3 (50+ languages)
- Source files auto-delete after 7 days; no human reads the chat content
- Works on both iPhone and Android exports — both .txt and .zip files are accepted

I'm Paul. I built ChatToPDF after watching a friend try to print a 4-year-old WhatsApp chat across forty-something one-page PDFs. I write here about exporting WhatsApp chats, converting them to PDF, transcribing voice notes, and the messy edge cases nobody else writes about (40,000-message export limits, broken emojis, RTL Arabic, Samsung Secure Folder).