Browse Source

Exclude OCG dictionaries from duplication verification

Add test case to verifie OCG copying behaviour

DEVSIX-6093

Autoported commit.
Original commit hash: [9561a1aec]
pull/24/merge
glenn.volckaert 3 years ago
committed by iText Software
parent
commit
410f4c5064
  1. 21
      itext.tests/itext.kernel.tests/itext/kernel/utils/PdfMergerTest.cs
  2. 8
      itext.tests/itext.kernel.tests/resources/itext/kernel/utils/PdfMergerTest/cmp_MergeWithSameNamedOCG.pdf
  3. 5
      itext.tests/itext.kernel.tests/resources/itext/kernel/utils/PdfMergerTest/sameNamdOCGSource.pdf
  4. 3
      itext/itext.kernel/itext/kernel/pdf/PdfWriter.cs
  5. 2
      port-hash

21
itext.tests/itext.kernel.tests/itext/kernel/utils/PdfMergerTest.cs

@ -439,6 +439,27 @@ namespace iText.Kernel.Utils {
));
}
[NUnit.Framework.Test]
public virtual void MergeWithSameNamedOCGTest() {
String firstPdfDocument = sourceFolder + "sameNamdOCGSource.pdf";
String secondPdfDocument = sourceFolder + "doc2.pdf";
String cmpDocument = sourceFolder + "cmp_MergeWithSameNamedOCG.pdf";
String mergedDocument = destinationFolder + "mergeWithSameNamedOCG.pdf";
using (PdfDocument documentA = new PdfDocument(new PdfReader(firstPdfDocument))) {
using (PdfDocument documentB = new PdfDocument(new PdfReader(secondPdfDocument))) {
using (PdfDocument mergedPdf = new PdfDocument(new PdfWriter(mergedDocument))) {
mergedPdf.GetWriter().SetSmartMode(true);
PdfMerger merger = new PdfMerger(mergedPdf, false, true);
merger.Merge(documentA, 1, documentA.GetNumberOfPages());
merger.Merge(documentB, 1, documentB.GetNumberOfPages());
merger.Close();
}
}
}
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(mergedDocument, cmpDocument, destinationFolder
));
}
private void MergePdfs(IList<FileInfo> sources, String destination) {
PdfDocument mergedDoc = new PdfDocument(new PdfWriter(destination));
PdfMerger merger = new PdfMerger(mergedDoc);

8
itext.tests/itext.kernel.tests/resources/itext/kernel/utils/PdfMergerTest/cmp_MergeWithSameNamedOCG.pdf

@ -0,0 +1,8 @@
On Layer 1 page 1
On Layer 2 page 1
On Layer 1 page 2
On Layer 2 page 2
Hello Helvetica!
Hello Courier!
Hello TimesRoman!

5
itext.tests/itext.kernel.tests/resources/itext/kernel/utils/PdfMergerTest/sameNamdOCGSource.pdf

@ -0,0 +1,5 @@
On Layer 1 page 1
On Layer 2 page 1
On Layer 1 page 2
On Layer 2 page 2

3
itext/itext.kernel/itext/kernel/pdf/PdfWriter.cs

@ -273,7 +273,8 @@ namespace iText.Kernel.Pdf {
}
}
SerializedObjectContent serializedContent = null;
if (properties.smartMode && tryToFindDuplicate && !CheckTypeOfPdfDictionary(obj, PdfName.Page)) {
if (properties.smartMode && tryToFindDuplicate && !CheckTypeOfPdfDictionary(obj, PdfName.Page) && !CheckTypeOfPdfDictionary
(obj, PdfName.OCG)) {
serializedContent = smartModeSerializer.SerializeObject(obj);
PdfIndirectReference objectRef = smartModeSerializer.GetSavedSerializedObject(serializedContent);
if (objectRef != null) {

2
port-hash

@ -1 +1 @@
b7e566db44293a7b8e0a1af07360fd8087865331
9561a1aecf626a4609068b87fe76b467bc41cf21
Loading…
Cancel
Save