BBeBCollector.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/*
3 * This file is part of the libe-book project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#ifndef BBEBCOLLECTOR_H_INCLUDED
11#define BBEBCOLLECTOR_H_INCLUDED
12
13#include <string>
14#include <stack>
15
16#include "BBeBTypes.h"
17#include "libebook_utils.h"
18
19namespace libebook
20{
21
23{
24 // -Weffc++
27
35 typedef std::map<unsigned, ImageStreamData> ImageDataMap_t;
36
37 struct ImageData
38 {
39 unsigned dataId;
40 unsigned width;
41 unsigned height;
42 };
43 typedef std::map<unsigned, ImageData> ImageMap_t;
44
45public:
46 explicit BBeBCollector(librevenge::RVNGTextInterface *document);
48
49 void startDocument();
50 void endDocument();
51
52 void openPage(unsigned pageAtrID, const BBeBAttributes &attributes);
53 void closePage();
54
55 void openBlock(unsigned atrID, const BBeBAttributes &attributes);
56 void closeBlock();
57
58 void openTextBlock(unsigned atrID, const BBeBAttributes &attributes);
59 void closeTextBlock();
60
61 void openParagraph(unsigned atrID, const BBeBAttributes &attributes);
62 void closeParagraph();
63
64 void collectText(const std::string &text, const BBeBAttributes &attributes);
65 void insertLineBreak();
66
67 void insertImage(unsigned id);
68
70
71 void collectBookAttributes(const BBeBAttributes &attributes);
72 void collectTextAttributes(unsigned id, const BBeBAttributes &attributes);
73 void collectBlockAttributes(unsigned id, const BBeBAttributes &attributes);
74 void collectPageAttributes(unsigned id, const BBeBAttributes &attributes);
75 void collectParagraphAttributes(unsigned id, const BBeBAttributes &attributes);
76
77 void collectImage(unsigned id, unsigned dataId, unsigned width, unsigned height);
78 void collectImageData(unsigned id, BBeBImageType type, const RVNGInputStreamPtr_t &image);
79
80 void setDPI(double dpi);
81
82private:
83 void collectAttributes(unsigned id, const BBeBAttributes &attributes, BBeBAttributeMap_t &attributeMap);
84 void openBlock(unsigned atrID, const BBeBAttributes &attributes, const BBeBAttributeMap_t *attributeMap);
85
86private:
92 librevenge::RVNGTextInterface *const m_document;
93 std::stack<BBeBAttributes> m_currentAttributes;
96 double m_dpi;
98};
99
100}
101
102#endif // BBEBCOLLECTOR_H_INCLUDED
103
104/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
EBOOKDocument::Type type
Definition EBOOKDocument.cpp:325
XMLTreeNodePtr_t document
Definition EBOOKHTMLParser.cpp:163
RVNGPropertyList metadata
Definition EBOOKOPFParser.cpp:63
qi::rule< Iterator, AttrValue_t, qi::space_type > text
Definition TealDocParser.cpp:232
Definition BBeBCollector.h:23
void setDPI(double dpi)
Definition BBeBCollector.cpp:590
void openPage(unsigned pageAtrID, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:350
BBeBAttributes m_bookAttributes
Definition BBeBCollector.h:87
void collectParagraphAttributes(unsigned id, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:450
~BBeBCollector()
Definition BBeBCollector.cpp:334
std::map< unsigned, ImageData > ImageMap_t
Definition BBeBCollector.h:43
void collectMetadata(const BBeBMetadata &metadata)
Definition BBeBCollector.cpp:420
BBeBAttributeMap_t m_pageAttributeMap
Definition BBeBCollector.h:90
bool m_firstParaInBlock
Definition BBeBCollector.h:97
BBeBCollector & operator=(const BBeBCollector &other)
void openTextBlock(unsigned atrID, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:372
std::stack< BBeBAttributes > m_currentAttributes
Definition BBeBCollector.h:93
void closeBlock()
Definition BBeBCollector.cpp:367
void collectPageAttributes(unsigned id, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:445
void endDocument()
Definition BBeBCollector.cpp:344
void startDocument()
Definition BBeBCollector.cpp:338
BBeBAttributeMap_t m_paragraphAttributeMap
Definition BBeBCollector.h:91
void collectTextAttributes(unsigned id, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:435
void insertImage(unsigned id)
Definition BBeBCollector.cpp:475
void collectBookAttributes(const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:430
BBeBAttributeMap_t m_textAttributeMap
Definition BBeBCollector.h:88
void collectImageData(unsigned id, BBeBImageType type, const RVNGInputStreamPtr_t &image)
Definition BBeBCollector.cpp:550
void closeParagraph()
Definition BBeBCollector.cpp:400
ImageDataMap_t m_imageDataMap
Definition BBeBCollector.h:94
void insertLineBreak()
Definition BBeBCollector.cpp:415
void collectText(const std::string &text, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:406
void collectBlockAttributes(unsigned id, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:440
double m_dpi
Definition BBeBCollector.h:96
void collectAttributes(unsigned id, const BBeBAttributes &attributes, BBeBAttributeMap_t &attributeMap)
Definition BBeBCollector.cpp:562
librevenge::RVNGTextInterface *const m_document
Definition BBeBCollector.h:92
ImageMap_t m_imageMap
Definition BBeBCollector.h:95
void openBlock(unsigned atrID, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:362
void collectImage(unsigned id, unsigned dataId, unsigned width, unsigned height)
Definition BBeBCollector.cpp:455
BBeBCollector(const BBeBCollector &other)
void closeTextBlock()
Definition BBeBCollector.cpp:378
std::map< unsigned, ImageStreamData > ImageDataMap_t
Definition BBeBCollector.h:35
void openParagraph(unsigned atrID, const BBeBAttributes &attributes)
Definition BBeBCollector.cpp:383
BBeBAttributeMap_t m_blockAttributeMap
Definition BBeBCollector.h:89
void closePage()
Definition BBeBCollector.cpp:356
Definition BBeBCollector.cpp:19
BBeBImageType
Definition BBeBTypes.h:23
std::map< unsigned, BBeBAttributes > BBeBAttributeMap_t
Definition BBeBTypes.h:142
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition libebook_utils.h:54
Definition BBeBTypes.h:109
Definition BBeBCollector.h:38
unsigned height
Definition BBeBCollector.h:41
unsigned dataId
Definition BBeBCollector.h:39
unsigned width
Definition BBeBCollector.h:40
Definition BBeBCollector.h:29
ImageStreamData()
Definition BBeBCollector.cpp:313
RVNGInputStreamPtr_t image
Definition BBeBCollector.h:32
BBeBImageType type
Definition BBeBCollector.h:33
Definition BBeBTypes.h:80

Generated for libe-book by doxygen 1.10.0