Ejemplo n.º 1
0
        private void Visit(PdfOutline parentOutline, OutlineNode node)
        {
            if (node == null)
            {
                return;
            }
            var counterString = Path(node);
            var thisOutline   = new PdfOutline(parentOutline, PdfAction.GotoLocalPage(counterString, false), node.Title.ToString());

            Visit(thisOutline, node.FirstChild());
            Visit(parentOutline, node.NextSibling());
        }
Ejemplo n.º 2
0
        private void AppendOutlineNode(int level, UString title)
        {
            if (level <= 0)
            {
                throw new ArgumentOutOfRangeException("level");
            }
            if (title == null)
            {
                throw new ArgumentNullException("title");
            }

            //initial
            if (_currentNode == null)
            {
                _initialLevel = level;
                _currentNode  = new OutlineNode(UString.Empty);
            }

            //TODO: behave initial level is the maximum(top) level

            //update
            var currentLevel = _currentNode.Level;

            if (level > currentLevel)
            {
                for (int i = currentLevel; i < level - 1; ++i)
                {
                    _currentNode = _currentNode.FirstChild(UString.Empty);
                }
                _currentNode = _currentNode.FirstChild(title);
            }
            else
            {
                for (int i = level; i < currentLevel; ++i)
                {
                    _currentNode = _currentNode.Parent;
                }
                _currentNode = _currentNode.NextSibling(title);
            }
        }
Ejemplo n.º 3
0
        private void Visit(PdfOutline parentOutline, OutlineNode node)
        {
            if (node == null) return;
            var counterString = Path(node);
            var thisOutline = new PdfOutline(parentOutline, PdfAction.GotoLocalPage(counterString, false), node.Title.ToString());

            Visit(thisOutline, node.FirstChild());
            Visit(parentOutline, node.NextSibling());
        }
Ejemplo n.º 4
0
        private void AppendOutlineNode(int level, UString title)
        {
            if (level <= 0)
            {
                throw new ArgumentOutOfRangeException("level");
            }
            if (title == null)
            {
                throw new ArgumentNullException("title");
            }

            //initial
            if (_currentNode == null)
            {
                _initialLevel = level;
                _currentNode = new OutlineNode(UString.Empty);
            }

            //TODO: behave initial level is the maximum(top) level

            //update
            var currentLevel = _currentNode.Level;

            if (level > currentLevel)
            {
                for (int i = currentLevel; i < level - 1; ++i)
                {
                    _currentNode = _currentNode.FirstChild(UString.Empty);
                }
                _currentNode = _currentNode.FirstChild(title);
            }
            else
            {
                for (int i = level; i < currentLevel; ++i)
                {
                    _currentNode = _currentNode.Parent;
                }
                _currentNode = _currentNode.NextSibling(title);
            }
        }