private static void GetUsedNonFlushedOCGsFromXObject(PdfDictionary toXObject, PdfDictionary fromXObject, ICollection <PdfIndirectReference> fromUsedOcgs, PdfDictionary toOcProperties) { if (toXObject != null && !toXObject.IsFlushed()) { if (toXObject.IsStream() && !toXObject.IsFlushed()) { PdfStream toStream = (PdfStream)toXObject; PdfStream fromStream = (PdfStream)fromXObject; iText.Kernel.Pdf.OcgPropertiesCopier.GetUsedNonFlushedOCGsFromOcDict(toStream.GetAsDictionary(PdfName.OC), fromStream.GetAsDictionary(PdfName.OC), fromUsedOcgs, toOcProperties); iText.Kernel.Pdf.OcgPropertiesCopier.GetUsedNonFlushedOCGsFromResources(toStream.GetAsDictionary(PdfName.Resources ), fromStream.GetAsDictionary(PdfName.Resources), fromUsedOcgs, toOcProperties); } else { foreach (PdfName name in toXObject.KeySet()) { PdfObject toCurrObj = toXObject.Get(name); PdfObject fromCurrObj = fromXObject.Get(name); if (toCurrObj.IsStream() && !toCurrObj.IsFlushed()) { PdfStream toStream = (PdfStream)toCurrObj; PdfStream fromStream = (PdfStream)fromCurrObj; iText.Kernel.Pdf.OcgPropertiesCopier.GetUsedNonFlushedOCGsFromXObject(toStream, fromStream, fromUsedOcgs, toOcProperties); } } } } }