Skip to content

Conversation

@iText-CI
Copy link
Contributor

@iText-CI iText-CI commented Dec 3, 2025

Programmatically created Pull Request to automatically keep merge branch to develop up-to-date

@iText-CI iText-CI assigned Eswcvlad and iText-CI and unassigned iText-CI Dec 3, 2025
With this commit all modified streams are written with `BrotliDecode`.
When you open a document as owner, you can now manipulate stream
filters via the context menu. The available options at the moment are
the following:

1. Remove all filters from a stream. I.e. save the decoded stream into
   the file.
2. Add a `FlateDecode` filter with the default compression level.
3. Add a `BrotliDecode` filter with the default compression level.

When you add a filter, they are layered on top, not replaced. So you
could test some of the more unorthodox configurations.

Additionally, when you save a stream now, it is saved without any
filters applied by default. And now the `Length` value is correctly
updated on the stream.
Now you can change this in the preferences window. This will affect the
streams created automatically by iText itself and the default filter
used, when saving stream. You can still remove all filters afterward,
if required.
* ASCII85Decode
* ASCIIHexDecode
* RunLengthDecode
@Eswcvlad
Copy link
Contributor

List of current features in the branch:

  • iText is updated to the current snapshot version, which adds experimental /BrotliDecode support.
    • You can read streams with a /BrotliDecode filter applied.
    • At the moment you can also read Brotli streams with /D shared dictionaries, but the decoder is pretty buggy in such cases, so sometimes it doesn't work...
  • You can specify in preferences, which compression algorithm to use for streams: None, /BrotliDecode or /FlateDecode (default). This affects the streams, which are generated by iText and it affects the compression algorithm used, when you edit and save streams.
  • Stream filters are now applied immediately, when editing streams, instead of on save. The stream dictionary is also updated to match.
  • In the context menu for streams there are now options to remove all filters and to apply an additional one (not replace).

List of filters you can apply:

  • /ASCII85Decode
  • /ASCIIHexDecode
  • /BrotliDecode
  • /FlateDecode
  • /RunLengthDecode

Default compression level from iText is used everywhere.

Not thoroughly tested yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants