Read, alter and write PDF files.
At the moment, you can only read PDF files.
One easy way you can contribute is to add different PDF files to tests/files and see if they pass the tests (cargo test).
Feel free to contribute with ideas, issues or code! Please join us on Zulip if you have any questions or problems.
The PDF standard references 14 standard fonts, which are not distributed with it. Due to dubious practices by Adobe, it is not safe to publish them in the viewer.
You can download them here and unpack with
tar -xf fonts.tar.bz
placing the fonts directory in repository directory.
Finally set the environment variable STANDARD_FONTS to the fonts folder:
export STANDARD_FONTS=$pwd/fonts
Alternativly you can run ./download_fonts.sh to get them from this old debian release of the Adobe PDF reader. And AdobePiStd.ttf can be found on the internet as well:
Over all you will need in the fonts directory:
CourierStd.otfCourierStd-Bold.otfCourierStd-Oblique.otfCourierStd-BoldOblique.otfMinionPro-Regular.otfMinionPro-Bold.otfMinionPro-It.otfMinionPro-BoldIt.otfMyriadPro-Regular.otfMyriadPro-Bold.otfMyriadPro-It.otfMyriadPro-BoldIt.otfSY______.PFBAdobePiStd.otfArial-BoldMT.otfArialMT.ttfArial-ItalicMT.otf
Once you have the fonts, you can pass enable the standard-fonts for the pdf crate.
This repository uses a Cargo Workspace and default members. This means by default only the pdf library is build.
To build additional parts, pass --package=read to build the subcrate you are interested in (here the read example).
Currently we only have two very minimal examples read and text. However the library has grown a lot since they have been written.
There is a tool for visualizing a PDF file as an interactive hierarchy of primitives at inspect-prim. Just clone and cargo run.
run it:
cargo run -p view --release --bin pdf_view YOUR_FILE.pdf
Right now you can change pages with left and right arrow keys and zoom with '+' and '-'. Works for some files.