private void writeOutlineItem(List <PDFDestination> destinations, int index)

        {
            PDFDestination dest = destinations.get(index);

            List <PDFDestination> children = dest.getChildren();

            for (int i = 0; i < children.size(); i++)
            {
                writeOutlineItem(children, i);
            }

            beginObject(dest.getId());

            println("  << /Title (" + PDFStream.pdfEscapeText(dest.getTitle()) + ")");
            println("     /Parent " + dest.getParentId() + " 0 R");
            println("     /Dest [" + dest.getPageId() + " 0 R /XYZ 0 " + dest.getPos() + " 0]");

            if (index > 0)
            {
                println("     /Prev " + destinations.get(index - 1).getId() + " 0 R");
            }

            if (index < (destinations.size() - 1))
            {
                println("     /Next " + destinations.get(index + 1).getId() + " 0 R");
            }

            if (!children.isEmpty())
            {
                println("     /First " + children.get(0).getId() + " 0 R");
                println("     /Last " + children.get(children.size() - 1).getId() + " 0 R");
                println("     /Count " + (children.size() * -1));
            }

            println("  >>");

            endObject();
        }