Tropy is an application that works with raster graphics; this is not unlike an application like Photoshop: when you import a PDF into such tools, the pages will also be converted into images. Consequently, Tropy’s PDF support is mainly intended to cover PDFs which are, essentially, containers for embedded images – many of our users have those, because they are a convenient (though not ideal) means to store multiple images together in an easily viewable and transferable way.
You can also import PDFs with no embedded images into Tropy, of course, but that’s certainly not the same as using a PDF viewer. As I’ve mentioned elsewhere, we’re considering extracting text as an option, but the main reason why we’re cautious to do this is precisely because we do not want to, as you put it, reinvent the wheel: to support PDFs for real, as it were, it would be much better to replace Tropy’s image viewer wholesale with a PDF component. This is certainly an intriguing perspective: in fact, supporting not only PDFs, but also video, audio, and other text files comes to mind, all of which would warrant dedicated ‘viewer’ components with different features (text selection, annotation, voice transcriptions, etc.).
Using PDF.js for such a dedicated PDF component is certainly a good suggestion; however, as someone who has embedded PDF.js into a major application before the idea to “just use known libraries for things” grossly underestimates the amount of effort of such an endeavor.
As it stands, Tropy is an application built for organizing photos; its viewer component is dedicated to displaying images, to provide good rendering quality across different scale options and resolutions, as well as various filters which all operate at the pixel level. Tropy’s metadata model is generic enough to potentially support other subjects of interest, such texts, audio or video recordings and it’s certainly possible that future development cycles will have us embrace this direction – and I encourage you to support us if this is a direction you would like the project to take.