TODOs: - Documentation. - Error handling for invalid type. - Outlines. - Named Objects. (pages) - Support writing/creating PDFs. - Any special treatments for linearized PDFs?