Strangely, this kinda makes sense. PDF is based on PostScript, which is a file type (also by Adobe) that gets sent to printers. It’s just skipping the final “send to printer” part and sends it to a file instead.
A fascinating thing (in a scary way) is that PostScript is technically a full programming language with loops, functions, logic, and a built-in font rendering and 2D graphics engine. When a document is printed using PostScript, your computer generates a script to lay out the page, that the printer runs in order to produce the document!
PDF is essentially “the safe parts” of PostScript - the same 2D graphics engine but with all the dynamic parts removed. PDFs are statically laid out when they’re created, rather than having to run arbitrary code to lay them out like PostScript does.
PDF does support JavaScript code, but it’s rarely used and needs to be granted permission to run. It’s not a core part of the format.
For printing, PCL has somewhat taken over and it’s less scary - it just has preset commands rather than allowing arbitrary code in a full programming language. PostScript is still used today for higher-end printers and print jobs though.




I forgot to mention that PDF added new features on top of PostScript, including 3D models.