Skip to content

Commit a69a813

Browse files
Fix bug in CompareTool when pdfstream from output file has filter different from cmp file
ITXT-CR-749
1 parent b0e3fa1 commit a69a813

File tree

4 files changed

+14
-1
lines changed

4 files changed

+14
-1
lines changed

kernel/src/main/java/com/itextpdf/kernel/utils/CompareTool.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1375,7 +1375,7 @@ private boolean compareObjects(PdfObject outObj, PdfObject cmpObj, ObjectPath cu
13751375
}
13761376

13771377
private boolean compareStreamsExtended(PdfStream outStream, PdfStream cmpStream, ObjectPath currentPath, CompareResult compareResult) {
1378-
boolean toDecode = PdfName.FlateDecode.equals(outStream.get(PdfName.Filter));
1378+
boolean toDecode = PdfName.FlateDecode.equals(outStream.get(PdfName.Filter)) && PdfName.FlateDecode.equals(cmpStream.get(PdfName.Filter));
13791379
byte[] outStreamBytes = outStream.getBytes(toDecode);
13801380
byte[] cmpStreamBytes = cmpStream.getBytes(toDecode);
13811381
if (Arrays.equals(outStreamBytes, cmpStreamBytes)) {

kernel/src/test/java/com/itextpdf/kernel/utils/CompareToolTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,19 @@ public void compareToolErrorReportTest04() throws InterruptedException, IOExcept
123123

124124
}
125125

126+
127+
@Test
128+
public void imgFilterDiffTest() throws InterruptedException, IOException {
129+
CompareTool compareTool = new CompareTool();
130+
compareTool.setGenerateCompareByContentXmlReport(true);
131+
String outPdf = sourceFolder + "imgFilterDiff.pdf";
132+
String cmpPdf = sourceFolder + "cmp_imgFilterDiff.pdf";
133+
String result = compareTool.compareByContent(outPdf, cmpPdf, destinationFolder, "difference");
134+
// test that compareByContent doesn't fail with error
135+
System.out.println(result);
136+
Assert.assertNotNull(result);
137+
}
138+
126139
@Test
127140
public void differentProducerTest() throws IOException {
128141
String expectedMessage = "Document info fail. Expected: \"iText\u00ae <version> \u00a9<copyright years> iText Group NV (iText Software; licensed version)\", actual: \"iText\u00ae <version> \u00a9<copyright years> iText Group NV (AGPL-version)\"";

0 commit comments

Comments
 (0)