PocketWord.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2/* libwps
3 * Version: MPL 2.0 / LGPLv2.1+
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 * Major Contributor(s):
10 * Copyright (C) 2020 Laurent Alonso (alonso.laurent@gmail.com)
11 *
12 * For minor contributions see the git repository.
13 *
14 * Alternatively, the contents of this file may be used under the terms
15 * of the GNU Lesser General Public License Version 2.1 or later
16 * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
17 * applicable instead of those above.
18 *
19 * For further information visit http://libwps.sourceforge.net
20 */
21
22#ifndef POCKET_WORD_H
23#define POCKET_WORD_H
24
25#include <memory>
26#include <vector>
27
28#include <librevenge-stream/librevenge-stream.h>
29#include "libwps_internal.h"
30#include "libwps_tools_win.h"
31
32#include "WPSParser.h"
33
35{
36class SubDocument;
37
38struct State;
39}
40
46{
48
49public:
54 ~PocketWordParser() override;
56 void parse(librevenge::RVNGTextInterface *documentInterface) override;
58 bool checkHeader(WPSHeader *header, bool strict=false);
59
60private:
63
65 std::shared_ptr<WPSContentListener> createListener(librevenge::RVNGTextInterface *interface);
66
67protected:
69 bool createZones();
71 bool readFontNames(WPSEntry const &entry);
73 bool readPageDims(WPSEntry const &entry);
75 bool readParagraphList(WPSEntry const &entry, std::vector<int> &paraId);
77 bool readParagraphDims(WPSEntry const &entry);
79 bool readParagraphUnkn(WPSEntry const &entry);
81 bool readSound(WPSEntry const &entry, WPSEmbeddedObject &object);
83 bool readSoundData(WPSEntry const &entry, long pictSize, WPSEmbeddedObject &object);
85 bool readUnkn8(WPSEntry const &entry);
87 bool readUnkn2021(WPSEntry const &entry, int type);
89 bool checkFilePosition(long pos) const;
91 void checkUnparsed();
92
94 void sendData();
96 bool sendParagraph(size_t paraId);
97
98 // State
99
101 std::shared_ptr<WPSContentListener> m_listener;
103 std::shared_ptr<PocketWordParserInternal::State> m_state;
104};
105
106#endif /* POCKET_WORD_H */
107/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
void checkUnparsed()
try to parse the unparsed zones
Definition PocketWord.cpp:278
bool readPageDims(WPSEntry const &entry)
try to read the page dimension
Definition PocketWord.cpp:445
bool readUnkn8(WPSEntry const &entry)
try to read the unknown zone 8: one by file, maybe prefs
Definition PocketWord.cpp:1165
~PocketWordParser() override
destructor
Definition PocketWord.cpp:132
bool readParagraphList(WPSEntry const &entry, std::vector< int > &paraId)
try to read a paragraph list
Definition PocketWord.cpp:966
PocketWordParser(const PocketWordParser &)=delete
bool readSound(WPSEntry const &entry, WPSEmbeddedObject &object)
try to read a sound definition (maybe a picture)
Definition PocketWord.cpp:1016
void sendData()
try to send all the data
Definition PocketWord.cpp:1298
std::shared_ptr< PocketWordParserInternal::State > m_state
the main state
Definition PocketWord.h:103
bool sendParagraph(size_t paraId)
try to read and send a paragraph
Definition PocketWord.cpp:544
void parse(librevenge::RVNGTextInterface *documentInterface) override
called by WPSDocument to parse the file
Definition PocketWord.cpp:181
std::shared_ptr< WPSContentListener > m_listener
the listener (if set)
Definition PocketWord.h:101
std::shared_ptr< WPSContentListener > createListener(librevenge::RVNGTextInterface *interface)
creates the main listener
Definition PocketWord.cpp:150
bool readParagraphDims(WPSEntry const &entry)
try to read a paragraph dimensions' zone which follows the paragraph zone
Definition PocketWord.cpp:866
friend class PocketWordParserInternal::SubDocument
Definition PocketWord.h:47
bool createZones()
try to read the different zones
Definition PocketWord.cpp:221
bool readFontNames(WPSEntry const &entry)
try to read the font names
Definition PocketWord.cpp:356
bool readUnkn2021(WPSEntry const &entry, int type)
try to read the unknown zone 20 and 21: one by file, find always no data, maybe style
Definition PocketWord.cpp:1207
PocketWordParser & operator=(const PocketWordParser &)=delete
bool readParagraphUnkn(WPSEntry const &entry)
try to read a paragraph unknown zone: tabs, link?
Definition PocketWord.cpp:909
PocketWordParser(RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::UNKNOWN)
constructor
Definition PocketWord.cpp:124
bool checkFilePosition(long pos) const
check if the file position is correct or not
Definition PocketWord.cpp:136
bool readSoundData(WPSEntry const &entry, long pictSize, WPSEmbeddedObject &object)
try to read a sound data (maybe a picture)
Definition PocketWord.cpp:1124
bool checkHeader(WPSHeader *header, bool strict=false)
checks if the document header is correct (or not)
Definition PocketWord.cpp:1246
basic class to store an entry in a file This contained :
Definition WPSEntry.h:39
Definition WPSHeader.h:32
WPSParser(RVNGInputStreamPtr &input, WPSHeaderPtr &header)
Definition WPSParser.cpp:30
Type
enum Type
Definition libwps_tools_win.h:46
@ UNKNOWN
Definition libwps_tools_win.h:63
std::shared_ptr< WPSHeader > WPSHeaderPtr
shared pointer to WPSHeader
Definition libwps_internal.h:109
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr
shared pointer to librevenge::RVNGInputStream
Definition libwps_internal.h:87
Definition PocketWord.cpp:47
the state of PocketWord
Definition PocketWord.cpp:51
small class use to define a embedded object
Definition libwps_internal.h:1077

Generated on Sat Jul 19 2025 05:24:39 for libwps by doxygen 1.14.0