What Slack does with a Markdown file, and where a PDF fits
Slack takes Markdown through a message, or a file upload that keeps the text searchable, and that is the door this page is about. The question worth asking is what a PDF looks like by the time it arrives, because Slack never sees the PDF itself. It sees whatever the conversion handed over, and nothing else.
Slack renders a documented subset, bold, italics, quotes, lists and code, and nothing at all beyond it. What comes out of a PDF here is headings where the document had headings, lists where it had lists, and pipe tables where it had ruled tables, so the structure Slack is looking for is actually present instead of merely implied. That is the entire trick, and there is nothing clever underneath it.
What survives from a PDF into Slack
The conversion drops running headers, page numbers, watermarks and the seam between two columns before Slack ever sees them, because none of it carries meaning into Slack and all of it costs something. What it keeps is the part you would otherwise have retyped by hand.
- Both heading levels come through, so the document keeps its own outline, and Slack receives it as structure rather than as something to infer.
- Ruled tables are rebuilt as aligned Markdown tables rather than flattened into prose, which is the part Slack would otherwise have to reconstruct on its own.
- The reading order survives a two column spread instead of interleaving the columns, so nothing downstream of Slack has to guess at it.
What Slack never gets back from a PDF
Every conversion costs something, and a page listing only the gains is a sales page. Here is what a PDF gives up on the way to Slack, stated plainly enough that you can decide against it.
- Page breaks stop existing, and any cross reference that said "see page 14" now points at nothing, and Slack will not get it back from anywhere.
- Fonts, margins and exact spacing are gone, because none of them carried meaning, so nothing you build in Slack should depend on it.
- Text that was only ever a picture of text is read by a model, not copied, which is a real cost inside Slack and not a rounding error.
The PDF to Markdown step behind this Slack page was measured
Gemini 2.5 Flash Lite does the conversion, and it was proven end to end on 30 August 2026: a PDF built for the occasion and never converted before came back with both heading levels, the witness word, and the ruled table rebuilt in aligned Markdown. That is one run on one day and not an average, which is exactly why the date travels with the claim instead of being left out of it. The same output is what Slack would have received.
A scanned PDF is read by a model rather than copied, and a model that misreads a digit does it with complete confidence. Slack has no way of telling you any of that from the inside, so it gets said here instead, on the page that sent you there.
Once the PDF is Markdown, what to do inside Slack
With the Markdown in hand, post the short version in the message and attach the full Markdown file beside it. That is a Slack habit rather than a conversion setting, and it is where most of the value of converting a PDF in the first place actually lands.
The constraint worth knowing before you start: headings and tables are outside that subset, so they arrive as plain lines of characters. It bites the same way whether the Markdown came out of a PDF or out of something else entirely, but it bites hardest on long documents, which is what a PDF usually is.
What we will not pretend about PDF in Slack
- Slack will not render a table, now or ever, and converting a PDF first does not change that in the slightest.
- a converted table pasted into a message becomes a wall of pipe characters, which is a Slack behaviour rather than anything the PDF conversion did.
- The conversion costs half a credit and the price is shown before the PDF is sent, whether the Markdown ends up in Slack or nowhere at all.