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 
19 namespace libebook
20 {
21 
23 {
24  // -Weffc++
25  BBeBCollector(const BBeBCollector &other);
26  BBeBCollector &operator=(const BBeBCollector &other);
27 
29  {
31 
34  };
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 
45 public:
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);
79 
80  void setDPI(double dpi);
81 
82 private:
83  void collectAttributes(unsigned id, const BBeBAttributes &attributes, BBeBAttributeMap_t &attributeMap);
84  void openBlock(unsigned atrID, const BBeBAttributes &attributes, const BBeBAttributeMap_t *attributeMap);
85 
86 private:
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: */
void collectParagraphAttributes(unsigned id, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:450
void collectBookAttributes(const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:430
std::stack< BBeBAttributes > m_currentAttributes
Definition: BBeBCollector.h:93
void collectAttributes(unsigned id, const BBeBAttributes &attributes, BBeBAttributeMap_t &attributeMap)
Definition: BBeBCollector.cpp:562
void collectImageData(unsigned id, BBeBImageType type, const RVNGInputStreamPtr_t &image)
Definition: BBeBCollector.cpp:550
BBeBImageType type
Definition: BBeBCollector.h:33
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition: libebook_utils.h:54
void collectText(const std::string &text, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:406
BBeBImageType
Definition: BBeBTypes.h:22
Definition: EBOOKHTMLToken.h:265
bool m_firstParaInBlock
Definition: BBeBCollector.h:97
ImageStreamData()
Definition: BBeBCollector.cpp:313
void openPage(unsigned pageAtrID, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:350
ImageDataMap_t m_imageDataMap
Definition: BBeBCollector.h:94
void closeBlock()
Definition: BBeBCollector.cpp:367
RVNGInputStreamPtr_t image
Definition: BBeBCollector.h:32
void endDocument()
Definition: BBeBCollector.cpp:344
void openParagraph(unsigned atrID, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:383
BBeBCollector & operator=(const BBeBCollector &other)
ImageMap_t m_imageMap
Definition: BBeBCollector.h:95
void insertImage(unsigned id)
Definition: BBeBCollector.cpp:475
librevenge::RVNGTextInterface *const m_document
Definition: BBeBCollector.h:92
BBeBAttributeMap_t m_pageAttributeMap
Definition: BBeBCollector.h:90
BBeBAttributeMap_t m_paragraphAttributeMap
Definition: BBeBCollector.h:91
unsigned width
Definition: BBeBCollector.h:40
std::map< unsigned, BBeBAttributes > BBeBAttributeMap_t
Definition: BBeBTypes.h:142
void openTextBlock(unsigned atrID, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:372
BBeBAttributeMap_t m_blockAttributeMap
Definition: BBeBCollector.h:89
EBOOKDocument::Type type
Definition: EBOOKDocument.cpp:325
double m_dpi
Definition: BBeBCollector.h:96
BBeBAttributes m_bookAttributes
Definition: BBeBCollector.h:87
void closeParagraph()
Definition: BBeBCollector.cpp:400
void collectMetadata(const BBeBMetadata &metadata)
Definition: BBeBCollector.cpp:420
BBeBAttributeMap_t m_textAttributeMap
Definition: BBeBCollector.h:88
void startDocument()
Definition: BBeBCollector.cpp:338
Definition: EBOOKHTMLToken.h:198
Definition: BBeBTypes.h:108
RVNGPropertyList metadata
Definition: EBOOKOPFParser.cpp:63
unsigned dataId
Definition: BBeBCollector.h:39
void collectImage(unsigned id, unsigned dataId, unsigned width, unsigned height)
Definition: BBeBCollector.cpp:455
void collectTextAttributes(unsigned id, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:435
void setDPI(double dpi)
Definition: BBeBCollector.cpp:590
Definition: BBeBCollector.h:37
unsigned height
Definition: BBeBCollector.h:41
void closeTextBlock()
Definition: BBeBCollector.cpp:378
std::map< unsigned, ImageData > ImageMap_t
Definition: BBeBCollector.h:43
Definition: BBeBCollector.h:22
std::map< unsigned, ImageStreamData > ImageDataMap_t
Definition: BBeBCollector.h:35
XMLTreeNodePtr_t document
Definition: EBOOKHTMLParser.cpp:163
void insertLineBreak()
Definition: BBeBCollector.cpp:415
Definition: BBeBTypes.h:79
void closePage()
Definition: BBeBCollector.cpp:356
void openBlock(unsigned atrID, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:362
Definition: BBeBCollector.h:28
Definition: BBeBCollector.cpp:18
BBeBCollector(const BBeBCollector &other)
qi::rule< Iterator, AttrValue_t, qi::space_type > text
Definition: TealDocParser.cpp:232
~BBeBCollector()
Definition: BBeBCollector.cpp:334
void collectBlockAttributes(unsigned id, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:440
Definition: FictionBook2Token.h:60
void collectPageAttributes(unsigned id, const BBeBAttributes &attributes)
Definition: BBeBCollector.cpp:445

Generated for libe-book by doxygen 1.8.14