Correct, PDFSyntax implements everything at the lowest level. You can ignore the HTML visualization and use it as an API to access PDF objects.
Why? Because I started a very small tool as a week-end project and I got hooked reading the PDF Specification so it is becoming a general purpose PDF library for Python. I am not familiar with other libraries but I have the impression that mine implements things that are often overlooked in others, like incremental updates.
When opening the following hello world PDF, the trailer isn't shown correctly and both `startxref` and `%%EOF` are missing: https://ghostbin.site/bb7jb
My tool (PDFSyntax[1], mentioned in this thread) is a Python library that is able to both inspect and transform PDF files.
Depending on your transformation use case, you may write an incremental update with only a few bytes at the end of the original file instead of rewriting it entirely. To my knowledge this feature of the PDF specification is often overlooked and not a lot of libraries implements it.
It is a work in progress and I have not developed functions for images yet, though.
When you develop an application reading or writing PDF files, it may be useful to inspect the content of a file in order to understand what is inside and how objects are linked. Especially when dealing with PDF version 1.5 or above when multiple objects can be compressed together into an object stream: opening the raw file in a text editor would not help you.
You can find similar tools with a text based interface or with a Java client, but I am not aware of another tool producing HTML for easy navigation in the PDF structure.