private void InitializeIgnoredObjectPath(CleanUpImagesCompareTool.PageImageObjectsPaths cmpPageObjects, CleanUpImagesCompareTool.PageImageObjectsPaths outPageObjects) { try { IList <PdfIndirectReference> cmpIndirects = cmpPageObjects.GetIndirectReferences(); IList <PdfIndirectReference> outIndirects = outPageObjects.GetIndirectReferences(); PdfIndirectReference baseCmpIndirect = cmpIndirects[0]; PdfIndirectReference baseOutIndirect = outIndirects[0]; ObjectPath baseObjectPath = new ObjectPath(baseCmpIndirect, baseCmpIndirect); for (int i = 1; i < cmpIndirects.Count; i++) { baseObjectPath.ResetDirectPath(cmpIndirects[i], outIndirects[i]); baseCmpIndirect = cmpIndirects[i]; baseOutIndirect = outIndirects[i]; } foreach (Stack <LocalPathItem> path in cmpPageObjects.GetDirectPaths()) { ignoredObjectPaths.Add(new ObjectPath(baseCmpIndirect, baseOutIndirect, path, baseObjectPath.GetIndirectPath ())); } } catch (Exception) { throw new ArgumentException("Out and cmp pdf documents have different object structure"); } }