Пример #1
0
        private void createDefaultAttributeObjects(ushort width, ushort height)
        {
            // Root Object
            BookAttrObject bookAttr = new BookAttrObject(GetNextObjId());

            bookAttr.createDefaultTags();
            m_Book.Objects.Add(bookAttr);
            m_Book.Header.dwRootObjectId = bookAttr.ID;

            // Create an empty table of contents.
            m_TocObject = new TocObject(GetNextObjId());
            m_Book.Objects.Add(m_TocObject);
            m_Book.Header.dwTocObjectId = m_TocObject.ID;

            m_MainBodyTextAttr = new TextAttrObject(GetNextObjId());
            m_MainBodyTextAttr.createDefaultTags(BlockAlignment.Left);
            m_Book.Objects.Add(m_MainBodyTextAttr);

            m_CenteredTextAttr = new TextAttrObject(GetNextObjId());
            m_CenteredTextAttr.createDefaultTags(BlockAlignment.Center);
            m_Book.Objects.Add(m_CenteredTextAttr);

            // Fill this one in later need id now for the BookAttrObject
            m_PageTree = new PageTreeObject(GetNextObjId());
            m_Book.Objects.Add(m_PageTree);
            bookAttr.Tags.Add(new UInt32Tag(TagId.ChildPageTree, m_PageTree.ID));

            m_PageAttr = new PageAttrObject(GetNextObjId());
            m_PageAttr.createDefaultTags();
            m_Book.Objects.Add(m_PageAttr);

            m_BlockAttr = new BlockAttrObject(GetNextObjId());
            m_BlockAttr.createDefaultTags(width, height);
            m_Book.Objects.Add(m_BlockAttr);
        }
Пример #2
0
        private void ConnectPageTree(BBeB book)
        {
            Debug.WriteLineIf(s_bDebugMode, "Connecting page tree");

            PageTreeObject pageTree = (PageTreeObject)book.FindFirstObject(typeof(PageTreeObject));

            if (pageTree == null)
            {
                throw new InvalidBookException("Couldn't find the required PageTree object");
            }

            UInt32ArrayTag pageListTag = (UInt32ArrayTag)pageTree.FindFirstTag(TagId.PageList);

            if (pageListTag == null)
            {
                throw new InvalidBookException("Couldn't find the required PageList tag");
            }

            foreach (uint id in pageListTag.Value)
            {
                PageObject page = (PageObject)book.FindObject((ushort)id);
                if (page == null)
                {
                    throw new InvalidBookException("Can't find page id " + id);
                }
                pageTree.Pages.Add(page);
            }
        }
Пример #3
0
        private void writePages()
        {
            // Get the page tree
            PageTreeObject pageTree = null;

            foreach (BBeBObject obj in book.Objects)
            {
                if (obj.GetType() == typeof(PageTreeObject))
                {
                    pageTree = (PageTreeObject)obj;
                    break;
                }
            }
            // If no page tree - nothing to do
            if (pageTree == null)
            {
                return;
            }

            start();
            foreach (PageObject page in pageTree.Pages)
            {
                foreach (BBeBObject obj in page.Children)
                {
                    startPage();
                    if (obj.GetType() == typeof(TextObject))
                    {
                        write((TextObject)obj);
                    }
                    if (obj.GetType() == typeof(ImageObject))
                    {
                        write((ImageObject)obj);
                    }
                    endPage();
                }
            }
            finished();
        }