NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2133 most downloaded on crates.io
A Rust library for PDF document manipulation.
Last release 29 days ago
08 Sep 2026
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 44 of 54 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
55 releases · first in 2016
feat(outlines): delete_outlines by @TD-Sky in #525
time feature compile (replace the never-compiling From<Time> impl) by @JohnHarrison in #527Full Changelog: v0.44.0...v0.45.0
One column per quarter.
<a name="v0.44.0"></a>
ci: actually exercise the no-default-features build by @zamf in #510
Full Changelog: v0.43.0...v0.44.0
Document::get_page_content return Vec<u8> since it cannot fail<a name="v0.43.0"></a>
ci: fix wasm test failure from too many locals by @zamf in #507
Full Changelog: v0.42.0...v0.43.0
<a name="v0.42.0"></a>
Add Content::decode_strict method for strict parsing
<a name="v0.41.0"></a>
Add test to reproduce bug with replacing text in non-single character TJ Arrays
nom_locate dependency to fix a performance regression introduced in v0.35.0.<a name="v0.40.0"></a>
Fix WinAnsiEncoding handling in SimpleEncoding string conversion
getrandom to 0.4 and rand to 0.10.wasm-bindgen-test while we're at it.<a name="v0.39.0"></a>
Add pdf decryption support that derived from pdftk by @Mon-ius in #443
Thanks a lot to the new contributors:
is_encrypted() now returns false after successful decryption. Use was_encrypted() to check original encryption state.
<a name="v0.38.0"></a>
Thanks a lot to the new contributors:
See CHANGELOG.md for details.
Thanks a lot to the new contributors:
<a name="v0.37.0"></a>
Thanks a lot to the new contributors:
See CHANGELOG.md for details.
Thanks a lot to the new contributors:
<a name="v0.36.0"></a>
See CHANGELOG.md for details.
See CHANGELOG.md for details.
<a name="0.35.0"></a>
Thanks a lot to the new contributors:
See CHANGELOG.md for details.
Thanks a lot to the new contributors:
<a name="v0.34.0"></a>
See CHANGELOG.md for details. Thanks a lot for new contributors: @Heinenen , @dkaluza , @jrmuizel
See CHANGELOG.md for details.
Thanks a lot for new contributors: @Heinenen, @dkaluza, @jrmuizel
<a name="v0.33.0"></a>
Accept comments in content parsing
<a name="v0.32.0"></a>
Add debug format for hexadecimal
<a name="v0.31.0"></a>
Add decryption of documents using RC4 encryption.
Add support for extracting TOC, Outlines and NamedDestinations
<a name="v0.29.0"></a>
Add function get_page_annotations and include an example
extend definition confusion bug (#161)<a name="v0.27.0"></a>
Nothing published for this version
Add GitHub Actions build matrix
Stream::filters (#130)<a name="v0.26.0"></a>
Add as_str, as_str_mut methods to Object
<a name="v0.25.0"></a>
check that the buffer is big enough for startxref
<a name="v0.24.0"></a>
Compute an accurate iterator size when the page tree is sane.
Add a proper error type and remove some more panics.
<a name="v0.22.0"></a>
Also test with nom parsing feature enabled.
<a name="v0.21.0"></a>
Check offsets read from file to avoid panics
<a name="v0.20.0"></a>
Replace println with log macros
<a name="v0.19.0"></a>
Allow xref section has zero entries
<a name="v0.18.0"></a>
Able to read stream when it's length is in object stream
<a name="v0.17.0"></a>
### Make * Make chrono crate optional ### Release * Release 0.17.0 ### Update * Update add_barcode example
<a name="v0.16.0"></a>
compress page content after change
<a name="v0.15.3"></a>
Fix bug in reading incremental updated document
<a name="v0.15.0"></a>
Nothing published for this version
Nothing published for this version
Extract text from specified pages
get_object_mut<a name="v0.14.1"></a>
Nothing published for this version
Add impl From<_> for Object for more numeric types
impl From<_> for Object for more numeric typesdictionary! macro that creates a Dictionaryimpl From<ObjectId> for Object creating Object::Reference<a name="v0.13.0"></a>
Nothing published for this version
Avoid decompress flate stream which has Subtype
<a name="v0.11.0"></a>
Nothing published for this version
Use itoa and dtoa to improve writing performance
<a name="v0.10.0"></a>
Added optional allows_compression for Stream object
<a name="v0.9.0"></a>
Added unit test for load_from() and save_to()
<a name="v0.8.0"></a>
Change Name(String) to Name(Vec )
<a name="v0.7.0"></a>
Create String object for DateTime
<a name="v0.6.0"></a>
Add Stream::decompressed_content() method
<a name="v0.5.0"></a>
Decode PNG frame after FlateDecode
<a name="v0.4.0"></a>
Nothing published for this version
Add print_xref_size() for debuging
<a name="v0.3.0"></a>
Nothing published for this version
Nothing published for this version
Add compress/decompress subcommands to pdfutil
<a name="v0.2.0"></a>
Nothing published for this version
### Add * Add pdfutil program ### Fix * Fix parsing PDF array error ### Improve * Improve documentation
<a name="v0.1.0"></a>
Nothing published for this version
impl Document add_object method
Your coding agent can read these notes before it upgrades. Set up the MCP server →