You should use streams to store PDF files on the blockchain, each PDF can be a separate stream item. Follow this guide to understand the basics:
Then see the API documentation for how to add binary data (like a PDF) in a stream.
If you want a non-node to retrieve data from the blockchain, it would have to request that data from an application that is connected to one of the nodes. This bridge could be a very simple PHP or Python script that accepts the requests and responds by retrieving data from the node.