EPUBGenerator.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 libepubgen 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 INCLUDED_EPUBGENERATOR_H
11 #define INCLUDED_EPUBGENERATOR_H
12 
13 #include "EPUBHTMLManager.h"
14 #include "EPUBHTMLGenerator.h"
15 #include "EPUBImageManager.h"
16 #include "EPUBListStyleManager.h"
17 #include "EPUBManifest.h"
19 #include "EPUBPath.h"
20 #include "EPUBSpanStyleManager.h"
21 #include "EPUBSplitGuard.h"
22 #include "EPUBTableStyleManager.h"
23 
24 namespace libepubgen
25 {
26 
27 class EPUBPackage;
28 
30 {
31  // disable copying
34 
35 public:
36  EPUBGenerator(EPUBPackage *package, int version);
37  virtual ~EPUBGenerator();
38 
39  void startDocument(const librevenge::RVNGPropertyList &props);
40  void endDocument();
41 
42  void setDocumentMetaData(const librevenge::RVNGPropertyList &props);
43 
44  void startNewHtmlFile();
45 
46  const EPUBHTMLGeneratorPtr_t &getHtml() const;
47 
49 
50  const EPUBSplitGuard &getSplitGuard() const;
52  int getVersion() const;
53 
54  void setSplitMethod(EPUBSplitMethod splitMethod);
55 
56  void setStylesMethod(EPUBStylesMethod stylesMethod);
57 
58  void setLayoutMethod(EPUBLayoutMethod layoutMethod);
59 
60 private:
61  virtual void startHtmlFile() = 0;
62  virtual void endHtmlFile() = 0;
63 
64 private:
65  void writeContainer();
66  void writeNavigation();
67  void writeStylesheet();
68  void writeRoot();
69 
70 private:
71  EPUBPackage *m_package;
81 
82  librevenge::RVNGPropertyList m_documentProps;
83  librevenge::RVNGPropertyList m_metadata;
84 
86 
88 
89  int m_version;
90  EPUBStylesMethod m_stylesMethod;
91  EPUBLayoutMethod m_layoutMethod;
92 };
93 
94 }
95 
96 #endif // INCLUDED_EPUBGENERATOR
97 
98 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libepubgen::EPUBFontManager::writeTo
void writeTo(EPUBPackage &package)
Definition: EPUBImageManager.cpp:302
EPUBManifest.h
libepubgen::EPUBGenerator::m_tableStyleManager
EPUBTableStyleManager m_tableStyleManager
Definition: EPUBGenerator.h:79
libepubgen::EPUBGenerator::writeStylesheet
void writeStylesheet()
Definition: EPUBGenerator.cpp:264
libepubgen::EPUBGenerator::~EPUBGenerator
virtual ~EPUBGenerator()
Definition: EPUBGenerator.cpp:54
libepubgen::EPUBDrawingGenerator::Impl::Impl
Impl(EPUBPackage *const package, int version)
Definition: EPUBDrawingGenerator.cpp:26
libepubgen::EPUBSpanStyleManager::send
void send(EPUBCSSSink &out)
send the data to the sink
Definition: EPUBSpanStyleManager.cpp:68
libepubgen::EPUBGenerator::m_metadata
librevenge::RVNGPropertyList m_metadata
Definition: EPUBGenerator.h:83
libepubgen::EPUBImageManager
Definition: EPUBImageManager.h:30
EPUBXMLSink.h
libepubgen::EPUBGenerator::startNewHtmlFile
void startNewHtmlFile()
Definition: EPUBGenerator.cpp:110
libepubgen::EPUBGenerator::m_package
EPUBPackage * m_package
Definition: EPUBGenerator.h:71
libepubgen::EPUBGenerator::setLayoutMethod
void setLayoutMethod(EPUBLayoutMethod layoutMethod)
Definition: EPUBGenerator.cpp:170
libepubgen::EPUBGenerator::m_stylesheetPath
const EPUBPath m_stylesheetPath
Definition: EPUBGenerator.h:80
libepubgen::EPUBGenerator::setSplitMethod
void setSplitMethod(EPUBSplitMethod splitMethod)
Definition: EPUBGenerator.cpp:160
libepubgen::EPUBGenerator::getHtml
const EPUBHTMLGeneratorPtr_t & getHtml() const
Definition: EPUBGenerator.cpp:135
libepubgen::EPUBGenerator::endDocument
void endDocument()
Definition: EPUBGenerator.cpp:70
libepubgen::EPUBCSSSink::writeTo
void writeTo(EPUBPackage &package, const char *name)
Definition: EPUBCSSSink.cpp:25
libepubgen
Definition: EPUBBinarySink.cpp:12
libepubgen::EPUBHTMLManager
Definition: EPUBHTMLManager.h:35
m_version
int m_version
Definition: EPUBHTMLGenerator.cpp:214
libepubgen::EPUBImageManager::send
void send(EPUBCSSSink &out)
send the data to the sink
Definition: EPUBImageManager.cpp:205
libepubgen::EPUBTableStyleManager
Small class to manage the tables style.
Definition: EPUBTableStyleManager.h:29
libepubgen::EPUBGenerator::m_currentHtml
EPUBHTMLGeneratorPtr_t m_currentHtml
Definition: EPUBGenerator.h:85
libepubgen::EPUBGenerator::getSplitGuard
const EPUBSplitGuard & getSplitGuard() const
Definition: EPUBGenerator.cpp:145
EPUBCSSSink.h
libepubgen::EPUBManifest::insert
void insert(const EPUBPath &path, const std::string &mimetype, const std::string &id, const std::string &properties)
Definition: EPUBManifest.cpp:24
libepubgen::EPUBGenerator::startDocument
void startDocument(const librevenge::RVNGPropertyList &props)
Definition: EPUBGenerator.cpp:58
EPUBSplitGuard.h
libepubgen::EPUBManifest::writeTo
void writeTo(EPUBXMLSink &sink)
Definition: EPUBManifest.cpp:32
libepubgen::EPUBGenerator::endHtmlFile
virtual void endHtmlFile()=0
libepubgen::EPUBGenerator::m_documentProps
librevenge::RVNGPropertyList m_documentProps
Definition: EPUBGenerator.h:82
libepubgen::EPUBSplitGuard::onSplit
void onSplit()
Definition: EPUBSplitGuard.cpp:89
libepubgen::EPUBImageManager::insert
const EPUBPath & insert(const librevenge::RVNGBinaryData &data, const librevenge::RVNGString &mimetype, const librevenge::RVNGString &properties="")
Definition: EPUBImageManager.cpp:87
libepubgen::EPUBXMLSink::insertCharacters
void insertCharacters(const librevenge::RVNGString &characters)
Definition: EPUBXMLSink.cpp:148
libepubgen::EPUBGenerator::startHtmlFile
virtual void startHtmlFile()=0
libepubgen::EPUBGenerator::EPUBGenerator
EPUBGenerator(const EPUBGenerator &)
libepubgen::EPUBXMLSink::openElement
void openElement(const char *name, const librevenge::RVNGPropertyList &attributes=librevenge::RVNGPropertyList())
Definition: EPUBXMLSink.cpp:132
libepubgen::EPUBGenerator
Definition: EPUBGenerator.h:29
libepubgen::EPUBGenerator::writeContainer
void writeContainer()
Definition: EPUBGenerator.cpp:178
libepubgen::EPUBSpanStyleManager
Small class to manage the span style.
Definition: EPUBSpanStyleManager.h:29
libepubgen::EPUBSplitGuard
Definition: EPUBSplitGuard.h:18
libepubgen::EPUBDrawingGenerator::Impl
Definition: EPUBDrawingGenerator.cpp:20
libepubgen::EPUBHTMLManager::writeTo
void writeTo(EPUBPackage &package)
Definition: EPUBHTMLManager.cpp:69
libepubgen::EPUBXMLSink::writeTo
void writeTo(EPUBPackage &package, const char *name)
Definition: EPUBXMLSink.cpp:163
libepubgen::EPUBGenerator::m_splitGuard
EPUBSplitGuard m_splitGuard
Definition: EPUBGenerator.h:87
libepubgen::EPUBGenerator::getHtmlManager
EPUBHTMLManager & getHtmlManager()
Definition: EPUBGenerator.cpp:140
libepubgen::EPUBGenerator::m_version
int m_version
Definition: EPUBGenerator.h:89
libepubgen::EPUBGenerator::m_listStyleManager
EPUBListStyleManager m_listStyleManager
Definition: EPUBGenerator.h:76
libepubgen::EPUBPath
Representation of a path in the package.
Definition: EPUBPath.h:21
libepubgen::EPUBTableStyleManager::send
void send(EPUBCSSSink &out)
send the data to the sink
Definition: EPUBTableStyleManager.cpp:193
EPUBPath.h
libepubgen::EPUBListStyleManager
Small class to manage the list style.
Definition: EPUBListStyleManager.h:31
libepubgen::EPUBGenerator::m_stylesMethod
EPUBStylesMethod m_stylesMethod
Definition: EPUBGenerator.h:90
libepubgen::EPUBGenerator::m_layoutMethod
EPUBLayoutMethod m_layoutMethod
Definition: EPUBGenerator.h:91
libepubgen::EPUBParagraphStyleManager
Small class to manage the paragraph style.
Definition: EPUBParagraphStyleManager.h:29
libepubgen::EPUBGenerator::setStylesMethod
void setStylesMethod(EPUBStylesMethod stylesMethod)
Definition: EPUBGenerator.cpp:165
libepubgen::EPUBGenerator::getVersion
int getVersion() const
Definition: EPUBGenerator.cpp:155
libepubgen::EPUBHTMLManager::create
const EPUBHTMLGeneratorPtr_t create(EPUBImageManager &imageManager, EPUBFontManager &fontManager, EPUBListStyleManager &listStyleManager, EPUBParagraphStyleManager &paragraphStyleManager, EPUBSpanStyleManager &spanStyleManager, EPUBTableStyleManager &tableStyleManager, const EPUBPath &stylesheetPath, EPUBStylesMethod stylesMethod, EPUBLayoutMethod layoutMethod, int version)
Definition: EPUBHTMLManager.cpp:50
libepubgen::EPUBSplitGuard::setSplitMethod
void setSplitMethod(EPUBSplitMethod method)
Allows overwriting the value given in the constructor.
Definition: EPUBSplitGuard.cpp:43
libepubgen::EPUBHTMLManager::writeSpineTo
void writeSpineTo(EPUBXMLSink &sink)
Definition: EPUBHTMLManager.cpp:80
libepubgen::EPUBGenerator::setDocumentMetaData
void setDocumentMetaData(const librevenge::RVNGPropertyList &props)
Definition: EPUBGenerator.cpp:87
libepubgen::EPUBParagraphStyleManager::send
void send(EPUBCSSSink &out)
send the data to the sink
Definition: EPUBParagraphStyleManager.cpp:68
EPUBGenerator.h
libepubgen::EPUBXMLSink::closeElement
void closeElement(const char *name)
Definition: EPUBXMLSink.cpp:137
libepubgen::EPUBGenerator::m_manifest
EPUBManifest m_manifest
Definition: EPUBGenerator.h:72
libepubgen::EPUBGenerator::m_fontManager
EPUBFontManager m_fontManager
Definition: EPUBGenerator.h:75
EPUBHTMLGenerator.h
EPUBSpanStyleManager.h
libepubgen::EPUBHTMLManager::writeTocTo
void writeTocTo(EPUBXMLSink &sink, const EPUBPath &tocPath, int version, EPUBLayoutMethod layout)
Definition: EPUBHTMLManager.cpp:90
libepubgen::EPUBListStyleManager::send
void send(EPUBCSSSink &out)
send the data to the sink
Definition: EPUBListStyleManager.cpp:77
libepubgen::EPUBPath::str
const std::string str() const
Definition: EPUBPath.cpp:85
EPUBPagedGenerator.h
libepubgen::EPUBGenerator::m_paragraphStyleManager
EPUBParagraphStyleManager m_paragraphStyleManager
Definition: EPUBGenerator.h:77
libepubgen::EPUBXMLSink
Definition: EPUBXMLSink.h:25
EPUBHTMLManager.h
libepubgen::EPUBFontManager::send
void send(EPUBCSSSink &out)
send the data to the sink
Definition: EPUBImageManager.cpp:312
EPUBParagraphStyleManager.h
libepubgen::EPUBFontManager
Manages embedded fonts.
Definition: EPUBImageManager.h:77
libepubgen::EPUBGenerator::m_spanStyleManager
EPUBSpanStyleManager m_spanStyleManager
Definition: EPUBGenerator.h:78
libepubgen::EPUBGenerator::m_htmlManager
EPUBHTMLManager m_htmlManager
Definition: EPUBGenerator.h:73
EPUBListStyleManager.h
libepubgen::EPUBGenerator::writeNavigation
void writeNavigation()
Definition: EPUBGenerator.cpp:201
libepubgen::EPUBImageManager::writeTo
void writeTo(EPUBPackage &package)
Definition: EPUBImageManager.cpp:111
libepubgen::EPUBGenerator::operator=
EPUBGenerator & operator=(const EPUBGenerator &)
libepubgen::EPUBGenerator::writeRoot
void writeRoot()
Definition: EPUBGenerator.cpp:278
libepubgen::EPUBHTMLGeneratorPtr_t
std::shared_ptr< EPUBHTMLGenerator > EPUBHTMLGeneratorPtr_t
Definition: EPUBHTMLGenerator.h:131
libepubgen::EPUBGenerator::m_imageManager
EPUBImageManager m_imageManager
Definition: EPUBGenerator.h:74
libepubgen::EPUBCSSSink
Definition: EPUBCSSSink.h:23
EPUBImageManager.h
libepubgen::EPUBXMLSink::insertEmptyElement
void insertEmptyElement(const char *name, const librevenge::RVNGPropertyList &attributes=librevenge::RVNGPropertyList())
Definition: EPUBXMLSink.cpp:142
libepubgen::EPUBPagedGenerator
Definition: EPUBPagedGenerator.h:24
libepubgen::EPUBManifest
Definition: EPUBManifest.h:23
EPUBTableStyleManager.h

Generated for libepubgen by doxygen 1.8.16