10 #ifndef __MSPUBCOLLECTOR_H__
11 #define __MSPUBCOLLECTOR_H__
20 #include <boost/ptr_container/ptr_vector.hpp>
21 #include <boost/bind.hpp>
22 #include <boost/function.hpp>
24 #include <librevenge/librevenge.h>
25 #include <librevenge/librevenge.h>
61 bool addTextString(
const std::vector<TextParagraph> &str,
unsigned id);
63 bool addImage(
unsigned index,
ImgType type, librevenge::RVNGBinaryData img);
79 void setShapeFill(
unsigned seqNum, boost::shared_ptr<Fill> fill,
bool skipIfNotBg);
84 void setShapeMargins(
unsigned seqNum,
unsigned left,
unsigned top,
unsigned right,
unsigned bottom);
89 void setShapeClipPath(
unsigned seqNum,
const std::vector<libmspub::Vertex> &clip);
92 void setMasterPage(
unsigned pageSeqNum,
unsigned masterSeqNum);
98 librevenge::RVNGBinaryData &
addEOTFont(
const librevenge::RVNGString &name);
115 void addFont(std::vector<unsigned char> name);
129 bool hasPage(
unsigned seqNum)
const;
148 std::vector<std::pair<ImgType, librevenge::RVNGBinaryData> >
m_images;
151 std::vector<std::vector<unsigned char> >
m_fonts;
183 void writePage(
unsigned pageSeqNum)
const;
186 void writeImage(
double x,
double y,
double height,
double width,
187 ImgType type,
const librevenge::RVNGBinaryData &blob,
188 boost::optional<Color> oneBitColor)
const;
void setShapeClipPath(unsigned seqNum, const std::vector< libmspub::Vertex > &clip)
Definition: MSPUBCollector.cpp:299
bool addImage(unsigned index, ImgType type, librevenge::RVNGBinaryData img)
Definition: MSPUBCollector.cpp:1566
std::vector< ParagraphStyle > m_defaultParaStyles
Definition: MSPUBCollector.h:153
void addBlackToPaletteIfNecessary()
Definition: MSPUBCollector.cpp:1387
void setShapeBeginArrow(unsigned seqNum, const Arrow &arrow)
Definition: MSPUBCollector.cpp:132
void writeImage(double x, double y, double height, double width, ImgType type, const librevenge::RVNGBinaryData &blob, boost::optional< Color > oneBitColor) const
Definition: MSPUBCollector.cpp:994
std::map< unsigned, ShapeType > m_shapeTypesBySeqNum
Definition: MSPUBCollector.h:154
void setShapeBorderImageId(unsigned seqNum, unsigned borderImageId)
Definition: MSPUBCollector.cpp:288
void ponderStringEncoding(const std::vector< TextParagraph > &str)
Definition: MSPUBCollector.cpp:1539
std::map< unsigned, std::vector< TextParagraph > > m_textStringsById
Definition: MSPUBCollector.h:146
std::vector< CharacterStyle > m_defaultCharStyles
Definition: MSPUBCollector.h:152
librevenge::RVNGBinaryData & addEOTFont(const librevenge::RVNGString &name)
Definition: MSPUBCollector.cpp:108
void setBorderImageOffset(unsigned index, unsigned offset)
Definition: MSPUBCollector.cpp:1595
void setRectCoordProps(Coordinate, librevenge::RVNGPropertyList *) const
Definition: MSPUBCollector.cpp:173
Definition: TableInfo.h:15
Definition: MSPUBTypes.h:165
void setShapeShadow(unsigned seqNum, const Shadow &shadow)
Definition: MSPUBCollector.cpp:274
void setPageBgShape(unsigned pageSeqNum, unsigned seqNum)
Definition: MSPUBCollector.cpp:344
void setNextTableCellTextEnds(const std::vector< unsigned > &ends)
Definition: MSPUBCollector.cpp:263
librevenge::RVNGDrawingInterface * m_painter
Definition: MSPUBCollector.h:141
void setNextPage(unsigned seqNum)
Definition: MSPUBCollector.cpp:226
void setShapeMargins(unsigned seqNum, unsigned left, unsigned top, unsigned right, unsigned bottom)
Definition: MSPUBCollector.cpp:339
void setShapeColumnSpacing(unsigned seqNum, unsigned spacing)
Definition: MSPUBCollector.cpp:162
std::vector< BorderArtInfo > m_borderImages
Definition: MSPUBCollector.h:149
std::vector< std::vector< unsigned char > > m_fonts
Definition: MSPUBCollector.h:151
void addDefaultParagraphStyle(const ParagraphStyle &style)
Definition: MSPUBCollector.cpp:1166
Definition: MSPUBCollector.h:132
librevenge::RVNGBinaryData * addBorderImage(ImgType type, unsigned borderArtIndex)
Definition: MSPUBCollector.cpp:1584
void setAdjustValue(unsigned seqNum, unsigned index, int adjust)
Definition: MSPUBCollector.cpp:1156
void setTextStringOffset(unsigned textId, unsigned offset)
Definition: MSPUBCollector.cpp:257
Definition: PolygonUtils.h:91
void setShapeNumColumns(unsigned seqNum, unsigned numColumns)
Definition: MSPUBCollector.cpp:156
librevenge::RVNGPropertyList getParaStyleProps(const ParagraphStyle &, boost::optional< unsigned > defaultParaStyleIndex) const
Definition: MSPUBCollector.cpp:1217
ShapeGroupElement * m_currentShapeGroup
Definition: MSPUBCollector.h:160
boost::function< void(void)> paintShape(const ShapeInfo &info, const Coordinate &relativeTo, const VectorTransformation2D &foldedTransform, bool isGroup, const VectorTransformation2D &thisTransform) const
Definition: MSPUBCollector.cpp:450
void setShapeRotation(unsigned seqNum, double rotation)
Definition: MSPUBCollector.cpp:1140
std::set< unsigned > m_skipIfNotBgSeqNums
Definition: MSPUBCollector.h:159
void addTextShape(unsigned stringId, unsigned seqNum)
Definition: MSPUBCollector.cpp:1182
void setShapeFill(unsigned seqNum, boost::shared_ptr< Fill > fill, bool skipIfNotBg)
Definition: MSPUBCollector.cpp:1198
void designateMasterPage(unsigned seqNum)
Definition: MSPUBCollector.cpp:1631
bool m_heightSet
Definition: MSPUBCollector.h:144
void setShapeCropType(unsigned seqNum, ShapeType cropType)
Definition: MSPUBCollector.cpp:1641
BorderPosition
Definition: MSPUBTypes.h:24
bool hasPage(unsigned seqNum) const
Definition: MSPUBCollector.cpp:334
Definition: ColorReference.h:17
bool pageIsMaster(unsigned pageSeqNum) const
Definition: MSPUBCollector.cpp:1490
void writePage(unsigned pageSeqNum) const
Definition: MSPUBCollector.cpp:1423
void setMasterPage(unsigned pageSeqNum, unsigned masterSeqNum)
Definition: MSPUBCollector.cpp:1636
void setShapeCoordinatesRotated90(unsigned seqNum)
Definition: MSPUBCollector.cpp:283
bool m_widthSet
Definition: MSPUBCollector.h:144
bool setCurrentGroupSeqNum(unsigned seqNum)
Definition: MSPUBCollector.cpp:349
void setShapeCustomPath(unsigned seqNum, const DynamicCustomShape &shape)
Definition: MSPUBCollector.cpp:293
bool m_encodingHeuristic
Definition: MSPUBCollector.h:172
void useEncodingHeuristic()
Definition: MSPUBCollector.cpp:269
void setShapeStretchBorderArt(unsigned seqNum)
Definition: MSPUBCollector.cpp:168
double getSpecialValue(const ShapeInfo &info, const CustomShape &shape, int arg, const std::vector< int > &adjustValues) const
Definition: MSPUBCollector.cpp:1016
std::list< EmbeddedFontInfo > m_embeddedFonts
Definition: MSPUBCollector.h:163
virtual ~MSPUBCollector()
Definition: MSPUBCollector.cpp:1136
void setShapeEndArrow(unsigned seqNum, const Arrow &arrow)
Definition: MSPUBCollector.cpp:144
void addDefaultCharacterStyle(const CharacterStyle &style)
Definition: MSPUBCollector.cpp:1161
librevenge::RVNGPropertyList getCharStyleProps(const CharacterStyle &, boost::optional< unsigned > defaultCharStyleIndex) const
Definition: MSPUBCollector.cpp:1300
Definition: Coordinate.h:15
bool addTextString(const std::vector< TextParagraph > &str, unsigned id)
Definition: MSPUBCollector.cpp:1528
boost::ptr_vector< ShapeGroupElement > m_topLevelShapes
Definition: MSPUBCollector.h:161
std::map< unsigned, unsigned > m_pageSeqNumsByShapeSeqNum
Definition: MSPUBCollector.h:157
bool addPage(unsigned seqNum)
Definition: MSPUBCollector.cpp:1171
void addTextColor(ColorReference c)
Definition: MSPUBCollector.cpp:1626
static librevenge::RVNGString getColorString(const Color &)
Definition: MSPUBCollector.cpp:1379
std::set< unsigned > m_masterPages
Definition: MSPUBCollector.h:165
std::vector< ShapeGroupElement * > m_shapeGroupsOrdered
Definition: MSPUBCollector.h:134
std::map< unsigned, unsigned > m_bgShapeSeqNumsByPageSeqNum
Definition: MSPUBCollector.h:158
std::set< unsigned > m_shapesWithCoordinatesRotated90
Definition: MSPUBCollector.h:166
double getCalculationValue(const ShapeInfo &info, unsigned index, bool recursiveEntry, const std::vector< int > &adjustValues) const
Definition: MSPUBCollector.cpp:1056
ImgType
Definition: MSPUBTypes.h:179
unsigned short m_numPages
Definition: MSPUBCollector.h:145
void setShapeImgIndex(unsigned seqNum, unsigned index)
Definition: MSPUBCollector.cpp:1187
std::list< ContentChunkReference > m_contentChunkReferences
Definition: MSPUBCollector.h:142
void addFont(std::vector< unsigned char > name)
Definition: MSPUBCollector.cpp:1212
void setShapePictureBrightness(unsigned seqNum, int brightness)
Definition: MSPUBCollector.cpp:120
void setShapePictureContrast(unsigned seqNum, int contrast)
Definition: MSPUBCollector.cpp:126
void assignShapesToPages()
Definition: MSPUBCollector.cpp:1395
bool go()
Definition: MSPUBCollector.cpp:1495
std::map< unsigned, ShapeGroupElement * > m_groupsBySeqNum
Definition: MSPUBCollector.h:162
MSPUBCollector(::librevenge::RVNGDrawingInterface *painter)
MSPUBCollector & operator=(const MSPUBCollector &)
boost::optional< unsigned > getMasterPageSeqNum(unsigned pageSeqNum) const
Definition: MSPUBCollector.cpp:1412
std::vector< bool > m_calculationValuesSeen
Definition: MSPUBCollector.h:170
std::vector< int > getShapeAdjustValues(const ShapeInfo &info) const
Definition: MSPUBCollector.cpp:383
Definition: MSPUBTypes.h:129
void setShapeCoordinatesInEmu(unsigned seqNum, int xs, int ys, int xe, int ye)
Definition: MSPUBCollector.cpp:1207
PageInfo()
Definition: MSPUBCollector.h:135
double m_width
Definition: MSPUBCollector.h:143
std::map< unsigned, unsigned > m_masterPagesByPageSeqNum
Definition: MSPUBCollector.h:167
void setShapeBorderPosition(unsigned seqNum, BorderPosition pos)
Definition: MSPUBCollector.cpp:329
void writePageBackground(unsigned pageSeqNum) const
Definition: MSPUBCollector.cpp:1466
Definition: PolygonUtils.h:58
void beginGroup()
Definition: MSPUBCollector.cpp:304
std::vector< unsigned > m_shapeSeqNumsOrdered
Definition: MSPUBCollector.h:156
void setShapePage(unsigned seqNum, unsigned pageSeqNum)
Definition: MSPUBCollector.cpp:1620
boost::optional< const char * > m_calculatedEncoding
Definition: MSPUBCollector.h:174
const char * getCalculatedEncoding() const
Definition: MSPUBCollector.cpp:926
void setShapeDash(unsigned seqNum, const Dash &dash)
Definition: MSPUBCollector.cpp:1193
void setShapeTableInfo(unsigned seqNum, const TableInfo &ti)
Definition: MSPUBCollector.cpp:150
void writePageShapes(unsigned pageSeqNum) const
Definition: MSPUBCollector.cpp:1455
void addShapeLine(unsigned seqNum, Line line)
Definition: MSPUBCollector.cpp:324
void setShapeOrder(unsigned seqNum)
Definition: MSPUBCollector.cpp:360
std::map< unsigned, unsigned > m_stringOffsetsByTextId
Definition: MSPUBCollector.h:169
std::vector< unsigned char > m_allText
Definition: MSPUBCollector.h:173
Definition: MSPUBTypes.h:88
std::vector< std::pair< ImgType, librevenge::RVNGBinaryData > > m_images
Definition: MSPUBCollector.h:148
std::list< ContentChunkReference >::const_iterator ccr_iterator_t
Definition: MSPUBCollector.h:54
void addPaletteColor(Color)
Definition: MSPUBCollector.cpp:369
void setShapePictureRecolor(unsigned seqNum, const ColorReference &recolor)
Definition: MSPUBCollector.cpp:114
void setupShapeStructures(ShapeGroupElement &elt)
Definition: MSPUBCollector.cpp:422
Definition: MSPUBCollector.h:46
void setShapeType(unsigned seqNum, ShapeType type)
Definition: MSPUBCollector.cpp:1151
void setShapeVerticalTextAlign(unsigned seqNum, VerticalAlign va)
Definition: MSPUBCollector.cpp:138
double m_height
Definition: MSPUBCollector.h:143
std::map< unsigned, PageInfo > m_pagesBySeqNum
Definition: MSPUBCollector.h:147
std::vector< ColorReference > m_textColors
Definition: MSPUBCollector.h:150
VerticalAlign
Definition: VerticalAlign.h:15
Definition: ShapeGroupElement.h:21
std::map< unsigned, ShapeInfo > m_shapeInfosBySeqNum
Definition: MSPUBCollector.h:164
std::vector< std::vector< unsigned > > m_tableCellTextEndsVector
Definition: MSPUBCollector.h:168
void setWidthInEmu(unsigned long)
Definition: MSPUBCollector.cpp:1552
ShapeType
Definition: ShapeType.h:15
boost::optional< std::vector< libmspub::TextParagraph > > getShapeText(const ShapeInfo &info) const
Definition: MSPUBCollector.cpp:408
Definition: ShapeInfo.h:34
void setHeightInEmu(unsigned long)
Definition: MSPUBCollector.cpp:1559
bool endGroup()
Definition: MSPUBCollector.cpp:314
std::vector< Color > m_paletteColors
Definition: MSPUBCollector.h:155
void setShapeFlip(unsigned, bool, bool)
Definition: MSPUBCollector.cpp:1146
void setShapeLineBackColor(unsigned seqNum, ColorReference backColor)
Definition: MSPUBCollector.cpp:988
std::vector< unsigned > m_pageSeqNumsOrdered
Definition: MSPUBCollector.h:171