Skip to content

Commit f60954c

Browse files
committed
Add experimental support for reading BrotliDecode
With this commit all modified streams are written with `BrotliDecode`.
1 parent f29a0b4 commit f60954c

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
<dom4j.version>2.2.0</dom4j.version>
7979
<flatlaf.version>3.6.2</flatlaf.version>
8080
<icu4j.version>76.1</icu4j.version>
81-
<itext.version>9.4.0</itext.version>
81+
<itext.version>9.5.0-SNAPSHOT</itext.version>
8282
<jackson.version>2.20.1</jackson.version>
8383
<logback.version>1.5.21</logback.version>
8484

@@ -117,6 +117,11 @@
117117
<artifactId>bouncy-castle-adapter</artifactId>
118118
<version>${itext.version}</version>
119119
</dependency>
120+
<dependency>
121+
<groupId>com.itextpdf</groupId>
122+
<artifactId>brotli-compressor</artifactId>
123+
<version>${itext.version}</version>
124+
</dependency>
120125
<dependency>
121126
<groupId>org.dom4j</groupId>
122127
<artifactId>dom4j</artifactId>

src/main/java/com/itextpdf/rups/model/PdfFile.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,14 @@ This file is part of the iText (R) project.
4242
*/
4343
package com.itextpdf.rups.model;
4444

45+
import com.itextpdf.brotlicompressor.BrotliStreamCompressionStrategy;
4546
import com.itextpdf.kernel.exceptions.BadPasswordException;
47+
import com.itextpdf.kernel.pdf.IStreamCompressionStrategy;
4648
import com.itextpdf.kernel.pdf.PdfDocument;
4749
import com.itextpdf.kernel.pdf.PdfReader;
4850
import com.itextpdf.kernel.pdf.PdfWriter;
4951
import com.itextpdf.kernel.pdf.ReaderProperties;
52+
import com.itextpdf.kernel.pdf.StampingProperties;
5053
import com.itextpdf.rups.view.Language;
5154

5255
import java.io.ByteArrayInputStream;
@@ -252,7 +255,7 @@ private boolean openDocumentReadWrite(byte[] password) throws IOException {
252255
);
253256
final ByteArrayOutputStream tempWriterOutputStream = new ByteArrayOutputStream();
254257
final PdfWriter writer = new PdfWriter(tempWriterOutputStream);
255-
document = new PdfDocument(reader, writer);
258+
document = new PdfDocument(reader, writer, createStampingProps());
256259
writerOutputStream = tempWriterOutputStream;
257260
return true;
258261
} catch (BadPasswordException e) {
@@ -293,4 +296,13 @@ private boolean openDocumentReadOnly(byte[] password) throws IOException {
293296
return false;
294297
}
295298
}
299+
300+
private static StampingProperties createStampingProps() {
301+
final StampingProperties props = new StampingProperties();
302+
props.registerDependency(
303+
IStreamCompressionStrategy.class,
304+
new BrotliStreamCompressionStrategy()
305+
);
306+
return props;
307+
}
296308
}

0 commit comments

Comments
 (0)