public override void OnSaveEvent(IndirectObject indirectObject, PDFObjects pdfObjects) { var entries = new Dictionary <string, PdfObject>() { { "Count", new IntegerObject(Count) } }; if (Parent == null) { entries.Add("Type", new NameObject("Outlines")); } if (Parent != null) { entries.Add("Parent", Parent.IndirectReferenceObject(pdfObjects)); entries.Add("Dest", new ArrayObject(new List <PdfObject>() { Page.IndirectReferenceObject(pdfObjects), new NameObject("XYZ"), GetRealOrNullObject(X), GetRealOrNullObject(Y), GetRealOrNullObject(Zoom) })); } if (First != null) { entries.Add("First", First.IndirectReferenceObject(pdfObjects)); } if (Last != null) { entries.Add("Last", Last.IndirectReferenceObject(pdfObjects)); } if (Prev != null) { entries.Add("Prev", Prev.IndirectReferenceObject(pdfObjects)); } if (Next != null) { entries.Add("Next", Next.IndirectReferenceObject(pdfObjects)); } if (Title != null) { entries.Add("Title", new StringObject(Title)); } indirectObject.SetChild(new DictionaryObject(entries)); }