FlatPDF is a web-based PDF reader designed for documents that require heavy nonlinear reading such as research papers, textbooks, and instruction manuals. It’s part of my ongoing interest to make digital books more compelling and better utilize their digital nature.

The current implementation is a proof of concept where you can upload any PDF and have it displayed in a flat manner, i.e. all of the pages are represented on the screen at all times. It also includes features such as multi-word queries and history-based navigation. It was implemented using PDF.js for the rendering and parsing of the PDF, and D3.js for the layout and for computing statistics on the text.

You can try it out at https://jaycaz.github.io/flat-pdf