You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
(31) |
Jul
(37) |
Aug
(20) |
Sep
(20) |
Oct
(16) |
Nov
(10) |
Dec
(16) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(11) |
May
(136) |
Jun
(61) |
Jul
(42) |
Aug
(21) |
Sep
(25) |
Oct
(43) |
Nov
(5) |
Dec
(24) |
2008 |
Jan
|
Feb
|
Mar
(2) |
Apr
(11) |
May
|
Jun
|
Jul
(51) |
Aug
(6) |
Sep
|
Oct
|
Nov
(21) |
Dec
(35) |
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(10) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(35) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
From: Fridrich S. <str...@us...> - 2010-11-17 11:45:48
|
Update of /cvsroot/libwpg/libwpg-www In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv29393 Added Files: sync-me.sh.deprecated Removed Files: sync-me.sh Log Message: deprecate sync-me.sh --- NEW FILE: sync-me.sh.deprecated --- #!/bin/bash [ -z $1 ] || UNAME=$1 scp ./*html ./*htm ./*txt $UN...@li...:/home/groups/l/li/libwpg/htdocs scp ./images/*jpg ./images/*png ./images/*gif ./images/*css $UN...@li...:/home/groups/l/li/libwpg/htdocs/images ssh $UN...@li... chmod g+w /home/groups/l/li/libwpg/htdocs/* ssh $UN...@li... chmod g+x /home/groups/l/li/libwpg/htdocs/* ssh $UN...@li... chmod g+w /home/groups/l/li/libwpg/htdocs/images/* ssh $UN...@li... chmod g+x /home/groups/l/li/libwpg/htdocs/images/* --- sync-me.sh DELETED --- |
From: Fridrich S. <str...@us...> - 2010-11-06 17:45:40
|
Update of /cvsroot/libwpg/perfectspot/src/odg In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv31581/src/odg Modified Files: OdgExporter.hxx Log Message: Remove an obsolete type Index: OdgExporter.hxx =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/odg/OdgExporter.hxx,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- OdgExporter.hxx 17 Jun 2010 10:33:55 -0000 1.9 +++ OdgExporter.hxx 6 Nov 2010 17:45:32 -0000 1.10 @@ -80,7 +80,6 @@ FileOutputHandler *mpHandler; ::WPXPropertyList mxStyle; - libwpg::WPGDashArray mxDashArray; ::WPXPropertyListVector mxGradient; int miGradientIndex; int miDashIndex; |
From: Fridrich S. <str...@us...> - 2010-06-22 12:02:20
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv28812/src/lib Modified Files: WPGXParser.h Log Message: Adapt to libwpd changes Index: WPGXParser.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGXParser.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- WPGXParser.h 10 Jun 2010 18:48:07 -0000 1.20 +++ WPGXParser.h 22 Jun 2010 12:02:12 -0000 1.21 @@ -105,6 +105,7 @@ void insertTab(); void insertText(const WPXString &text); void insertLineBreak(); + void insertField(const WPXPropertyList &propList) {} void defineOrderedListLevel(const WPXPropertyList &propList) {} void defineUnorderedListLevel(const WPXPropertyList &propList) {} |
From: Fridrich S. <str...@us...> - 2010-06-21 21:07:33
|
Update of /cvsroot/libwpg/perfectspot/src/odg In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv22309/src/odg Modified Files: OdgExporter.cxx Log Message: fix a warning Index: OdgExporter.cxx =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/odg/OdgExporter.cxx,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- OdgExporter.cxx 17 Jun 2010 10:33:55 -0000 1.13 +++ OdgExporter.cxx 21 Jun 2010 21:07:25 -0000 1.14 @@ -649,6 +649,7 @@ } if(mxStyle["draw:fill"] && mxStyle["draw:fill"]->getStr() == "gradient") + { if (mxGradient.count() >= 2) { pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "gradient"); @@ -657,6 +658,7 @@ } else pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "none"); + } mGraphicsAutomaticStyles.push_back(pStyleGraphicsPropertiesElement); mGraphicsAutomaticStyles.push_back(new TagCloseElement("style:graphic-properties")); |
From: Fridrich S. <str...@us...> - 2010-06-17 11:18:22
|
Update of /cvsroot/libwpg/perfectspot/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv16896/src Modified Files: renderer.cpp Log Message: Some more improvements of writerperfect Index: renderer.cpp =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/renderer.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- renderer.cpp 17 Jun 2010 10:51:00 -0000 1.22 +++ renderer.cpp 17 Jun 2010 11:18:13 -0000 1.23 @@ -63,23 +63,23 @@ d->stream = new ::WPXStringStream(data, size); if (d->stream && d->stream->isOLEStream()) { - WPXInputStream *tempStream = d->stream->getDocumentOLEStream("PerfectOffice_MAIN"); - if (tempStream) - { - delete d->stream; - d->stream = tempStream; - } - } - - // to know the default WPG size - QImage buffer(500, 500, QImage::Format_ARGB32); - QPainter bufp(&buffer); + WPXInputStream *tempStream = d->stream->getDocumentOLEStream("PerfectOffice_MAIN"); + if (tempStream) + { + delete d->stream; + d->stream = tempStream; + } + } - WPXString generatedSVG; - WPGraphics::generateSVG(d->stream, generatedSVG); - d->content = generatedSVG.cstr(); - QSvgRenderer tmpRenderer(d->content, parent); - d->defaultSize = tmpRenderer.defaultSize(); + if (d->stream) + { + // to know the default WPG size + WPXString generatedSVG; + WPGraphics::generateSVG(d->stream, generatedSVG); + d->content = generatedSVG.cstr(); + QSvgRenderer tmpRenderer(d->content, parent); + d->defaultSize = tmpRenderer.defaultSize(); + } } } @@ -93,8 +93,8 @@ { if(d->stream) { - QSvgRenderer tmpRenderer(d->content, this); - tmpRenderer.render(target); + QSvgRenderer tmpRenderer(d->content, this); + tmpRenderer.render(target); } } @@ -115,12 +115,12 @@ { const char* mimetype = "application/vnd.oasis.opendocument.graphics"; const char* manifest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" - "<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\">" - " <manifest:file-entry manifest:media-type=\"application/vnd.oasis.opendocument.graphics\" manifest:version=\"1.0\" manifest:full-path=\"/\"/>" - " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"content.xml\"/>" - " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"settings.xml\"/>" - " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"styles.xml\"/>" - "</manifest:manifest>"; + "<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\">" + " <manifest:file-entry manifest:media-type=\"application/vnd.oasis.opendocument.graphics\" manifest:version=\"1.0\" manifest:full-path=\"/\"/>" + " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"content.xml\"/>" + " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"settings.xml\"/>" + " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"styles.xml\"/>" + "</manifest:manifest>"; FemtoZip zip(outputFile.toLocal8Bit().constData()); zip.createEntry("mimetype", 0); |
From: Fridrich S. <str...@us...> - 2010-06-17 10:51:08
|
Update of /cvsroot/libwpg/perfectspot/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv13947 Modified Files: canvas.cpp renderer.cpp renderer.h Log Message: Rename the renderSVG and renderODG functions, so that their name does not mislead Index: renderer.cpp =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/renderer.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- renderer.cpp 17 Jun 2010 10:47:10 -0000 1.21 +++ renderer.cpp 17 Jun 2010 10:51:00 -0000 1.22 @@ -98,7 +98,7 @@ } } -bool Renderer::renderSVG(const QString& outputFile) +bool Renderer::writeSVG(const QString& outputFile) { QFile file(outputFile); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) @@ -111,7 +111,7 @@ return true; } -bool Renderer::renderODG(const QString& outputFile) +bool Renderer::writeODG(const QString& outputFile) { const char* mimetype = "application/vnd.oasis.opendocument.graphics"; const char* manifest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" Index: renderer.h =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/renderer.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- renderer.h 17 May 2007 14:56:35 -0000 1.3 +++ renderer.h 17 Jun 2010 10:51:00 -0000 1.4 @@ -43,9 +43,9 @@ void render(QPainter* target); - bool renderSVG(const QString& outputFile); + bool writeSVG(const QString& outputFile); - bool renderODG(const QString& outputFile); + bool writeODG(const QString& outputFile); QSize defaultSize() const; Index: canvas.cpp =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/canvas.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- canvas.cpp 17 Jun 2010 10:33:55 -0000 1.25 +++ canvas.cpp 17 Jun 2010 10:51:00 -0000 1.26 @@ -313,10 +313,10 @@ return false; else if(file.toLower().endsWith(".svg")) - return renderer->renderSVG(file); + return renderer->writeSVG(file); else if(file.toLower().endsWith(".odg")) - return renderer->renderODG(file); + return renderer->writeODG(file); else if(file.toLower().endsWith(".pdf")) { |
From: Fridrich S. <str...@us...> - 2010-06-17 10:47:18
|
Update of /cvsroot/libwpg/perfectspot/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv13637/src Modified Files: renderer.cpp Log Message: Keep the SVG in the class instead of generating it all the time Index: renderer.cpp =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/renderer.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- renderer.cpp 17 Jun 2010 10:33:55 -0000 1.20 +++ renderer.cpp 17 Jun 2010 10:47:10 -0000 1.21 @@ -45,6 +45,7 @@ public: QSize defaultSize; WPXInputStream* stream; + QByteArray content; }; Renderer::Renderer(const QString &fileName, QObject *parent): QObject(parent) @@ -76,8 +77,8 @@ WPXString generatedSVG; WPGraphics::generateSVG(d->stream, generatedSVG); - QByteArray tempSVG(generatedSVG.cstr()); - QSvgRenderer tmpRenderer(tempSVG, parent); + d->content = generatedSVG.cstr(); + QSvgRenderer tmpRenderer(d->content, parent); d->defaultSize = tmpRenderer.defaultSize(); } } @@ -92,27 +93,19 @@ { if(d->stream) { - WPXString generatedSVG; - WPGraphics::generateSVG(d->stream, generatedSVG); - QByteArray tempSVG(generatedSVG.cstr()); - - QSvgRenderer tmpRenderer(tempSVG, this); + QSvgRenderer tmpRenderer(d->content, this); tmpRenderer.render(target); } } bool Renderer::renderSVG(const QString& outputFile) { - ::WPXString output; - if (!libwpg::WPGraphics::generateSVG(d->stream, output)) - return false; - QFile file(outputFile); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) return false; QTextStream out(&file); - out << output.cstr(); + out << d->content.data(); file.close(); return true; |
From: Fridrich S. <str...@us...> - 2010-06-17 10:34:04
|
Update of /cvsroot/libwpg/perfectspot/src/odg In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv11964/src/odg Modified Files: OdgExporter.cxx OdgExporter.hxx Log Message: Adapting perfectspot to recent libwpg and using svg instead of the custom renderer Index: OdgExporter.cxx =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/odg/OdgExporter.cxx,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- OdgExporter.cxx 7 Sep 2009 15:16:52 -0000 1.12 +++ OdgExporter.cxx 17 Jun 2010 10:33:55 -0000 1.13 @@ -35,14 +35,14 @@ #define M_PI 3.14159265358979323846 #endif -OdgExporter::OdgExporter(FileOutputHandler *pHandler, const bool isFlatXML): +OdgExporter::OdgExporter(FileOutputHandler *pHandler, const OdfStreamType streamType): mpHandler(pHandler), miGradientIndex(1), miDashIndex(1), miGraphicsStyleIndex(1), mfWidth(0.0), mfHeight(0.0), - mbIsFlatXML(isFlatXML) + mxStreamType(streamType) { } @@ -82,8 +82,19 @@ mfWidth = 0.0; mfHeight = 0.0; + if (propList["svg:width"]) + mfWidth = propList["svg:width"]->getDouble(); + + if (propList["svg:height"]) + mfHeight = propList["svg:height"]->getDouble(); + mpHandler->startDocument(); - TagOpenElement tmpOfficeDocumentContent("office:document"); + TagOpenElement tmpOfficeDocumentContent( + (mxStreamType == ODF_FLAT_XML) ? "office:document" : ( + (mxStreamType == ODF_CONTENT_XML) ? "office:document-content" : ( + (mxStreamType == ODF_STYLES_XML) ? "office:document-styles" : ( + (mxStreamType == ODF_SETTINGS_XML) ? "office:document-settings" : ( + (mxStreamType == ODF_META_XML) ? "office:document-meta" : "office:document" ))))); tmpOfficeDocumentContent.addAttribute("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0"); @@ -94,155 +105,181 @@ tmpOfficeDocumentContent.addAttribute("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:ooo", "http://openoffice.org/2004/office"); tmpOfficeDocumentContent.addAttribute("office:version", "1.0"); - if (mbIsFlatXML) + if (mxStreamType == ODF_FLAT_XML) tmpOfficeDocumentContent.addAttribute("office:mimetype", "application/vnd.oasis.opendocument.graphics"); tmpOfficeDocumentContent.write(mpHandler); - TagOpenElement("office:settings").write(mpHandler); + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_SETTINGS_XML)) + { + TagOpenElement("office:settings").write(mpHandler); - TagOpenElement configItemSetOpenElement("config:config-item-set"); - configItemSetOpenElement.addAttribute("config:name", "ooo:view-settings"); - configItemSetOpenElement.write(mpHandler); + TagOpenElement configItemSetOpenElement("config:config-item-set"); + configItemSetOpenElement.addAttribute("config:name", "ooo:view-settings"); + configItemSetOpenElement.write(mpHandler); - TagOpenElement configItemOpenElement("config:config-item"); + TagOpenElement configItemOpenElement("config:config-item"); - configItemOpenElement.addAttribute("config:name", "VisibleAreaTop"); - configItemOpenElement.addAttribute("config:type", "int"); - configItemOpenElement.write(mpHandler); - mpHandler->characters("0"); - mpHandler->endElement("config:config-item"); + configItemOpenElement.addAttribute("config:name", "VisibleAreaTop"); + configItemOpenElement.addAttribute("config:type", "int"); + configItemOpenElement.write(mpHandler); + mpHandler->characters("0"); + mpHandler->endElement("config:config-item"); - configItemOpenElement.addAttribute("config:name", "VisibleAreaLeft"); - configItemOpenElement.addAttribute("config:type", "int"); - configItemOpenElement.write(mpHandler); - mpHandler->characters("0"); - mpHandler->endElement("config:config-item"); + configItemOpenElement.addAttribute("config:name", "VisibleAreaLeft"); + configItemOpenElement.addAttribute("config:type", "int"); + configItemOpenElement.write(mpHandler); + mpHandler->characters("0"); + mpHandler->endElement("config:config-item"); - configItemOpenElement.addAttribute("config:name", "VisibleAreaWidth"); - configItemOpenElement.addAttribute("config:type", "int"); - configItemOpenElement.write(mpHandler); - if (propList["svg:width"]) - mfWidth = propList["svg:width"]->getDouble(); - WPXString sWidth; sWidth.sprintf("%li", (unsigned long)(2540 * mfWidth)); - mpHandler->characters(sWidth); - mpHandler->endElement("config:config-item"); + configItemOpenElement.addAttribute("config:name", "VisibleAreaWidth"); + configItemOpenElement.addAttribute("config:type", "int"); + configItemOpenElement.write(mpHandler); + WPXString sWidth; sWidth.sprintf("%li", (unsigned long)(2540 * mfWidth)); + mpHandler->characters(sWidth); + mpHandler->endElement("config:config-item"); - configItemOpenElement.addAttribute("config:name", "VisibleAreaHeight"); - configItemOpenElement.addAttribute("config:type", "int"); - configItemOpenElement.write(mpHandler); - if (propList["svg:height"]) - mfHeight = propList["svg:height"]->getDouble(); - WPXString sHeight; sHeight.sprintf("%li", (unsigned long)(2540 * mfHeight)); - mpHandler->characters(sHeight); - mpHandler->endElement("config:config-item"); + configItemOpenElement.addAttribute("config:name", "VisibleAreaHeight"); + configItemOpenElement.addAttribute("config:type", "int"); + configItemOpenElement.write(mpHandler); + WPXString sHeight; sHeight.sprintf("%li", (unsigned long)(2540 * mfHeight)); + mpHandler->characters(sHeight); + mpHandler->endElement("config:config-item"); - mpHandler->endElement("config:config-item-set"); + mpHandler->endElement("config:config-item-set"); - mpHandler->endElement("office:settings"); + mpHandler->endElement("office:settings"); + } } void OdgExporter::endGraphics() { - TagOpenElement("office:styles").write(mpHandler); - - for (std::vector<GraphicsElement *>::const_iterator iterGraphicsStrokeDashStyles = mGraphicsStrokeDashStyles.begin(); - iterGraphicsStrokeDashStyles != mGraphicsStrokeDashStyles.end(); iterGraphicsStrokeDashStyles++) + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_STYLES_XML)) { - (*iterGraphicsStrokeDashStyles)->write(mpHandler); + TagOpenElement("office:styles").write(mpHandler); + + for (std::vector<GraphicsElement *>::const_iterator iterGraphicsStrokeDashStyles = mGraphicsStrokeDashStyles.begin(); + iterGraphicsStrokeDashStyles != mGraphicsStrokeDashStyles.end(); iterGraphicsStrokeDashStyles++) + { + (*iterGraphicsStrokeDashStyles)->write(mpHandler); + } + + for (std::vector<GraphicsElement *>::const_iterator iterGraphicsGradientStyles = mGraphicsGradientStyles.begin(); + iterGraphicsGradientStyles != mGraphicsGradientStyles.end(); iterGraphicsGradientStyles++) + { + (*iterGraphicsGradientStyles)->write(mpHandler); + } + + mpHandler->endElement("office:styles"); } - for (std::vector<GraphicsElement *>::const_iterator iterGraphicsGradientStyles = mGraphicsGradientStyles.begin(); - iterGraphicsGradientStyles != mGraphicsGradientStyles.end(); iterGraphicsGradientStyles++) + + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_CONTENT_XML) || (mxStreamType == ODF_STYLES_XML)) { - (*iterGraphicsGradientStyles)->write(mpHandler); + TagOpenElement("office:automatic-styles").write(mpHandler); } - - mpHandler->endElement("office:styles"); - - TagOpenElement("office:automatic-styles").write(mpHandler); - // writing out the graphics automatic styles - for (std::vector<GraphicsElement *>::iterator iterGraphicsAutomaticStyles = mGraphicsAutomaticStyles.begin(); - iterGraphicsAutomaticStyles != mGraphicsAutomaticStyles.end(); iterGraphicsAutomaticStyles++) + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_CONTENT_XML)) { - (*iterGraphicsAutomaticStyles)->write(mpHandler); + // writing out the graphics automatic styles + for (std::vector<GraphicsElement *>::iterator iterGraphicsAutomaticStyles = mGraphicsAutomaticStyles.begin(); + iterGraphicsAutomaticStyles != mGraphicsAutomaticStyles.end(); iterGraphicsAutomaticStyles++) + { + (*iterGraphicsAutomaticStyles)->write(mpHandler); + } } - TagOpenElement tmpStylePageLayoutOpenElement("style:page-layout"); - tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0"); - tmpStylePageLayoutOpenElement.write(mpHandler); + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_STYLES_XML)) + { + TagOpenElement tmpStylePageLayoutOpenElement("style:page-layout"); + tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0"); + tmpStylePageLayoutOpenElement.write(mpHandler); - TagOpenElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0in"); - WPXString sValue; - sValue = doubleToString(mfWidth); sValue.append("in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", sValue); - sValue = doubleToString(mfHeight); sValue.append("in"); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", sValue); - tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait"); - tmpStylePageLayoutPropertiesOpenElement.write(mpHandler); + TagOpenElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0in"); + WPXString sValue; + sValue = doubleToString(mfWidth); sValue.append("in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", sValue); + sValue = doubleToString(mfHeight); sValue.append("in"); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", sValue); + tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait"); + tmpStylePageLayoutPropertiesOpenElement.write(mpHandler); - mpHandler->endElement("style:page-layout-properties"); + mpHandler->endElement("style:page-layout-properties"); - mpHandler->endElement("style:page-layout"); + mpHandler->endElement("style:page-layout"); - TagOpenElement tmpStyleStyleOpenElement("style:style"); - tmpStyleStyleOpenElement.addAttribute("style:name", "dp1"); - tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page"); - tmpStyleStyleOpenElement.write(mpHandler); + TagOpenElement tmpStyleStyleOpenElement("style:style"); + tmpStyleStyleOpenElement.addAttribute("style:name", "dp1"); + tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page"); + tmpStyleStyleOpenElement.write(mpHandler); - TagOpenElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties"); - // tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border"); - tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none"); - tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler); + TagOpenElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties"); + // tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border"); + tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none"); + tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler); - mpHandler->endElement("style:drawing-page-properties"); + mpHandler->endElement("style:drawing-page-properties"); - mpHandler->endElement("style:style"); + mpHandler->endElement("style:style"); + } - mpHandler->endElement("office:automatic-styles"); - + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_CONTENT_XML) || (mxStreamType == ODF_STYLES_XML)) + { + mpHandler->endElement("office:automatic-styles"); + } - TagOpenElement("office:master-styles").write(mpHandler); + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_STYLES_XML)) + { + TagOpenElement("office:master-styles").write(mpHandler); - TagOpenElement tmpStyleMasterPageOpenElement("style:master-page"); - tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default"); - tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0"); - tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1"); - tmpStyleMasterPageOpenElement.write(mpHandler); + TagOpenElement tmpStyleMasterPageOpenElement("style:master-page"); + tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default"); + tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0"); + tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1"); + tmpStyleMasterPageOpenElement.write(mpHandler); - mpHandler->endElement("style:master-page"); + mpHandler->endElement("style:master-page"); - mpHandler->endElement("office:master-styles"); + mpHandler->endElement("office:master-styles"); + } + + if ((mxStreamType == ODF_FLAT_XML) || (mxStreamType == ODF_CONTENT_XML)) + { + TagOpenElement("office:body").write(mpHandler); - TagOpenElement("office:body").write(mpHandler); + TagOpenElement("office:drawing").write(mpHandler); - TagOpenElement("office:drawing").write(mpHandler); + TagOpenElement tmpDrawPageOpenElement("draw:page"); + tmpDrawPageOpenElement.addAttribute("draw:name", "page1"); + tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1"); + tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default"); + tmpDrawPageOpenElement.write(mpHandler); - TagOpenElement tmpDrawPageOpenElement("draw:page"); - tmpDrawPageOpenElement.addAttribute("draw:name", "page1"); - tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1"); - tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default"); - tmpDrawPageOpenElement.write(mpHandler); + for (std::vector<GraphicsElement *>::const_iterator bodyIter = mBodyElements.begin(); + bodyIter != mBodyElements.end(); bodyIter++) + { + (*bodyIter)->write(mpHandler); + } - for (std::vector<GraphicsElement *>::const_iterator bodyIter = mBodyElements.begin(); - bodyIter != mBodyElements.end(); bodyIter++) - { - (*bodyIter)->write(mpHandler); - } + mpHandler->endElement("draw:page"); + mpHandler->endElement("office:drawing"); + mpHandler->endElement("office:body"); + } - mpHandler->endElement("draw:page"); - mpHandler->endElement("office:drawing"); - mpHandler->endElement("office:body"); - mpHandler->endElement("office:document"); + mpHandler->endElement( + (mxStreamType == ODF_FLAT_XML) ? "office:document" : ( + (mxStreamType == ODF_CONTENT_XML) ? "office:document-content" : ( + (mxStreamType == ODF_STYLES_XML) ? "office:document-styles" : ( + (mxStreamType == ODF_SETTINGS_XML) ? "office:document-settings" : ( + (mxStreamType == ODF_META_XML) ? "office:document-meta" : "office:document" ))))); mpHandler->endDocument(); } -void OdgExporter::setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList & propList) +void OdgExporter::setStyle(const ::WPXPropertyList & propList, const ::WPXPropertyListVector& gradient) { mxStyle = propList; mxGradient = gradient; @@ -305,7 +342,7 @@ sValue.append("translate("); sValue.append(doubleToString(propList["svg:cx"]->getDouble() - propList["svg:rx"]->getDouble() - deltax)); sValue.append("in, "); sValue.append(doubleToString(propList["svg:cy"]->getDouble() - propList["svg:ry"]->getDouble() - deltay)); sValue.append("in)"); - pDrawEllipseElement->addAttribute("svg:transform", sValue); + pDrawEllipseElement->addAttribute("draw:transform", sValue); } else { @@ -404,6 +441,13 @@ qx = (qx < path[k]["svg:x2"]->getDouble()) ? path[k]["svg:x2"]->getDouble() : qx; qy = (qy < path[k]["svg:y2"]->getDouble()) ? path[k]["svg:y2"]->getDouble() : qy; } + if(path[k]["libwpg:path-action"]->getStr() == "A") + { + px = (px > path[k]["svg:x"]->getDouble()-2*path[k]["svg:rx"]->getDouble()) ? path[k]["svg:x"]->getDouble()-2*path[k]["svg:rx"]->getDouble() : px; + py = (py > path[k]["svg:y"]->getDouble()-2*path[k]["svg:ry"]->getDouble()) ? path[k]["svg:y"]->getDouble()-2*path[k]["svg:ry"]->getDouble() : py; + qx = (qx < path[k]["svg:x"]->getDouble()+2*path[k]["svg:rx"]->getDouble()) ? path[k]["svg:x"]->getDouble()+2*path[k]["svg:rx"]->getDouble() : qx; + qy = (qy < path[k]["svg:y"]->getDouble()+2*path[k]["svg:ry"]->getDouble()) ? path[k]["svg:y"]->getDouble()+2*path[k]["svg:ry"]->getDouble() : qy; + } } double vw = qx - px; double vh = qy - py; @@ -452,6 +496,13 @@ (unsigned)((path[i]["svg:y"]->getDouble()-py)*2540)); sValue.append(sElement); } + else if (path[i]["libwpg:path-action"]->getStr() == "A") + { + sElement.sprintf("A%i %i %i %i %i %i %i", (unsigned)((path[i]["svg:rx"]->getDouble())*2540), + (int)((path[i]["svg:ry"]->getDouble())*2540), (path[i]["libwpg:rotate"] ? path[i]["libwpg:rotate"]->getInt() : 0), + 0, 0, (unsigned)((path[i]["svg:x"]->getDouble()-px)*2540), (unsigned)((path[i]["svg:y"]->getDouble()-py)*2540)); + sValue.append(sElement); + } else if (path[i]["libwpg:path-action"]->getStr() == "Z" && i >= (path.count() - 1)) sValue.append(" Z"); } @@ -460,7 +511,7 @@ mBodyElements.push_back(new TagCloseElement("draw:path")); } -void OdgExporter::drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) +void OdgExporter::drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) { if (!propList["libwpg:mime-type"] && propList["libwpg:mime-type"]->getStr().len() <= 0) return; @@ -494,7 +545,8 @@ void OdgExporter::writeGraphicsStyle() { - if(!mxStyle["libwpg:stroke-solid"]->getInt() && (mxDashArray.count() >=2 ) ) +#if 0 + if(mxStyle["libwpg:stroke-solid"] && !mxStyle["libwpg:stroke-solid"]->getInt() && (mxDashArray.count() >=2 ) ) { // ODG only supports dashes with the same length of spaces inbetween // here we take the first space and assume everything else the same @@ -521,7 +573,7 @@ mGraphicsStrokeDashStyles.push_back(pDrawStrokeDashElement); mGraphicsStrokeDashStyles.push_back(new TagCloseElement("draw:stroke-dash")); } - +#endif if(mxStyle["draw:fill"] && mxStyle["draw:fill"]->getStr() == "gradient" && mxGradient.count() >= 2) { TagOpenElement *pDrawGradientElement = new TagOpenElement("draw:gradient"); @@ -572,12 +624,14 @@ if(mxStyle["libwpg:stroke-solid"] && mxStyle["libwpg:stroke-solid"]->getInt()) pStyleGraphicsPropertiesElement->addAttribute("draw:stroke", "solid"); +#if 0 else { pStyleGraphicsPropertiesElement->addAttribute("draw:stroke", "dash"); sValue.sprintf("Dash_%i", miDashIndex-1); pStyleGraphicsPropertiesElement->addAttribute("draw:stroke-dash", sValue); } +#endif } else pStyleGraphicsPropertiesElement->addAttribute("draw:stroke", "none"); @@ -595,11 +649,14 @@ } if(mxStyle["draw:fill"] && mxStyle["draw:fill"]->getStr() == "gradient") - { - pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "gradient"); - sValue.sprintf("Gradient_%i", miGradientIndex-1); - pStyleGraphicsPropertiesElement->addAttribute("draw:fill-gradient-name", sValue); - } + if (mxGradient.count() >= 2) + { + pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "gradient"); + sValue.sprintf("Gradient_%i", miGradientIndex-1); + pStyleGraphicsPropertiesElement->addAttribute("draw:fill-gradient-name", sValue); + } + else + pStyleGraphicsPropertiesElement->addAttribute("draw:fill", "none"); mGraphicsAutomaticStyles.push_back(pStyleGraphicsPropertiesElement); mGraphicsAutomaticStyles.push_back(new TagCloseElement("style:graphic-properties")); Index: OdgExporter.hxx =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/odg/OdgExporter.hxx,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- OdgExporter.hxx 7 Sep 2009 15:16:52 -0000 1.8 +++ OdgExporter.hxx 17 Jun 2010 10:33:55 -0000 1.9 @@ -34,9 +34,11 @@ #include "GraphicsElement.hxx" #include "FileOutputHandler.hxx" +enum OdfStreamType { ODF_FLAT_XML, ODF_CONTENT_XML, ODF_STYLES_XML, ODF_SETTINGS_XML, ODF_META_XML }; + class OdgExporter : public libwpg::WPGPaintInterface { public: - OdgExporter(FileOutputHandler *pHandler, const bool isFlatXML = false); + OdgExporter(FileOutputHandler *pHandler, const OdfStreamType streamType); ~OdgExporter(); void startGraphics(const ::WPXPropertyList &propList); @@ -46,14 +48,21 @@ void startEmbeddedGraphics(const ::WPXPropertyList& /*propList*/) {} void endEmbeddedGraphics() {} - void setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList &propList); + void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector& gradient); void drawRectangle(const ::WPXPropertyList &propList); void drawEllipse(const ::WPXPropertyList &propList); void drawPolyline(const ::WPXPropertyListVector& vertices); void drawPolygon(const ::WPXPropertyListVector& vertices); void drawPath(const ::WPXPropertyListVector& path); - void drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); + void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); + void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path) {} + void endTextObject() {} + void startTextLine(const ::WPXPropertyList &propList) {} + void endTextLine() {} + void startTextSpan(const ::WPXPropertyList &propList) {} + void endTextSpan() {} + void insertText(const ::WPXString &str) {} private: void writeGraphicsStyle(); @@ -79,7 +88,7 @@ double mfWidth; double mfHeight; - const bool mbIsFlatXML; + const OdfStreamType mxStreamType; }; #endif // __ODGEXPORTER_HXX__ |
From: Fridrich S. <str...@us...> - 2010-06-17 10:34:04
|
Update of /cvsroot/libwpg/perfectspot/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv11964/src Modified Files: CMakeLists.txt canvas.cpp renderer.cpp Log Message: Adapting perfectspot to recent libwpg and using svg instead of the custom renderer Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/CMakeLists.txt,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- CMakeLists.txt 5 Dec 2008 18:44:56 -0000 1.11 +++ CMakeLists.txt 17 Jun 2010 10:33:55 -0000 1.12 @@ -35,9 +35,9 @@ add_executable(perfectspot ${perfectspot_SOURCES} ${perfectspot_RESOURCES_SOURCES}) IF (NOT WIN32) -target_link_libraries(perfectspot ${QT_LIBRARIES} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS}) +target_link_libraries(perfectspot ${QT_LIBRARIES} ${QT_QTSVG_LIBRARIES} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS}) ELSE (NOT WIN32) -target_link_libraries(perfectspot ${QT_LIBRARIES} ${LIBWPG_LDFLAGS} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS} -mwindows) +target_link_libraries(perfectspot ${QT_LIBRARIES} ${LIBWPG_LDFLAGS} ${QT_QTSVG_LIBRARIES} ${LIBWPD_LDFLAGS} ${LIBWPD_STREAM_LDFLAGS} -mwindows) ENDIF (NOT WIN32) install(TARGETS ${PROGNAME} DESTINATION bin) Index: renderer.cpp =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/renderer.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- renderer.cpp 7 Sep 2009 15:16:52 -0000 1.19 +++ renderer.cpp 17 Jun 2010 10:33:55 -0000 1.20 @@ -32,6 +32,7 @@ #include <QtGui> #include <QFile> +#include <QtSvg> #include "odg/OdgExporter.hxx" #include "odg/femtozip.hxx" @@ -39,192 +40,6 @@ using namespace libwpg; -class Painter : public WPGPaintInterface -{ -public: - double width, height; - Painter(QPainter* target); - - void startGraphics(const ::WPXPropertyList &propList); - void endGraphics(); - void startLayer(const ::WPXPropertyList& propList); - void endLayer(); - void startEmbeddedGraphics(const ::WPXPropertyList& /*propList*/) {} - void endEmbeddedGraphics() {} - - void setStyle(const WPXPropertyListVector& gradient, const ::WPXPropertyList &propList); - - void drawRectangle(const ::WPXPropertyList &propList); - void drawEllipse(const ::WPXPropertyList& propList); - void drawPolyline(const ::WPXPropertyListVector& vertices); - void drawPolygon(const ::WPXPropertyListVector& vertices); - void drawPath(const ::WPXPropertyListVector& path); - void drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); - -private: - QPainter* m_target; - double m_zoomX; - double m_zoomY; -}; - -Painter::Painter(QPainter* t): m_target(t) -{ - width = 100; - height = 100; - m_zoomX = 1.0; - m_zoomY = 1.0; -} - -void Painter::startGraphics(const ::WPXPropertyList &propList) -{ - width = propList["svg:width"]->getDouble(); - height = propList["svg:height"]->getDouble(); - - m_zoomX = m_target->viewport().width() / width; - m_zoomY = m_target->viewport().height() / height; -} - -void Painter::setStyle(const WPXPropertyListVector& gradient, const ::WPXPropertyList &propList) -{ - QPen ppen(Qt::SolidLine); - - if (propList["svg:stroke-width"]) - ppen.setWidth((int)((propList["svg:stroke-width"]->getDouble()) * m_zoomX)); - if(!propList["svg:stroke-width"] || propList["svg:stroke-width"]->getDouble() == 0) - ppen.setStyle(Qt::NoPen); - - if (propList["svg:stroke-color"]) - { - QColor cPen(propList["svg:stroke-color"]->getStr().cstr()); - ppen.setColor(cPen); - } -#if 0 - if(!propList["libwpg:stroke-solid"] || !propList["libwpg:stroke-solid"]->getInt()) - { - QVector<qreal> dashes; - for(unsigned i = 0; i < dashArray.count(); i++) - dashes.append(dashArray.at(i)); - ppen.setDashPattern(dashes); - } -#endif - m_target->setPen(ppen); - - QBrush pbrush(Qt::SolidPattern); - - if (propList["draw:fill-color"]) - { - QColor cBrush(propList["draw:fill-color"]->getStr().cstr()); - pbrush.setColor(cBrush); - } - - if(propList["draw:fill"] && propList["draw:fill"]->getStr() == "none") - pbrush.setStyle(Qt::NoBrush); - - if(propList["draw:fill"] && propList["draw:fill"]->getStr() == "solid") - pbrush.setStyle(Qt::SolidPattern); - - if(propList["draw:fill"] && propList["draw:fill"]->getStr() == "gradient") - { - QLinearGradient pgradient(0, 0, 0, 1); - for(unsigned c = 0; c < gradient.count(); c++) - pgradient.setColorAt(gradient[c]["svg:stop-offset"]->getDouble(), QColor(gradient[c]["svg:stop-color"]->getStr().cstr())); -#if QT_VERSION >= 0x040300 - pgradient.setCoordinateMode(QLinearGradient::ObjectBoundingMode); -#endif - pbrush = QBrush(pgradient); -#if QT_VERSION >= 0x040300 - QMatrix matrix; - matrix.rotate(propList["draw:angle"] ? -propList["draw:angle"]->getDouble() : 0.0); - pbrush.setMatrix(matrix); -#endif - } - - m_target->setBrush(pbrush); -} - -void Painter::startLayer(const ::WPXPropertyList& /* propList */) -{ - // nothing to do -} - -void Painter::endLayer() -{ - // nothing to do -} - -void Painter::endGraphics() -{ - // nothing to do -} - -void Painter::drawRectangle(const ::WPXPropertyList &propList) -{ - m_target->drawRoundRect((int)(m_zoomX*propList["svg:x"]->getDouble()), (int)(m_zoomY*propList["svg:y"]->getDouble()), - (int)(m_zoomX*propList["svg:width"]->getDouble()), (int)(m_zoomY*propList["svg:height"]->getDouble()), - (int)(propList["svg:rx"]->getDouble() * 200 / propList["svg:width"]->getDouble()), - (int)(propList["svg:ry"]->getDouble() * 200 / propList["svg:height"]->getDouble())); -} - -void Painter::drawEllipse(const ::WPXPropertyList &propList) -{ - m_target->drawEllipse((int)(m_zoomX*(propList["svg:cx"]->getDouble() - propList["svg:rx"]->getDouble())), - (int)(m_zoomY*(propList["svg:cy"]->getDouble() - propList["svg:ry"]->getDouble())), - (int)(2*m_zoomX*propList["svg:rx"]->getDouble()), (int)(2*m_zoomY*propList["svg:ry"]->getDouble())); -} - -void Painter::drawPolygon(const ::WPXPropertyListVector& vertices) -{ - QPointF* points = new QPointF[vertices.count()]; - for(unsigned i = 0; i < vertices.count(); i++) - points[i] = QPointF(m_zoomX*vertices[i]["svg:x"]->getDouble(), m_zoomY*vertices[i]["svg:y"]->getDouble()); - - m_target->drawPolygon(points, vertices.count()); - delete [] points; -} - -void Painter::drawPolyline(const ::WPXPropertyListVector& vertices) -{ - QPointF* points = new QPointF[vertices.count()]; - for(unsigned i = 0; i < vertices.count(); i++) - points[i] = QPointF(m_zoomX*vertices[i]["svg:x"]->getDouble(), m_zoomY*vertices[i]["svg:y"]->getDouble()); - - m_target->drawPolyline(points, vertices.count()); - delete [] points; -} - -void Painter::drawPath(const ::WPXPropertyListVector& path) -{ - QPainterPath p; - for(unsigned i = 0; i < path.count(); i++) - { - if (path[i]["libwpg:path-action"]->getStr() == "M") - p.moveTo(m_zoomX*path[i]["svg:x"]->getDouble(), m_zoomY*path[i]["svg:y"]->getDouble()); - else if (path[i]["libwpg:path-action"]->getStr() == "L") - p.lineTo(m_zoomX*path[i]["svg:x"]->getDouble(), m_zoomY*path[i]["svg:y"]->getDouble()); - else if (path[i]["libwpg:path-action"]->getStr() == "C") - p.cubicTo(m_zoomX*path[i]["svg:x1"]->getDouble(), m_zoomY*path[i]["svg:y1"]->getDouble(), - m_zoomX*path[i]["svg:x2"]->getDouble(), m_zoomY*path[i]["svg:y2"]->getDouble(), - m_zoomX*path[i]["svg:x"]->getDouble(), m_zoomY*path[i]["svg:y"]->getDouble()); - else if (path[i]["libwpg:path-action"]->getStr() == "Z" && i == path.count()) - p.closeSubpath(); - } - m_target->drawPath(p); -} - - -void Painter::drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) -{ - QImage image = QImage::fromData(binaryData.getDataBuffer(), binaryData.size()); - if (image.isNull()) - return; - QRectF target; - target.setTopLeft( QPointF(m_zoomX*propList["svg:x"]->getDouble(), m_zoomY*propList["svg:y"]->getDouble()) ); - target.setBottomRight( QPointF(m_zoomX*(propList["svg:x"]->getDouble() + propList["svg:width"]->getDouble()), - m_zoomY*(propList["svg:y"]->getDouble() + propList["svg:height"]->getDouble())) ); - - m_target->drawImage(target, image); -} - class RendererPrivate { public: @@ -258,11 +73,12 @@ // to know the default WPG size QImage buffer(500, 500, QImage::Format_ARGB32); QPainter bufp(&buffer); - Painter painter(&bufp); - WPGraphics::parse(d->stream, &painter); - // and then approximate, from inch to pixel - d->defaultSize = QSize((int)(72*painter.width), (int)(72*painter.height)); + WPXString generatedSVG; + WPGraphics::generateSVG(d->stream, generatedSVG); + QByteArray tempSVG(generatedSVG.cstr()); + QSvgRenderer tmpRenderer(tempSVG, parent); + d->defaultSize = tmpRenderer.defaultSize(); } } @@ -276,8 +92,12 @@ { if(d->stream) { - Painter painter(target); - WPGraphics::parse(d->stream, &painter); + WPXString generatedSVG; + WPGraphics::generateSVG(d->stream, generatedSVG); + QByteArray tempSVG(generatedSVG.cstr()); + + QSvgRenderer tmpRenderer(tempSVG, this); + tmpRenderer.render(target); } } @@ -300,16 +120,16 @@ bool Renderer::renderODG(const QString& outputFile) { - const char* odgfile = outputFile.toLocal8Bit().constData(); const char* mimetype = "application/vnd.oasis.opendocument.graphics"; - const char* manifest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" - "<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\">" - " <manifest:file-entry manifest:media-type=\"application/vnd.oasis.opendocument.graphics\" manifest:full-path=\"/\"/>" - " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"content.xml\"/>" - " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"styles.xml\"/>" - "</manifest:manifest>"; + const char* manifest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\">" + " <manifest:file-entry manifest:media-type=\"application/vnd.oasis.opendocument.graphics\" manifest:version=\"1.0\" manifest:full-path=\"/\"/>" + " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"content.xml\"/>" + " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"settings.xml\"/>" + " <manifest:file-entry manifest:media-type=\"text/xml\" manifest:full-path=\"styles.xml\"/>" + "</manifest:manifest>"; - FemtoZip zip(odgfile); + FemtoZip zip(outputFile.toLocal8Bit().constData()); zip.createEntry("mimetype", 0); zip.writeString(mimetype); zip.closeEntry(); @@ -319,16 +139,29 @@ zip.closeEntry(); zip.createEntry("content.xml", 0); - std::ostringstream tmpStringStream; - FileOutputHandler tmpHandler(tmpStringStream); - OdgExporter exporter(&tmpHandler); - libwpg::WPGraphics::parse(d->stream, &exporter); - zip.writeString(tmpStringStream.str().c_str()); + std::ostringstream tmpContentStringStream; + FileOutputHandler tmpContentHandler(tmpContentStringStream); + OdgExporter content_exporter(&tmpContentHandler, ODF_CONTENT_XML); + libwpg::WPGraphics::parse(d->stream, &content_exporter); + zip.writeString(tmpContentStringStream.str().c_str()); zip.closeEntry(); zip.createEntry("styles.xml", 0); - zip.writeString(tmpStringStream.str().c_str()); + std::ostringstream tmpStylesStringStream; + FileOutputHandler tmpStylesHandler(tmpStylesStringStream); + OdgExporter styles_exporter(&tmpStylesHandler, ODF_STYLES_XML); + libwpg::WPGraphics::parse(d->stream, &styles_exporter); + zip.writeString(tmpStylesStringStream.str().c_str()); zip.closeEntry(); + + zip.createEntry("settings.xml", 0); + std::ostringstream tmpSettingsStringStream; + FileOutputHandler tmpSettingsHandler(tmpSettingsStringStream); + OdgExporter settings_exporter(&tmpSettingsHandler, ODF_SETTINGS_XML); + libwpg::WPGraphics::parse(d->stream, &settings_exporter); + zip.writeString(tmpSettingsStringStream.str().c_str()); + zip.closeEntry(); + return true; } Index: canvas.cpp =================================================================== RCS file: /cvsroot/libwpg/perfectspot/src/canvas.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- canvas.cpp 11 Jul 2008 22:42:47 -0000 1.24 +++ canvas.cpp 17 Jun 2010 10:33:55 -0000 1.25 @@ -324,7 +324,7 @@ printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(file); //printer.setFullPage(true); - printer.setPageSize(QPrinter::A4); + printer.setPaperSize(renderer->defaultSize(), QPrinter::Point); QPainter painter; painter.begin(&printer); |
From: Fridrich S. <str...@us...> - 2010-06-17 10:34:03
|
Update of /cvsroot/libwpg/perfectspot In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv11964 Modified Files: CMakeLists.txt Log Message: Adapting perfectspot to recent libwpg and using svg instead of the custom renderer Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/libwpg/perfectspot/CMakeLists.txt,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- CMakeLists.txt 5 Dec 2008 18:44:55 -0000 1.5 +++ CMakeLists.txt 17 Jun 2010 10:33:54 -0000 1.6 @@ -17,7 +17,7 @@ set(QT_MIN_VERSION "4.1.0") find_package(Qt4 REQUIRED) include(${QT_USE_FILE}) -include_directories( ${QT_INCLUDE_DIR} ) +include_directories( ${QT_INCLUDE_DIR} ${QT_QTSVG_INCLUDE_DIR} ) # enable warnings if(CMAKE_COMPILER_IS_GNUCXX ) |
From: Fridrich S. <str...@us...> - 2010-06-11 10:26:33
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv19490/src/lib Modified Files: WPGSVGGenerator.cpp Log Message: escape text when writing to svg Index: WPGSVGGenerator.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.cpp,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- WPGSVGGenerator.cpp 10 Jun 2010 20:47:39 -0000 1.40 +++ WPGSVGGenerator.cpp 11 Jun 2010 10:26:24 -0000 1.41 @@ -292,7 +292,8 @@ void libwpg::WPGSVGGenerator::insertText(const ::WPXString &str) { - m_outputSink << str.cstr() << "\n"; + WPXString tempUTF8(str, true); + m_outputSink << tempUTF8.cstr() << "\n"; } // create "style" attribute based on current pen and brush |
From: Fridrich S. <str...@us...> - 2010-06-10 21:28:58
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv7623 Modified Files: WPG1Parser.cpp Log Message: Don't parse here the sub-document, since nowadays the parser works Index: WPG1Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.cpp,v retrieving revision 1.66 retrieving revision 1.67 diff -u -d -r1.66 -r1.67 --- WPG1Parser.cpp 10 Jun 2010 18:48:07 -0000 1.66 +++ WPG1Parser.cpp 10 Jun 2010 21:28:50 -0000 1.67 @@ -950,8 +950,8 @@ WPG_DEBUG_MSG((" Scale factor: %d,%d\n", sx, sy)); WPG_DEBUG_MSG((" Type: %d\n", type)); - WPGTextDataHandler handler(m_painter); - WPDocument::parseSubDocument(const_cast<WPXInputStream *>(textString.getDataStream()), &handler, WPD_FILE_FORMAT_WP5); +// WPGTextDataHandler handler(m_painter); +// WPDocument::parseSubDocument(const_cast<WPXInputStream *>(textString.getDataStream()), &handler, WPD_FILE_FORMAT_WP5); } void WPG1Parser::resetPalette() |
From: Fridrich S. <str...@us...> - 2010-06-10 21:16:28
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv4876/src/lib Modified Files: WPG2Parser.cpp Log Message: Don't bother with text Path and text Block that we don't support yet Index: WPG2Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.cpp,v retrieving revision 1.111 retrieving revision 1.112 diff -u -d -r1.111 -r1.112 --- WPG2Parser.cpp 10 Jun 2010 18:48:07 -0000 1.111 +++ WPG2Parser.cpp 10 Jun 2010 21:16:20 -0000 1.112 @@ -2240,8 +2240,8 @@ { if (!m_graphicsStarted) return; -// if (!m_drawTextData) -// return; + if (!m_drawTextData) + return; ::WPXBinaryData textData; while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) |
From: Fridrich S. <str...@us...> - 2010-06-10 20:47:49
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv29477/src/lib Modified Files: WPGSVGGenerator.cpp WPGSVGGenerator.h Log Message: writing out text attributes into SVG Index: WPGSVGGenerator.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.h,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- WPGSVGGenerator.h 10 Jun 2010 18:48:07 -0000 1.24 +++ WPGSVGGenerator.h 10 Jun 2010 20:47:39 -0000 1.25 @@ -59,8 +59,8 @@ void endTextObject(); void startTextLine(const ::WPXPropertyList &propList) {} void endTextLine() {} - void startTextSpan(const ::WPXPropertyList &propList) {} - void endTextSpan() {} + void startTextSpan(const ::WPXPropertyList &propList); + void endTextSpan(); void insertText(const ::WPXString &str); private: Index: WPGSVGGenerator.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.cpp,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- WPGSVGGenerator.cpp 10 Jun 2010 18:48:07 -0000 1.39 +++ WPGSVGGenerator.cpp 10 Jun 2010 20:47:39 -0000 1.40 @@ -259,17 +259,40 @@ { m_outputSink << "<text "; if (propList["svg:x"] && propList["svg:y"]) - m_outputSink << "x=\"" << doubleToString(72*(propList["svg:x"]->getDouble())) << "\" y=\"" << doubleToString(72*(propList["svg:y"]->getDouble())) << "\" >\n"; + m_outputSink << "x=\"" << doubleToString(72*(propList["svg:x"]->getDouble())) << "\" y=\"" << doubleToString(72*(propList["svg:y"]->getDouble())) << "\">\n"; } -void libwpg::WPGSVGGenerator::insertText(const ::WPXString &str) +void libwpg::WPGSVGGenerator::endTextObject() { - m_outputSink << str.cstr() << "\n"; + m_outputSink << "</text>\n"; } -void libwpg::WPGSVGGenerator::endTextObject() +void libwpg::WPGSVGGenerator::startTextSpan(const ::WPXPropertyList &propList) { - m_outputSink << "</text >\n"; + m_outputSink << "<tspan "; + if (propList["style:font-name"]) + m_outputSink << "font-family=\"" << propList["style:font-name"]->getStr().cstr() << "\" "; + if (propList["fo:font-style"]) + m_outputSink << "font-style=\"" << propList["fo:font-style"]->getStr().cstr() << "\" "; + if (propList["fo:font-weight"]) + m_outputSink << "font-weight=\"" << propList["fo:font-weight"]->getStr().cstr() << "\" "; + if (propList["fo:font-variant"]) + m_outputSink << "font-variant=\"" << propList["fo:font-weight"]->getStr().cstr() << "\" "; + if (propList["fo:font-size"]) + m_outputSink << "font-size=\"" << propList["fo:font-size"]->getStr().cstr() << "\" "; + if (propList["fo:color"]) + m_outputSink << "fill=\"" << propList["fo:color"]->getStr().cstr() << "\" "; + m_outputSink << ">\n"; +} + +void libwpg::WPGSVGGenerator::endTextSpan() +{ + m_outputSink << "</tspan>\n"; +} + +void libwpg::WPGSVGGenerator::insertText(const ::WPXString &str) +{ + m_outputSink << str.cstr() << "\n"; } // create "style" attribute based on current pen and brush |
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv29065/src/lib Modified Files: WPG1Parser.cpp WPG2Parser.cpp WPGPaintInterface.h WPGSVGGenerator.cpp WPGSVGGenerator.h WPGXParser.cpp WPGXParser.h Log Message: Some more steps towards parsing of embedded text Index: WPG1Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.cpp,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- WPG1Parser.cpp 10 Jun 2010 14:35:51 -0000 1.65 +++ WPG1Parser.cpp 10 Jun 2010 18:48:07 -0000 1.66 @@ -912,7 +912,11 @@ propList.insert("svg:x", (double)x/1200.0); propList.insert("svg:y", (double)(y)/1200.0); - m_painter->drawTextLine(propList, textString); + m_painter->startTextObject(propList, ::WPXPropertyListVector()); + + m_painter->insertText(textString); + + m_painter->endTextObject(); } void WPG1Parser::handleGraphicsTextTypeTwo() Index: WPGXParser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGXParser.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- WPGXParser.cpp 10 Jun 2010 14:35:52 -0000 1.21 +++ WPGXParser.cpp 10 Jun 2010 18:48:07 -0000 1.22 @@ -117,109 +117,29 @@ return *this; } -void WPGTextDataHandler::setDocumentMetaData(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::setDocumentMetaData\n")); -} - -void WPGTextDataHandler::startDocument() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::startDocument\n")); -} - -void WPGTextDataHandler::endDocument() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::endDocument\n")); -} - -void WPGTextDataHandler::startSubDocument() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::startSubDocument\n")); -} - void WPGTextDataHandler::endSubDocument() { WPG_DEBUG_MSG(("WPGTextDataHandler::endSubDocument\n")); } -void WPGTextDataHandler::definePageStyle(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::definePageStyle\n")); -} - -void WPGTextDataHandler::openPageSpan(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openPageSpan\n")); -} - -void WPGTextDataHandler::closePageSpan() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closePageSpan\n")); -} - -void WPGTextDataHandler::openHeader(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openHeader\n")); -} - -void WPGTextDataHandler::closeHeader() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeHeader\n")); -} - -void WPGTextDataHandler::openFooter(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openFooter\n")); -} - -void WPGTextDataHandler::closeFooter() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeFooter\n")); -} - -void WPGTextDataHandler::defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::defineParagraphStyle\n")); -} - void WPGTextDataHandler::openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) { - WPG_DEBUG_MSG(("WPGTextDataHandler::openParagraph\n")); + m_painter->startTextLine(propList); } void WPGTextDataHandler::closeParagraph() { - WPG_DEBUG_MSG(("WPGTextDataHandler::closeParagraph\n")); -} - -void WPGTextDataHandler::defineCharacterStyle(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::defineCharacterStyle\n")); + m_painter->endTextLine(); } void WPGTextDataHandler::openSpan(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGTextDataHandler::openSpan\n")); + m_painter->startTextSpan(propList); } void WPGTextDataHandler::closeSpan() { - WPG_DEBUG_MSG(("WPGTextDataHandler::closeSpan\n")); -} - -void WPGTextDataHandler::defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::defineSectionStyle\n")); -} - -void WPGTextDataHandler::openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openSection\n")); -} - -void WPGTextDataHandler::closeSection() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeSection\n")); + m_painter->endTextSpan(); } void WPGTextDataHandler::insertTab() @@ -229,7 +149,7 @@ void WPGTextDataHandler::insertText(const WPXString &text) { - WPG_DEBUG_MSG(("WPGTextDataHandler::insertText %s\n", text.cstr())); + m_painter->insertText(text); } void WPGTextDataHandler::insertLineBreak() @@ -237,36 +157,6 @@ WPG_DEBUG_MSG(("WPGTextDataHandler::insertLineBreak\n")); } -void WPGTextDataHandler::defineOrderedListLevel(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::defineOrderedListLevel\n")); -} - -void WPGTextDataHandler::defineUnorderedListLevel(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::defineUnorderedListLevel\n")); -} - -void WPGTextDataHandler::openOrderedListLevel(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openOrderedListLevel\n")); -} - -void WPGTextDataHandler::openUnorderedListLevel(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openUnorderedListLevel\n")); -} - -void WPGTextDataHandler::closeOrderedListLevel() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeOrderedListLevel\n")); -} - -void WPGTextDataHandler::closeUnorderedListLevel() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeUnorderedListLevel\n")); -} - void WPGTextDataHandler::openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) { WPG_DEBUG_MSG(("WPGTextDataHandler::openListElement\n")); @@ -276,104 +166,3 @@ { WPG_DEBUG_MSG(("WPGTextDataHandler::closeListElement\n")); } - -void WPGTextDataHandler::openFootnote(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openFootnote\n")); -} - -void WPGTextDataHandler::closeFootnote() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeFootnote\n")); -} - -void WPGTextDataHandler::openEndnote(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openEndnote\n")); -} - -void WPGTextDataHandler::closeEndnote() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeEndnote\n")); -} - -void WPGTextDataHandler::openComment(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openComment\n")); -} - -void WPGTextDataHandler::closeComment() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeComment\n")); -} - -void WPGTextDataHandler::openTextBox(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openTextBox\n")); -} - -void WPGTextDataHandler::closeTextBox() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeTextBox\n")); -} - -void WPGTextDataHandler::openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openTable\n")); -} - -void WPGTextDataHandler::openTableRow(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openTableRow\n")); -} - -void WPGTextDataHandler::closeTableRow() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeTableRow\n")); -} - -void WPGTextDataHandler::openTableCell(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openTableCell\n")); -} - -void WPGTextDataHandler::closeTableCell() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeTableCell\n")); -} - -void WPGTextDataHandler::insertCoveredTableCell(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::insertCoveredTableCell\n")); -} - -void WPGTextDataHandler::closeTable() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeTable\n")); -} - -void WPGTextDataHandler::openFrame(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::openFrame\n")); -} - -void WPGTextDataHandler::closeFrame() -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::closeFrame\n")); -} - -void WPGTextDataHandler::insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::insertBinaryObject\n")); -} - -void WPGTextDataHandler::insertEquation(const WPXPropertyList &propList, const WPXString &data) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::insertEquation\n")); -} - -void WPGTextDataHandler::setTextDataProperties(const WPXPropertyList &propList) -{ - WPG_DEBUG_MSG(("WPGTextDataHandler::setTextDataProperties\n")); - -} Index: WPGSVGGenerator.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- WPGSVGGenerator.h 8 Jun 2010 13:47:08 -0000 1.23 +++ WPGSVGGenerator.h 10 Jun 2010 18:48:07 -0000 1.24 @@ -55,7 +55,13 @@ void drawPolygon(const ::WPXPropertyListVector &vertices); void drawPath(const ::WPXPropertyListVector &path); void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData); - void drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str); + void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path); + void endTextObject(); + void startTextLine(const ::WPXPropertyList &propList) {} + void endTextLine() {} + void startTextSpan(const ::WPXPropertyList &propList) {} + void endTextSpan() {} + void insertText(const ::WPXString &str); private: ::WPXPropertyListVector m_gradient; Index: WPGSVGGenerator.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- WPGSVGGenerator.cpp 8 Jun 2010 13:47:08 -0000 1.38 +++ WPGSVGGenerator.cpp 10 Jun 2010 18:48:07 -0000 1.39 @@ -255,12 +255,20 @@ m_outputSink << "\" />\n"; } -void libwpg::WPGSVGGenerator::drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str) +void libwpg::WPGSVGGenerator::startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path) { m_outputSink << "<text "; if (propList["svg:x"] && propList["svg:y"]) m_outputSink << "x=\"" << doubleToString(72*(propList["svg:x"]->getDouble())) << "\" y=\"" << doubleToString(72*(propList["svg:y"]->getDouble())) << "\" >\n"; +} + +void libwpg::WPGSVGGenerator::insertText(const ::WPXString &str) +{ m_outputSink << str.cstr() << "\n"; +} + +void libwpg::WPGSVGGenerator::endTextObject() +{ m_outputSink << "</text >\n"; } Index: WPGPaintInterface.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGPaintInterface.h,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- WPGPaintInterface.h 8 Jun 2010 13:47:08 -0000 1.21 +++ WPGPaintInterface.h 10 Jun 2010 18:48:07 -0000 1.22 @@ -40,6 +40,9 @@ // none of the other callback functions will be called before this function is called virtual void startGraphics(const ::WPXPropertyList &propList) = 0; + // none of the other callback functions will be called after this function is called + virtual void endGraphics() = 0; + virtual void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient) = 0; virtual void startLayer(const ::WPXPropertyList &propList) = 0; @@ -50,6 +53,7 @@ virtual void endEmbeddedGraphics() = 0; + // Different primitive shapes virtual void drawRectangle(const ::WPXPropertyList& propList) = 0; virtual void drawEllipse(const ::WPXPropertyList& propList) = 0; @@ -60,12 +64,20 @@ virtual void drawPath(const ::WPXPropertyListVector &path) = 0; + // Embedded binary/raster data virtual void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData) = 0; - virtual void drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str) = 0; - - // none of the other callback functions will be called after this function is called - virtual void endGraphics() = 0; + // Embedded text object + virtual void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path) = 0; + virtual void endTextObject() = 0; + + virtual void startTextLine(const ::WPXPropertyList &propList) = 0; + virtual void endTextLine() = 0; + + virtual void startTextSpan(const ::WPXPropertyList &propList) = 0; + virtual void endTextSpan() = 0; + + virtual void insertText(const ::WPXString &str) = 0; }; } // namespace libwpg Index: WPG2Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.cpp,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- WPG2Parser.cpp 10 Jun 2010 14:35:52 -0000 1.110 +++ WPG2Parser.cpp 10 Jun 2010 18:48:07 -0000 1.111 @@ -2211,10 +2211,10 @@ long ys1 = (y1 <= y2) ? y1 : y2; long ys2 = (y1 <= y2) ? y2 : y1; - WPG_DEBUG_MSG((" x1 : %li\n", x1)); - WPG_DEBUG_MSG((" y1 : %li\n", y1)); - WPG_DEBUG_MSG((" x2 : %li\n", x2)); - WPG_DEBUG_MSG((" y2 : %li\n", y2)); + WPG_DEBUG_MSG((" x1 : %li\n", xs1)); + WPG_DEBUG_MSG((" y1 : %li\n", ys1)); + WPG_DEBUG_MSG((" x2 : %li\n", xs2)); + WPG_DEBUG_MSG((" y2 : %li\n", ys2)); m_textData.x1 = TO_DOUBLE(xs1)/m_xres; m_textData.y1 = TO_DOUBLE(ys1)/m_yres; @@ -2240,11 +2240,28 @@ { if (!m_graphicsStarted) return; +// if (!m_drawTextData) +// return; + ::WPXBinaryData textData; while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) textData.append((char)readU8()); WPGTextDataHandler handler(m_painter); + ::WPXPropertyList propList; + + propList.insert("svg:x", (double)m_textData.x1); + propList.insert("svg:y", (double)m_textData.y1); + if (m_textData.x1 != m_textData.x2 && m_textData.y1 != m_textData.y2) + { + propList.insert("svg:width", (m_textData.x2 - m_textData.x1)); + propList.insert("svg:height", (m_textData.y2 - m_textData.y1)); + } + + m_painter->startTextObject(propList, ::WPXPropertyListVector()); + WPDocument::parseSubDocument(const_cast<WPXInputStream *>(textData.getDataStream()), &handler, WPD_FILE_FORMAT_WP6); + + m_painter->endTextObject(); m_drawTextData = false; } Index: WPGXParser.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGXParser.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- WPGXParser.h 10 Jun 2010 14:35:52 -0000 1.19 +++ WPGXParser.h 10 Jun 2010 18:48:07 -0000 1.20 @@ -59,79 +59,91 @@ std::map<int,libwpg::WPGColor> m_colorPalette; }; -class WPGTextDataHandler : public WPXDocumentInterface +class WPGTextDataHandler : public ::WPXDocumentInterface { public: WPGTextDataHandler(libwpg::WPGPaintInterface* painter) : - m_painter(painter) {} - virtual ~WPGTextDataHandler() {} - void setDocumentMetaData(const WPXPropertyList &propList); + m_painter(painter), + m_x(0.0), + m_y(0.0), + m_width(0.0), + m_height(0.0), + m_fontName("Times New Roman"), + m_fontSize(12.0), + m_paragraphStyle(), + m_textStyle() {} + + ~WPGTextDataHandler() {} + void setDocumentMetaData(const WPXPropertyList &propList) {} - void startDocument(); - void endDocument(); + void startDocument() {} + void endDocument() {} - void startSubDocument(); + void startSubDocument() {} void endSubDocument(); - void definePageStyle(const WPXPropertyList &propList); - void openPageSpan(const WPXPropertyList &propList); - void closePageSpan(); - void openHeader(const WPXPropertyList &propList); - void closeHeader(); - void openFooter(const WPXPropertyList &propList); - void closeFooter(); + void definePageStyle(const WPXPropertyList &propList) {} + void openPageSpan(const WPXPropertyList &propList) {} + void closePageSpan() {} + void openHeader(const WPXPropertyList &propList) {} + void closeHeader() {} + void openFooter(const WPXPropertyList &propList) {} + void closeFooter() {} - void defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); + void defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) {} void openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); void closeParagraph(); - void defineCharacterStyle(const WPXPropertyList &propList); + void defineCharacterStyle(const WPXPropertyList &propList) {} void openSpan(const WPXPropertyList &propList); void closeSpan(); - void defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns); - void openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns); - void closeSection(); + void defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns) {} + void openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns) {} + void closeSection() {} void insertTab(); void insertText(const WPXString &text); void insertLineBreak(); - void defineOrderedListLevel(const WPXPropertyList &propList); - void defineUnorderedListLevel(const WPXPropertyList &propList); - void openOrderedListLevel(const WPXPropertyList &propList); - void openUnorderedListLevel(const WPXPropertyList &propList); - void closeOrderedListLevel(); - void closeUnorderedListLevel(); + void defineOrderedListLevel(const WPXPropertyList &propList) {} + void defineUnorderedListLevel(const WPXPropertyList &propList) {} + void openOrderedListLevel(const WPXPropertyList &propList) {} + void openUnorderedListLevel(const WPXPropertyList &propList) {} + void closeOrderedListLevel() {} + void closeUnorderedListLevel() {} void openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); void closeListElement(); - void openFootnote(const WPXPropertyList &propList); - void closeFootnote(); - void openEndnote(const WPXPropertyList &propList); - void closeEndnote(); - void openComment(const WPXPropertyList &propList); - void closeComment(); - void openTextBox(const WPXPropertyList &propList); - void closeTextBox(); + void openFootnote(const WPXPropertyList &propList) {} + void closeFootnote() {} + void openEndnote(const WPXPropertyList &propList) {} + void closeEndnote() {} + void openComment(const WPXPropertyList &propList) {} + void closeComment() {} + void openTextBox(const WPXPropertyList &propList) {} + void closeTextBox() {} - void openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns); - void openTableRow(const WPXPropertyList &propList); - void closeTableRow(); - void openTableCell(const WPXPropertyList &propList); - void closeTableCell(); - void insertCoveredTableCell(const WPXPropertyList &propList); - void closeTable(); + void openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns) {} + void openTableRow(const WPXPropertyList &propList) {} + void closeTableRow() {} + void openTableCell(const WPXPropertyList &propList) {} + void closeTableCell() {} + void insertCoveredTableCell(const WPXPropertyList &propList) {} + void closeTable() {} - void openFrame(const WPXPropertyList &propList); - void closeFrame(); + void openFrame(const WPXPropertyList &propList) {} + void closeFrame() {} - void insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data); - void insertEquation(const WPXPropertyList &propList, const WPXString &data); + void insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data) {} + void insertEquation(const WPXPropertyList &propList, const WPXString &data) {} - void setTextDataProperties(const WPXPropertyList &propList); private: libwpg::WPGPaintInterface *m_painter; + double m_x, m_y, m_width, m_height; + ::WPXString m_fontName; + double m_fontSize; + ::WPXPropertyList m_paragraphStyle, m_textStyle; }; |
From: Fridrich S. <str...@us...> - 2010-06-10 18:48:15
|
Update of /cvsroot/libwpg/libwpg/src/conv/raw In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv29065/src/conv/raw Modified Files: wpg2raw.cpp Log Message: Some more steps towards parsing of embedded text Index: wpg2raw.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/conv/raw/wpg2raw.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- wpg2raw.cpp 8 Jun 2010 13:47:08 -0000 1.26 +++ wpg2raw.cpp 10 Jun 2010 18:48:06 -0000 1.27 @@ -51,7 +51,13 @@ void drawPolygon(const ::WPXPropertyListVector& vertices); void drawPath(const ::WPXPropertyListVector& path); void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); - void drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str); + void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path); + void endTextObject(); + void startTextLine(const ::WPXPropertyList &propList); + void endTextLine(); + void startTextSpan(const ::WPXPropertyList &propList); + void endTextSpan(); + void insertText(const ::WPXString &str); }; WPXString getPropString(const WPXPropertyList &propList) @@ -170,9 +176,39 @@ printf("RawPainter::drawGraphicObject (%s)\n", getPropString(propList).cstr()); } -void RawPainter::drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str) +void RawPainter::startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path) { - printf("RawPainter::drawTextLine (%s, text: (%s))\n", getPropString(propList).cstr(), str.cstr()); + printf("RawPainter::startTextObject (%s, path: (%s))\n", getPropString(propList).cstr(), getPropString(path).cstr()); +} + +void RawPainter::endTextObject() +{ + printf("RawPainter::endTextObject\n"); +} + +void RawPainter::startTextLine(const ::WPXPropertyList &propList) +{ + printf("RawPainter::startTextLine (%s)\n", getPropString(propList).cstr()); +} + +void RawPainter::endTextLine() +{ + printf("RawPainter::endTextLine\n"); +} + +void RawPainter::startTextSpan(const ::WPXPropertyList &propList) +{ + printf("RawPainter::startTextSpan (%s)\n", getPropString(propList).cstr()); +} + +void RawPainter::endTextSpan() +{ + printf("RawPainter::endTextSpan\n"); +} + +void RawPainter::insertText(const ::WPXString &str) +{ + printf("RawPainter::insertText (%s)\n", str.cstr()); } |
From: Fridrich S. <str...@us...> - 2010-06-10 14:36:02
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv16315 Modified Files: WPG1Parser.cpp WPG2Parser.cpp WPG2Parser.h WPGXParser.cpp WPGXParser.h Log Message: Some more parsing of text data Index: WPG2Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.cpp,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- WPG2Parser.cpp 9 Jun 2010 16:32:48 -0000 1.109 +++ WPG2Parser.cpp 10 Jun 2010 14:35:52 -0000 1.110 @@ -239,6 +239,8 @@ m_binaryData(), m_hFlipped(false), m_vFlipped(false), + m_textData(), + m_drawTextData(false), m_binaryId(0), m_embedded(isEmbedded) { @@ -299,9 +301,9 @@ { 0x19, "Arc", &WPG2Parser::handleArc }, { 0x1a, "Compound Polygon", &WPG2Parser::handleCompoundPolygon }, { 0x1b, "Bitmap", &WPG2Parser::handleBitmap }, - { 0x1c, "Text Line", 0 }, - { 0x1d, "Text Block", 0 }, - { 0x1e, "Text Path", 0 }, + { 0x1c, "Text Line", &WPG2Parser::handleTextLine }, + { 0x1d, "Text Block", &WPG2Parser::handleTextBlock }, + { 0x1e, "Text Path", &WPG2Parser::handleTextPath }, { 0x1f, "Chart", 0 }, { 0x20, "Group", 0 }, { 0x21, "Object Capsule", &WPG2Parser::handleObjectCapsule }, @@ -2019,17 +2021,6 @@ } -void WPG2Parser::handleTextData() -{ - if (!m_graphicsStarted) - return; - ::WPXBinaryData textData; - while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) - textData.append((char)readU8()); - WPGXSubDocumentHandler handler; - WPDocument::parseSubDocument(const_cast<WPXInputStream *>(textData.getDataStream()), &handler, WPD_FILE_FORMAT_WP6); -} - void WPG2Parser::handleObjectCapsule() { if (!m_graphicsStarted) @@ -2163,6 +2154,101 @@ m_binaryData.objectIndex++; } +void WPG2Parser::handleTextLine() +{ + if (!m_graphicsStarted) + return; + ObjectCharacterization objCh; + parseCharacterization(&objCh); + m_matrix = objCh.matrix; + + unsigned short textFlags = readU16(); + long x = (m_doublePrecision) ? readS32() : readS16(); + long y = (m_doublePrecision) ? readS32() : readS16(); + TRANSFORM_XY(x,y); + + unsigned char horizontalAlignment = readU8(); + unsigned char verticalAlignment = readU8(); + + double baseLineAngle = fixedPointToDouble(readU32()); + + WPG_DEBUG_MSG((" text flags : 0x%.4x\n", textFlags)); + WPG_DEBUG_MSG((" x : %li\n", x)); + WPG_DEBUG_MSG((" y : %li\n", y)); + WPG_DEBUG_MSG((" horizontal alignment : 0x%.2x\n", horizontalAlignment)); + WPG_DEBUG_MSG((" vertical alignment : 0x%.2x\n", verticalAlignment)); + WPG_DEBUG_MSG((" baseline angle : %.4f\n", baseLineAngle)); + + m_textData.x1 = TO_DOUBLE(x)/m_xres; + m_textData.y1 = TO_DOUBLE(y)/m_yres; + m_textData.x2 = TO_DOUBLE(x)/m_xres; + m_textData.y2 = TO_DOUBLE(y)/m_yres; + m_textData.flags = textFlags; + m_textData.horAlign = horizontalAlignment; + m_textData.vertAlign = verticalAlignment; + m_textData.baseLineAngle = baseLineAngle; + + m_drawTextData = true; +} + +void WPG2Parser::handleTextBlock() +{ + if (!m_graphicsStarted) + return; + ObjectCharacterization objCh; + parseCharacterization(&objCh); + m_matrix = objCh.matrix; + + long x1 = (m_doublePrecision) ? readS32() : readS16(); + long y1 = (m_doublePrecision) ? readS32() : readS16(); + long x2 = (m_doublePrecision) ? readS32() : readS16(); + long y2 = (m_doublePrecision) ? readS32() : readS16(); + TRANSFORM_XY(x1,y1); + TRANSFORM_XY(x2,y2); + + long xs1 = (x1 <= x2) ? x1 : x2; + long xs2 = (x1 <= x2) ? x2 : x1; + long ys1 = (y1 <= y2) ? y1 : y2; + long ys2 = (y1 <= y2) ? y2 : y1; + + WPG_DEBUG_MSG((" x1 : %li\n", x1)); + WPG_DEBUG_MSG((" y1 : %li\n", y1)); + WPG_DEBUG_MSG((" x2 : %li\n", x2)); + WPG_DEBUG_MSG((" y2 : %li\n", y2)); + + m_textData.x1 = TO_DOUBLE(xs1)/m_xres; + m_textData.y1 = TO_DOUBLE(ys1)/m_yres; + m_textData.x2 = TO_DOUBLE(xs2)/m_xres; + m_textData.y2 = TO_DOUBLE(ys2)/m_yres; + m_textData.flags = 0; + m_textData.horAlign = 0; + m_textData.vertAlign = 0; + m_textData.baseLineAngle = 0.0; + + m_drawTextData = false; +} + +void WPG2Parser::handleTextPath() +{ + if (!m_graphicsStarted) + return; + + m_drawTextData = false; +} + +void WPG2Parser::handleTextData() +{ + if (!m_graphicsStarted) + return; + ::WPXBinaryData textData; + while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) + textData.append((char)readU8()); + WPGTextDataHandler handler(m_painter); + WPDocument::parseSubDocument(const_cast<WPXInputStream *>(textData.getDataStream()), &handler, WPD_FILE_FORMAT_WP6); + + m_drawTextData = false; +} + void WPG2Parser::resetPalette() { m_colorPalette.clear(); Index: WPG2Parser.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- WPG2Parser.h 9 Jun 2010 16:32:48 -0000 1.38 +++ WPG2Parser.h 10 Jun 2010 14:35:52 -0000 1.39 @@ -145,13 +145,24 @@ WPGBitmapContext(): x1(0), y1(0), x2(0), y2(0), hres(100), vres(100) {} }; -class WPXBinaryDataContext +class WPGBinaryDataContext { public: double x1, y1, x2, y2; int numObjects, objectIndex; std::vector<WPXString> mimeTypes; - WPXBinaryDataContext(): x1(0), y1(0), x2(0), y2(0), numObjects(0), objectIndex(0), mimeTypes() {} + WPGBinaryDataContext(): x1(0), y1(0), x2(0), y2(0), numObjects(0), objectIndex(0), mimeTypes() {} +}; + +class WPGTextDataContext +{ +public: + double x1, y1, x2, y2; + unsigned short flags; + unsigned char vertAlign; + unsigned char horAlign; + double baseLineAngle; + WPGTextDataContext(): x1(0), y1(0), x2(0), y2(0), flags(), vertAlign(), horAlign(), baseLineAngle(0.0) {} }; class WPG2Parser : public WPGXParser @@ -198,6 +209,9 @@ void handleBitmapData(); void handleTextData(); + void handleTextLine(); + void handleTextBlock(); + void handleTextPath(); void handleObjectCapsule(); void handleObjectImage(); @@ -238,8 +252,10 @@ bool m_compoundFramed; bool m_compoundClosed; WPGBitmapContext m_bitmap; - WPXBinaryDataContext m_binaryData; + WPGBinaryDataContext m_binaryData; bool m_hFlipped, m_vFlipped; + WPGTextDataContext m_textData; + bool m_drawTextData; class ObjectCharacterization; void parseCharacterization(ObjectCharacterization*); Index: WPG1Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.cpp,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- WPG1Parser.cpp 9 Jun 2010 16:32:48 -0000 1.64 +++ WPG1Parser.cpp 10 Jun 2010 14:35:51 -0000 1.65 @@ -946,7 +946,7 @@ WPG_DEBUG_MSG((" Scale factor: %d,%d\n", sx, sy)); WPG_DEBUG_MSG((" Type: %d\n", type)); - WPGXSubDocumentHandler handler; + WPGTextDataHandler handler(m_painter); WPDocument::parseSubDocument(const_cast<WPXInputStream *>(textString.getDataStream()), &handler, WPD_FILE_FORMAT_WP5); } Index: WPGXParser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGXParser.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- WPGXParser.cpp 9 Jun 2010 16:32:48 -0000 1.20 +++ WPGXParser.cpp 10 Jun 2010 14:35:52 -0000 1.21 @@ -117,247 +117,263 @@ return *this; } -void WPGXSubDocumentHandler::setDocumentMetaData(const WPXPropertyList &propList) +void WPGTextDataHandler::setDocumentMetaData(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::setDocumentMetaData\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::setDocumentMetaData\n")); } -void WPGXSubDocumentHandler::startDocument() +void WPGTextDataHandler::startDocument() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::startDocument\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::startDocument\n")); } -void WPGXSubDocumentHandler::endDocument() +void WPGTextDataHandler::endDocument() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::endDocument\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::endDocument\n")); } -void WPGXSubDocumentHandler::definePageStyle(const WPXPropertyList &propList) +void WPGTextDataHandler::startSubDocument() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::definePageStyle\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::startSubDocument\n")); } -void WPGXSubDocumentHandler::openPageSpan(const WPXPropertyList &propList) +void WPGTextDataHandler::endSubDocument() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openPageSpan\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::endSubDocument\n")); } -void WPGXSubDocumentHandler::closePageSpan() +void WPGTextDataHandler::definePageStyle(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closePageSpan\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::definePageStyle\n")); } -void WPGXSubDocumentHandler::openHeader(const WPXPropertyList &propList) +void WPGTextDataHandler::openPageSpan(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openHeader\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openPageSpan\n")); } -void WPGXSubDocumentHandler::closeHeader() +void WPGTextDataHandler::closePageSpan() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeHeader\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closePageSpan\n")); } -void WPGXSubDocumentHandler::openFooter(const WPXPropertyList &propList) +void WPGTextDataHandler::openHeader(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openFooter\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openHeader\n")); } -void WPGXSubDocumentHandler::closeFooter() +void WPGTextDataHandler::closeHeader() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeFooter\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeHeader\n")); } -void WPGXSubDocumentHandler::defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) +void WPGTextDataHandler::openFooter(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineParagraphStyle\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openFooter\n")); } -void WPGXSubDocumentHandler::openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) +void WPGTextDataHandler::closeFooter() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openParagraph\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeFooter\n")); } -void WPGXSubDocumentHandler::closeParagraph() +void WPGTextDataHandler::defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeParagraph\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::defineParagraphStyle\n")); } -void WPGXSubDocumentHandler::defineCharacterStyle(const WPXPropertyList &propList) +void WPGTextDataHandler::openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineCharacterStyle\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openParagraph\n")); } -void WPGXSubDocumentHandler::openSpan(const WPXPropertyList &propList) +void WPGTextDataHandler::closeParagraph() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openSpan\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeParagraph\n")); } -void WPGXSubDocumentHandler::closeSpan() +void WPGTextDataHandler::defineCharacterStyle(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeSpan\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::defineCharacterStyle\n")); } -void WPGXSubDocumentHandler::defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns) +void WPGTextDataHandler::openSpan(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineSectionStyle\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openSpan\n")); } -void WPGXSubDocumentHandler::openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns) +void WPGTextDataHandler::closeSpan() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openSection\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeSpan\n")); } -void WPGXSubDocumentHandler::closeSection() +void WPGTextDataHandler::defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeSection\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::defineSectionStyle\n")); } -void WPGXSubDocumentHandler::insertTab() +void WPGTextDataHandler::openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertTab\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openSection\n")); } -void WPGXSubDocumentHandler::insertText(const WPXString &text) +void WPGTextDataHandler::closeSection() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertText %s\n", text.cstr())); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeSection\n")); } -void WPGXSubDocumentHandler::insertLineBreak() +void WPGTextDataHandler::insertTab() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertLineBreak\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::insertTab\n")); } -void WPGXSubDocumentHandler::defineOrderedListLevel(const WPXPropertyList &propList) +void WPGTextDataHandler::insertText(const WPXString &text) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineOrderedListLevel\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::insertText %s\n", text.cstr())); } -void WPGXSubDocumentHandler::defineUnorderedListLevel(const WPXPropertyList &propList) +void WPGTextDataHandler::insertLineBreak() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineUnorderedListLevel\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::insertLineBreak\n")); } -void WPGXSubDocumentHandler::openOrderedListLevel(const WPXPropertyList &propList) +void WPGTextDataHandler::defineOrderedListLevel(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openOrderedListLevel\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::defineOrderedListLevel\n")); } -void WPGXSubDocumentHandler::openUnorderedListLevel(const WPXPropertyList &propList) +void WPGTextDataHandler::defineUnorderedListLevel(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openUnorderedListLevel\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::defineUnorderedListLevel\n")); } -void WPGXSubDocumentHandler::closeOrderedListLevel() +void WPGTextDataHandler::openOrderedListLevel(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeOrderedListLevel\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openOrderedListLevel\n")); } -void WPGXSubDocumentHandler::closeUnorderedListLevel() +void WPGTextDataHandler::openUnorderedListLevel(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeUnorderedListLevel\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openUnorderedListLevel\n")); } -void WPGXSubDocumentHandler::openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) +void WPGTextDataHandler::closeOrderedListLevel() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openListElement\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeOrderedListLevel\n")); } -void WPGXSubDocumentHandler::closeListElement() +void WPGTextDataHandler::closeUnorderedListLevel() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeListElement\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeUnorderedListLevel\n")); } -void WPGXSubDocumentHandler::openFootnote(const WPXPropertyList &propList) +void WPGTextDataHandler::openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openFootnote\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openListElement\n")); } -void WPGXSubDocumentHandler::closeFootnote() +void WPGTextDataHandler::closeListElement() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeFootnote\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeListElement\n")); } -void WPGXSubDocumentHandler::openEndnote(const WPXPropertyList &propList) +void WPGTextDataHandler::openFootnote(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openEndnote\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openFootnote\n")); } -void WPGXSubDocumentHandler::closeEndnote() +void WPGTextDataHandler::closeFootnote() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeEndnote\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeFootnote\n")); } -void WPGXSubDocumentHandler::openComment(const WPXPropertyList &propList) +void WPGTextDataHandler::openEndnote(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openComment\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openEndnote\n")); } -void WPGXSubDocumentHandler::closeComment() +void WPGTextDataHandler::closeEndnote() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeComment\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeEndnote\n")); } -void WPGXSubDocumentHandler::openTextBox(const WPXPropertyList &propList) +void WPGTextDataHandler::openComment(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openTextBox\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openComment\n")); } -void WPGXSubDocumentHandler::closeTextBox() +void WPGTextDataHandler::closeComment() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeTextBox\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeComment\n")); } -void WPGXSubDocumentHandler::openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns) +void WPGTextDataHandler::openTextBox(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openTable\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openTextBox\n")); } -void WPGXSubDocumentHandler::openTableRow(const WPXPropertyList &propList) +void WPGTextDataHandler::closeTextBox() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openTableRow\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeTextBox\n")); } -void WPGXSubDocumentHandler::closeTableRow() +void WPGTextDataHandler::openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeTableRow\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openTable\n")); } -void WPGXSubDocumentHandler::openTableCell(const WPXPropertyList &propList) +void WPGTextDataHandler::openTableRow(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openTableCell\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openTableRow\n")); } -void WPGXSubDocumentHandler::closeTableCell() +void WPGTextDataHandler::closeTableRow() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeTableCell\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeTableRow\n")); } -void WPGXSubDocumentHandler::insertCoveredTableCell(const WPXPropertyList &propList) +void WPGTextDataHandler::openTableCell(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertCoveredTableCell\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::openTableCell\n")); } -void WPGXSubDocumentHandler::closeTable() +void WPGTextDataHandler::closeTableCell() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeTable\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeTableCell\n")); } -void WPGXSubDocumentHandler::openFrame(const WPXPropertyList &propList) +void WPGTextDataHandler::insertCoveredTableCell(const WPXPropertyList &propList) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openFrame\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::insertCoveredTableCell\n")); } -void WPGXSubDocumentHandler::closeFrame() +void WPGTextDataHandler::closeTable() { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeFrame\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::closeTable\n")); +} + +void WPGTextDataHandler::openFrame(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGTextDataHandler::openFrame\n")); +} + +void WPGTextDataHandler::closeFrame() +{ + WPG_DEBUG_MSG(("WPGTextDataHandler::closeFrame\n")); } -void WPGXSubDocumentHandler::insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data) +void WPGTextDataHandler::insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertBinaryObject\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::insertBinaryObject\n")); } -void WPGXSubDocumentHandler::insertEquation(const WPXPropertyList &propList, const WPXString &data) +void WPGTextDataHandler::insertEquation(const WPXPropertyList &propList, const WPXString &data) { - WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertEquation\n")); + WPG_DEBUG_MSG(("WPGTextDataHandler::insertEquation\n")); +} + +void WPGTextDataHandler::setTextDataProperties(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGTextDataHandler::setTextDataProperties\n")); + } Index: WPGXParser.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGXParser.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- WPGXParser.h 9 Jun 2010 16:32:48 -0000 1.18 +++ WPGXParser.h 10 Jun 2010 14:35:52 -0000 1.19 @@ -59,71 +59,79 @@ std::map<int,libwpg::WPGColor> m_colorPalette; }; -class WPGXSubDocumentHandler : public WPXDocumentInterface +class WPGTextDataHandler : public WPXDocumentInterface { public: - WPGXSubDocumentHandler() {} - virtual ~WPGXSubDocumentHandler() {} - virtual void setDocumentMetaData(const WPXPropertyList &propList); + WPGTextDataHandler(libwpg::WPGPaintInterface* painter) : + m_painter(painter) {} + virtual ~WPGTextDataHandler() {} + void setDocumentMetaData(const WPXPropertyList &propList); - virtual void startDocument(); - virtual void endDocument(); + void startDocument(); + void endDocument(); - virtual void definePageStyle(const WPXPropertyList &propList); - virtual void openPageSpan(const WPXPropertyList &propList); - virtual void closePageSpan(); - virtual void openHeader(const WPXPropertyList &propList); - virtual void closeHeader(); - virtual void openFooter(const WPXPropertyList &propList); - virtual void closeFooter(); + void startSubDocument(); + void endSubDocument(); - virtual void defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); - virtual void openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); - virtual void closeParagraph(); + void definePageStyle(const WPXPropertyList &propList); + void openPageSpan(const WPXPropertyList &propList); + void closePageSpan(); + void openHeader(const WPXPropertyList &propList); + void closeHeader(); + void openFooter(const WPXPropertyList &propList); + void closeFooter(); - virtual void defineCharacterStyle(const WPXPropertyList &propList); - virtual void openSpan(const WPXPropertyList &propList); - virtual void closeSpan(); + void defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); + void openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); + void closeParagraph(); - virtual void defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns); - virtual void openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns); - virtual void closeSection(); + void defineCharacterStyle(const WPXPropertyList &propList); + void openSpan(const WPXPropertyList &propList); + void closeSpan(); - virtual void insertTab(); - virtual void insertText(const WPXString &text); - virtual void insertLineBreak(); + void defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns); + void openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns); + void closeSection(); - virtual void defineOrderedListLevel(const WPXPropertyList &propList); - virtual void defineUnorderedListLevel(const WPXPropertyList &propList); - virtual void openOrderedListLevel(const WPXPropertyList &propList); - virtual void openUnorderedListLevel(const WPXPropertyList &propList); - virtual void closeOrderedListLevel(); - virtual void closeUnorderedListLevel(); - virtual void openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); - virtual void closeListElement(); + void insertTab(); + void insertText(const WPXString &text); + void insertLineBreak(); - virtual void openFootnote(const WPXPropertyList &propList); - virtual void closeFootnote(); - virtual void openEndnote(const WPXPropertyList &propList); - virtual void closeEndnote(); - virtual void openComment(const WPXPropertyList &propList); - virtual void closeComment(); - virtual void openTextBox(const WPXPropertyList &propList); - virtual void closeTextBox(); + void defineOrderedListLevel(const WPXPropertyList &propList); + void defineUnorderedListLevel(const WPXPropertyList &propList); + void openOrderedListLevel(const WPXPropertyList &propList); + void openUnorderedListLevel(const WPXPropertyList &propList); + void closeOrderedListLevel(); + void closeUnorderedListLevel(); + void openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); + void closeListElement(); - virtual void openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns); - virtual void openTableRow(const WPXPropertyList &propList); - virtual void closeTableRow(); - virtual void openTableCell(const WPXPropertyList &propList); - virtual void closeTableCell(); - virtual void insertCoveredTableCell(const WPXPropertyList &propList); - virtual void closeTable(); + void openFootnote(const WPXPropertyList &propList); + void closeFootnote(); + void openEndnote(const WPXPropertyList &propList); + void closeEndnote(); + void openComment(const WPXPropertyList &propList); + void closeComment(); + void openTextBox(const WPXPropertyList &propList); + void closeTextBox(); - virtual void openFrame(const WPXPropertyList &propList); - virtual void closeFrame(); + void openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns); + void openTableRow(const WPXPropertyList &propList); + void closeTableRow(); + void openTableCell(const WPXPropertyList &propList); + void closeTableCell(); + void insertCoveredTableCell(const WPXPropertyList &propList); + void closeTable(); + + void openFrame(const WPXPropertyList &propList); + void closeFrame(); - virtual void insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data); - virtual void insertEquation(const WPXPropertyList &propList, const WPXString &data); + void insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data); + void insertEquation(const WPXPropertyList &propList, const WPXString &data); + + void setTextDataProperties(const WPXPropertyList &propList); +private: + libwpg::WPGPaintInterface *m_painter; }; |
From: Fridrich S. <str...@us...> - 2010-06-09 16:32:57
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv22040/src/lib Modified Files: WPG1Parser.cpp WPG2Parser.cpp WPG2Parser.h WPGXParser.cpp WPGXParser.h Log Message: Starting to parse text embedded inside graphics as a fragment of WP document for wPG1 and WPG2 Index: WPG2Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.cpp,v retrieving revision 1.108 retrieving revision 1.109 diff -u -d -r1.108 -r1.109 --- WPG2Parser.cpp 8 Jun 2010 13:47:08 -0000 1.108 +++ WPG2Parser.cpp 9 Jun 2010 16:32:48 -0000 1.109 @@ -288,7 +288,7 @@ { 0x0c, "Color Palette", &WPG2Parser::handleColorPalette }, { 0x0d, "DP Color Palette", &WPG2Parser::handleDPColorPalette }, { 0x0e, "Bitmap Data", &WPG2Parser::handleBitmapData }, - { 0x0f, "Text Data", 0 }, + { 0x0f, "Text Data", &WPG2Parser::handleTextData }, { 0x10, "Chart Style", 0 }, // ignored { 0x11, "Chart Data", 0 }, // ignored { 0x12, "Object Image", &WPG2Parser::handleObjectImage }, @@ -2019,6 +2019,17 @@ } +void WPG2Parser::handleTextData() +{ + if (!m_graphicsStarted) + return; + ::WPXBinaryData textData; + while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) + textData.append((char)readU8()); + WPGXSubDocumentHandler handler; + WPDocument::parseSubDocument(const_cast<WPXInputStream *>(textData.getDataStream()), &handler, WPD_FILE_FORMAT_WP6); +} + void WPG2Parser::handleObjectCapsule() { if (!m_graphicsStarted) Index: WPG2Parser.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.h,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- WPG2Parser.h 7 Sep 2009 09:41:29 -0000 1.37 +++ WPG2Parser.h 9 Jun 2010 16:32:48 -0000 1.38 @@ -197,6 +197,8 @@ void handleBitmap(); void handleBitmapData(); + void handleTextData(); + void handleObjectCapsule(); void handleObjectImage(); Index: WPG1Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.cpp,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- WPG1Parser.cpp 8 Jun 2010 13:47:08 -0000 1.63 +++ WPG1Parser.cpp 9 Jun 2010 16:32:48 -0000 1.64 @@ -922,7 +922,9 @@ #ifdef DEBUG int sizeEquivalentData = readU32(); short rotationAngle = readS16(); +#endif unsigned short textLength = readU16(); +#ifdef DEBUG int x1 = readS16(); int y1 = readS16(); int x2 = readS16(); @@ -930,6 +932,7 @@ int sx = readS16(); int sy = readS16(); unsigned char type = readU8(); +#endif WPXBinaryData textString; for (unsigned short i=0; i < textLength; i++) textString.append(readU8()); @@ -942,7 +945,9 @@ WPG_DEBUG_MSG((" End position: %d,%d\n", x2, y2)); WPG_DEBUG_MSG((" Scale factor: %d,%d\n", sx, sy)); WPG_DEBUG_MSG((" Type: %d\n", type)); -#endif + + WPGXSubDocumentHandler handler; + WPDocument::parseSubDocument(const_cast<WPXInputStream *>(textString.getDataStream()), &handler, WPD_FILE_FORMAT_WP5); } void WPG1Parser::resetPalette() Index: WPGXParser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGXParser.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- WPGXParser.cpp 4 Jun 2010 15:19:00 -0000 1.19 +++ WPGXParser.cpp 9 Jun 2010 16:32:48 -0000 1.20 @@ -26,6 +26,7 @@ */ #include "WPGXParser.h" +#include "libwpg_utils.h" double fixedPointToDouble(const unsigned int fixedPointNumber) { @@ -115,3 +116,248 @@ m_colorPalette = parser.m_colorPalette; return *this; } + +void WPGXSubDocumentHandler::setDocumentMetaData(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::setDocumentMetaData\n")); +} + +void WPGXSubDocumentHandler::startDocument() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::startDocument\n")); +} + +void WPGXSubDocumentHandler::endDocument() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::endDocument\n")); +} + +void WPGXSubDocumentHandler::definePageStyle(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::definePageStyle\n")); +} + +void WPGXSubDocumentHandler::openPageSpan(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openPageSpan\n")); +} + +void WPGXSubDocumentHandler::closePageSpan() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closePageSpan\n")); +} + +void WPGXSubDocumentHandler::openHeader(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openHeader\n")); +} + +void WPGXSubDocumentHandler::closeHeader() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeHeader\n")); +} + +void WPGXSubDocumentHandler::openFooter(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openFooter\n")); +} + +void WPGXSubDocumentHandler::closeFooter() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeFooter\n")); +} + +void WPGXSubDocumentHandler::defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineParagraphStyle\n")); +} + +void WPGXSubDocumentHandler::openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openParagraph\n")); +} + +void WPGXSubDocumentHandler::closeParagraph() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeParagraph\n")); +} + +void WPGXSubDocumentHandler::defineCharacterStyle(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineCharacterStyle\n")); +} + +void WPGXSubDocumentHandler::openSpan(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openSpan\n")); +} + +void WPGXSubDocumentHandler::closeSpan() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeSpan\n")); +} + +void WPGXSubDocumentHandler::defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineSectionStyle\n")); +} + +void WPGXSubDocumentHandler::openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openSection\n")); +} + +void WPGXSubDocumentHandler::closeSection() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeSection\n")); +} + +void WPGXSubDocumentHandler::insertTab() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertTab\n")); +} + +void WPGXSubDocumentHandler::insertText(const WPXString &text) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertText %s\n", text.cstr())); +} + +void WPGXSubDocumentHandler::insertLineBreak() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertLineBreak\n")); +} + +void WPGXSubDocumentHandler::defineOrderedListLevel(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineOrderedListLevel\n")); +} + +void WPGXSubDocumentHandler::defineUnorderedListLevel(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::defineUnorderedListLevel\n")); +} + +void WPGXSubDocumentHandler::openOrderedListLevel(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openOrderedListLevel\n")); +} + +void WPGXSubDocumentHandler::openUnorderedListLevel(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openUnorderedListLevel\n")); +} + +void WPGXSubDocumentHandler::closeOrderedListLevel() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeOrderedListLevel\n")); +} + +void WPGXSubDocumentHandler::closeUnorderedListLevel() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeUnorderedListLevel\n")); +} + +void WPGXSubDocumentHandler::openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openListElement\n")); +} + +void WPGXSubDocumentHandler::closeListElement() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeListElement\n")); +} + +void WPGXSubDocumentHandler::openFootnote(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openFootnote\n")); +} + +void WPGXSubDocumentHandler::closeFootnote() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeFootnote\n")); +} + +void WPGXSubDocumentHandler::openEndnote(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openEndnote\n")); +} + +void WPGXSubDocumentHandler::closeEndnote() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeEndnote\n")); +} + +void WPGXSubDocumentHandler::openComment(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openComment\n")); +} + +void WPGXSubDocumentHandler::closeComment() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeComment\n")); +} + +void WPGXSubDocumentHandler::openTextBox(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openTextBox\n")); +} + +void WPGXSubDocumentHandler::closeTextBox() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeTextBox\n")); +} + +void WPGXSubDocumentHandler::openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openTable\n")); +} + +void WPGXSubDocumentHandler::openTableRow(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openTableRow\n")); +} + +void WPGXSubDocumentHandler::closeTableRow() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeTableRow\n")); +} + +void WPGXSubDocumentHandler::openTableCell(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openTableCell\n")); +} + +void WPGXSubDocumentHandler::closeTableCell() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeTableCell\n")); +} + +void WPGXSubDocumentHandler::insertCoveredTableCell(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertCoveredTableCell\n")); +} + +void WPGXSubDocumentHandler::closeTable() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeTable\n")); +} + +void WPGXSubDocumentHandler::openFrame(const WPXPropertyList &propList) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::openFrame\n")); +} + +void WPGXSubDocumentHandler::closeFrame() +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::closeFrame\n")); +} + +void WPGXSubDocumentHandler::insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertBinaryObject\n")); +} + +void WPGXSubDocumentHandler::insertEquation(const WPXPropertyList &propList, const WPXString &data) +{ + WPG_DEBUG_MSG(("WPGXSubDocumentHandler::insertEquation\n")); +} Index: WPGXParser.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGXParser.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- WPGXParser.h 4 Jun 2010 15:19:00 -0000 1.17 +++ WPGXParser.h 9 Jun 2010 16:32:48 -0000 1.18 @@ -30,6 +30,7 @@ #include "WPGPaintInterface.h" #include <libwpd-stream/WPXStream.h> +#include <libwpd/libwpd.h> #include "WPGColor.h" #include <map> @@ -58,4 +59,72 @@ std::map<int,libwpg::WPGColor> m_colorPalette; }; +class WPGXSubDocumentHandler : public WPXDocumentInterface +{ +public: + WPGXSubDocumentHandler() {} + virtual ~WPGXSubDocumentHandler() {} + virtual void setDocumentMetaData(const WPXPropertyList &propList); + + virtual void startDocument(); + virtual void endDocument(); + + virtual void definePageStyle(const WPXPropertyList &propList); + virtual void openPageSpan(const WPXPropertyList &propList); + virtual void closePageSpan(); + virtual void openHeader(const WPXPropertyList &propList); + virtual void closeHeader(); + virtual void openFooter(const WPXPropertyList &propList); + virtual void closeFooter(); + + virtual void defineParagraphStyle(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); + virtual void openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); + virtual void closeParagraph(); + + virtual void defineCharacterStyle(const WPXPropertyList &propList); + virtual void openSpan(const WPXPropertyList &propList); + virtual void closeSpan(); + + virtual void defineSectionStyle(const WPXPropertyList &propList, const WPXPropertyListVector &columns); + virtual void openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns); + virtual void closeSection(); + + virtual void insertTab(); + virtual void insertText(const WPXString &text); + virtual void insertLineBreak(); + + virtual void defineOrderedListLevel(const WPXPropertyList &propList); + virtual void defineUnorderedListLevel(const WPXPropertyList &propList); + virtual void openOrderedListLevel(const WPXPropertyList &propList); + virtual void openUnorderedListLevel(const WPXPropertyList &propList); + virtual void closeOrderedListLevel(); + virtual void closeUnorderedListLevel(); + virtual void openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); + virtual void closeListElement(); + + virtual void openFootnote(const WPXPropertyList &propList); + virtual void closeFootnote(); + virtual void openEndnote(const WPXPropertyList &propList); + virtual void closeEndnote(); + virtual void openComment(const WPXPropertyList &propList); + virtual void closeComment(); + virtual void openTextBox(const WPXPropertyList &propList); + virtual void closeTextBox(); + + virtual void openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns); + virtual void openTableRow(const WPXPropertyList &propList); + virtual void closeTableRow(); + virtual void openTableCell(const WPXPropertyList &propList); + virtual void closeTableCell(); + virtual void insertCoveredTableCell(const WPXPropertyList &propList); + virtual void closeTable(); + + virtual void openFrame(const WPXPropertyList &propList); + virtual void closeFrame(); + + virtual void insertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data); + virtual void insertEquation(const WPXPropertyList &propList, const WPXString &data); +}; + + #endif // __WPGXPARSER_H__ |
From: Fridrich S. <str...@us...> - 2010-06-08 13:47:16
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv8337/src/lib Modified Files: WPG1Parser.cpp WPG1Parser.h WPG2Parser.cpp WPGPaintInterface.h WPGSVGGenerator.cpp WPGSVGGenerator.h Log Message: Starting to support some text elements embedded in WPG documents Index: WPGSVGGenerator.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.h,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- WPGSVGGenerator.h 7 Sep 2009 09:41:29 -0000 1.22 +++ WPGSVGGenerator.h 8 Jun 2010 13:47:08 -0000 1.23 @@ -47,14 +47,15 @@ void startEmbeddedGraphics(const ::WPXPropertyList & /*propList*/) {} void endEmbeddedGraphics() {} - void setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList &propList); + void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient); - void drawRectangle(const ::WPXPropertyList& propList); - void drawEllipse(const ::WPXPropertyList& propList); - void drawPolyline(const ::WPXPropertyListVector& vertices); - void drawPolygon(const ::WPXPropertyListVector& vertices); - void drawPath(const ::WPXPropertyListVector& path); - void drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); + void drawRectangle(const ::WPXPropertyList &propList); + void drawEllipse(const ::WPXPropertyList &propList); + void drawPolyline(const ::WPXPropertyListVector &vertices); + void drawPolygon(const ::WPXPropertyListVector &vertices); + void drawPath(const ::WPXPropertyListVector &path); + void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData); + void drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str); private: ::WPXPropertyListVector m_gradient; Index: WPG1Parser.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- WPG1Parser.h 7 Sep 2009 08:10:18 -0000 1.23 +++ WPG1Parser.h 8 Jun 2010 13:47:08 -0000 1.24 @@ -63,6 +63,11 @@ void handlePostscriptTypeOne(); void handlePostscriptTypeTwo(); + void handleGraphicsTextAttributes(); + void handleGraphicsTextTypeOne(); + void handleGraphicsTextTypeTwo(); + void handleGraphicsTextTypeThree(); + void resetPalette(); // parsing context Index: WPGSVGGenerator.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.cpp,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- WPGSVGGenerator.cpp 7 Jun 2010 12:47:51 -0000 1.37 +++ WPGSVGGenerator.cpp 8 Jun 2010 13:47:08 -0000 1.38 @@ -79,7 +79,7 @@ m_outputSink << "</svg>\n"; } -void libwpg::WPGSVGGenerator::setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList &propList) +void libwpg::WPGSVGGenerator::setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector& gradient) { m_style = propList; @@ -241,7 +241,7 @@ m_outputSink << "/>\n"; } -void libwpg::WPGSVGGenerator::drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) +void libwpg::WPGSVGGenerator::drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) { if (!propList["libwpg:mime-type"] || propList["libwpg:mime-type"]->getStr().len() <= 0) return; @@ -255,6 +255,15 @@ m_outputSink << "\" />\n"; } +void libwpg::WPGSVGGenerator::drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str) +{ + m_outputSink << "<text "; + if (propList["svg:x"] && propList["svg:y"]) + m_outputSink << "x=\"" << doubleToString(72*(propList["svg:x"]->getDouble())) << "\" y=\"" << doubleToString(72*(propList["svg:y"]->getDouble())) << "\" >\n"; + m_outputSink << str.cstr() << "\n"; + m_outputSink << "</text >\n"; +} + // create "style" attribute based on current pen and brush void libwpg::WPGSVGGenerator::writeStyle(bool isClosed) { Index: WPGPaintInterface.h =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGPaintInterface.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- WPGPaintInterface.h 7 Sep 2009 09:41:29 -0000 1.20 +++ WPGPaintInterface.h 8 Jun 2010 13:47:08 -0000 1.21 @@ -40,9 +40,9 @@ // none of the other callback functions will be called before this function is called virtual void startGraphics(const ::WPXPropertyList &propList) = 0; - virtual void setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList &propList) = 0; + virtual void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient) = 0; - virtual void startLayer(const ::WPXPropertyList& propList) = 0; + virtual void startLayer(const ::WPXPropertyList &propList) = 0; virtual void endLayer() = 0; @@ -54,13 +54,15 @@ virtual void drawEllipse(const ::WPXPropertyList& propList) = 0; - virtual void drawPolygon(const ::WPXPropertyListVector& vertices) = 0; + virtual void drawPolygon(const ::WPXPropertyListVector &vertices) = 0; virtual void drawPolyline(const ::WPXPropertyListVector &vertices) = 0; - virtual void drawPath(const ::WPXPropertyListVector& path) = 0; + virtual void drawPath(const ::WPXPropertyListVector &path) = 0; - virtual void drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData) = 0; + virtual void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData) = 0; + + virtual void drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str) = 0; // none of the other callback functions will be called after this function is called virtual void endGraphics() = 0; Index: WPG2Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.cpp,v retrieving revision 1.107 retrieving revision 1.108 diff -u -d -r1.107 -r1.108 --- WPG2Parser.cpp 7 Jun 2010 12:47:48 -0000 1.107 +++ WPG2Parser.cpp 8 Jun 2010 13:47:08 -0000 1.108 @@ -653,7 +653,7 @@ else tmpStyle.insert("svg:fill-rule", "evenodd"); - m_painter->setStyle( context.compoundFilled ? m_gradient : ::WPXPropertyListVector(), tmpStyle ); + m_painter->setStyle( tmpStyle, context.compoundFilled ? m_gradient : ::WPXPropertyListVector() ); if (context.compoundClosed) { @@ -1385,7 +1385,7 @@ else tmpStyle.insert("svg:fill-rule", "evenodd"); - m_painter->setStyle( objCh.filled ? m_gradient : ::WPXPropertyListVector(), tmpStyle ); + m_painter->setStyle( tmpStyle, objCh.filled ? m_gradient : ::WPXPropertyListVector() ); if (objCh.filled || objCh.closed) m_painter->drawPolygon(points); @@ -1395,7 +1395,7 @@ else { - m_painter->setStyle( ::WPXPropertyListVector(), tmpStyle ); + m_painter->setStyle( tmpStyle, ::WPXPropertyListVector() ); m_painter->drawPolyline(points); } } @@ -1490,7 +1490,7 @@ tmpStyle.insert("svg:fill-rule", "nonzero"); else tmpStyle.insert("svg:fill-rule", "evenodd"); - m_painter->setStyle( objCh.filled ? m_gradient : ::WPXPropertyListVector(), tmpStyle ); + m_painter->setStyle( tmpStyle, objCh.filled ? m_gradient : ::WPXPropertyListVector() ); m_painter->drawPath(path); } } @@ -1533,7 +1533,7 @@ propList.insert("svg:rx", (TO_DOUBLE(rx)/m_xres)); propList.insert("svg:ry", (TO_DOUBLE(ry)/m_yres)); - m_painter->setStyle( objCh.filled ? m_gradient : ::WPXPropertyListVector(), tmpStyle ); + m_painter->setStyle( tmpStyle, objCh.filled ? m_gradient : ::WPXPropertyListVector() ); m_painter->drawRectangle(propList); WPG_DEBUG_MSG((" X1 : %li\n", x1)); @@ -1577,7 +1577,7 @@ TRANSFORM_XY(ix,iy); TRANSFORM_XY(ex,ey); - m_painter->setStyle( objCh.filled ? m_gradient : ::WPXPropertyListVector(), tmpStyle ); + m_painter->setStyle( tmpStyle, objCh.filled ? m_gradient : ::WPXPropertyListVector() ); if (ix == ex && iy == ey) { @@ -1892,7 +1892,7 @@ const libwpg::WPGColor& color = m_colorPalette[index]; bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } // format 2: each byte represents 4 pixels, the color fetched from the palette else if(color_format == 2) @@ -1907,7 +1907,7 @@ const libwpg::WPGColor& color = m_colorPalette[index]; bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } // format 3: each byte represents 2 pixels, the color fetched from the palette else if(color_format == 3) @@ -1922,7 +1922,7 @@ const libwpg::WPGColor& color = m_colorPalette[index]; bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } // format 4: each byte represents a pixel, the color fetched from the palette else if(color_format == 4) @@ -1935,7 +1935,7 @@ bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } // format 5: greyscale of 16 bits else if (color_format == 5) @@ -1949,7 +1949,7 @@ bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } // format 6: RGB, with 5 bits per colour else if (color_format == 6) @@ -1963,7 +1963,7 @@ bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } // format 7: else if (color_format == 7) @@ -1977,7 +1977,7 @@ bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } else if (color_format == 8) { @@ -1989,7 +1989,7 @@ bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } else if (color_format == 9) { @@ -2001,7 +2001,7 @@ bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } else if (color_format == 12) { @@ -2014,7 +2014,7 @@ bitmap.setPixel(x, y, color); } - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } } @@ -2148,7 +2148,7 @@ #endif - m_painter->drawImageObject(propList, binaryData); + m_painter->drawGraphicObject(propList, binaryData); m_binaryData.objectIndex++; } Index: WPG1Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.cpp,v retrieving revision 1.62 retrieving revision 1.63 diff -u -d -r1.62 -r1.63 --- WPG1Parser.cpp 7 Sep 2009 12:09:32 -0000 1.62 +++ WPG1Parser.cpp 8 Jun 2010 13:47:08 -0000 1.63 @@ -179,8 +179,8 @@ { 0x09, "Ellipse", &WPG1Parser::handleEllipse }, { 0x0a, "Reserved", 0 }, { 0x0b, "Bitmap (Type 1)", &WPG1Parser::handleBitmapTypeOne }, - { 0x0c, "Graphics Text (Type 1)", 0 }, - { 0x0d, "Grephics Text Attributes", 0 }, + { 0x0c, "Graphics Text (Type 1)", &WPG1Parser::handleGraphicsTextTypeOne }, + { 0x0d, "Graphics Text Attributes", &WPG1Parser::handleGraphicsTextAttributes }, { 0x0e, "Colormap", &WPG1Parser::handleColormap }, { 0x0f, "Start WPG", &WPG1Parser::handleStartWPG }, { 0x10, "End WPG", &WPG1Parser::handleEndWPG }, @@ -191,7 +191,7 @@ { 0x15, "Start Figure", 0 }, { 0x16, "Start Chart", 0 }, { 0x17, "Planperfect Data", 0 }, - { 0x18, "Graphics Text (Type 2)", 0 }, + { 0x18, "Graphics Text (Type 2)", &WPG1Parser::handleGraphicsTextTypeTwo }, { 0x19, "Start WPG (Type 2)", 0 }, { 0x1a, "Graphics Text (Type 3)", 0 }, { 0x1b, "Postscript Data (Type 2)", &WPG1Parser::handlePostscriptTypeTwo }, @@ -391,7 +391,7 @@ point.insert("svg:y", (double)(m_height-ey)/1200.0); points.append(point); - m_painter->setStyle(m_gradient, m_style); + m_painter->setStyle(m_style, m_gradient); m_painter->drawPolyline(points); @@ -418,7 +418,7 @@ points.append(point); } - m_painter->setStyle(::WPXPropertyListVector(), m_style); + m_painter->setStyle(m_style, ::WPXPropertyListVector()); m_painter->drawPolyline(points); @@ -441,7 +441,7 @@ propList.insert("svg:width", (double)w/1200.0); propList.insert("svg:height",(double)h/1200.0); - m_painter->setStyle(m_gradient, m_style); + m_painter->setStyle(m_style, m_gradient); m_painter->drawRectangle(propList); @@ -469,7 +469,7 @@ points.append(point); } - m_painter->setStyle(m_gradient, m_style); + m_painter->setStyle(m_style, m_gradient); m_painter->drawPolygon(points); @@ -493,7 +493,7 @@ int endAngle = readS16(); unsigned flags = readU16(); #endif - m_painter->setStyle(m_gradient, m_style); + m_painter->setStyle(m_style, m_gradient); m_painter->drawEllipse(propList); @@ -541,7 +541,7 @@ } - m_painter->setStyle(m_gradient, m_style); + m_painter->setStyle(m_style, m_gradient); m_painter->drawPath(path); @@ -734,7 +734,7 @@ if (buffer.size() && buffer.size() == (unsigned long)((width*depth + 7)/8)*height) { fillPixels(bitmap, &buffer[0], width, height, depth); - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } } @@ -803,7 +803,7 @@ if (buffer.size() && buffer.size() == (unsigned long)((width*depth + 7)/8)*height) { fillPixels(bitmap, &buffer[0], width, height, depth); - m_painter->drawImageObject(propList, bitmap.getDIB()); + m_painter->drawGraphicObject(propList, bitmap.getDIB()); } } @@ -829,7 +829,7 @@ while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) data.append((char)readU8()); if (data.size()) - m_painter->drawImageObject(propList, data); + m_painter->drawGraphicObject(propList, data); } void WPG1Parser::handlePostscriptTypeTwo() @@ -880,7 +880,69 @@ while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) data.append((char)readU8()); if (data.size()) - m_painter->drawImageObject(propList, data); + m_painter->drawGraphicObject(propList, data); +} + +void WPG1Parser::handleGraphicsTextAttributes() +{ + if (!m_graphicsStarted) + return; +} + +void WPG1Parser::handleGraphicsTextTypeOne() +{ + if (!m_graphicsStarted) + return; + unsigned short textLength = readU16(); + int x = readS16(); + int y = readS16(); + WPXString textString; + for (unsigned short i=0; i < textLength; i++) + textString.append(readU8()); + + WPG_DEBUG_MSG(("Graphics Text (Type 1)\n")); + WPG_DEBUG_MSG((" Length of String: %d\n", textLength)); + WPG_DEBUG_MSG((" String position: %d,%d\n", x, y)); + WPG_DEBUG_MSG((" String: %s\n", textString.cstr())); + + y = m_height - y; + + ::WPXPropertyList propList; + + propList.insert("svg:x", (double)x/1200.0); + propList.insert("svg:y", (double)(y)/1200.0); + + m_painter->drawTextLine(propList, textString); +} + +void WPG1Parser::handleGraphicsTextTypeTwo() +{ + if (!m_graphicsStarted) + return; +#ifdef DEBUG + int sizeEquivalentData = readU32(); + short rotationAngle = readS16(); + unsigned short textLength = readU16(); + int x1 = readS16(); + int y1 = readS16(); + int x2 = readS16(); + int y2 = readS16(); + int sx = readS16(); + int sy = readS16(); + unsigned char type = readU8(); + WPXBinaryData textString; + for (unsigned short i=0; i < textLength; i++) + textString.append(readU8()); + + WPG_DEBUG_MSG(("Graphics Text (Type 1)\n")); + WPG_DEBUG_MSG((" Size of Equivalent data: %d\n", sizeEquivalentData)); + WPG_DEBUG_MSG((" Rotation Angle: %d\n", rotationAngle)); + WPG_DEBUG_MSG((" Length of String: %d\n", textLength)); + WPG_DEBUG_MSG((" Start position: %d,%d\n", x1, y1)); + WPG_DEBUG_MSG((" End position: %d,%d\n", x2, y2)); + WPG_DEBUG_MSG((" Scale factor: %d,%d\n", sx, sy)); + WPG_DEBUG_MSG((" Type: %d\n", type)); +#endif } void WPG1Parser::resetPalette() |
From: Fridrich S. <str...@us...> - 2010-06-08 13:47:16
|
Update of /cvsroot/libwpg/libwpg/src/conv/raw In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv8337/src/conv/raw Modified Files: wpg2raw.cpp Log Message: Starting to support some text elements embedded in WPG documents Index: wpg2raw.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/conv/raw/wpg2raw.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- wpg2raw.cpp 6 Jun 2010 22:14:09 -0000 1.25 +++ wpg2raw.cpp 8 Jun 2010 13:47:08 -0000 1.26 @@ -43,14 +43,15 @@ void startEmbeddedGraphics(const ::WPXPropertyList& propList); void endEmbeddedGraphics(); - void setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList &propList); + void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector& gradient); void drawRectangle(const ::WPXPropertyList &propList); void drawEllipse(const ::WPXPropertyList& propList); void drawPolyline(const ::WPXPropertyListVector& vertices); void drawPolygon(const ::WPXPropertyListVector& vertices); void drawPath(const ::WPXPropertyListVector& path); - void drawImageObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); + void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData& binaryData); + void drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str); }; WPXString getPropString(const WPXPropertyList &propList) @@ -134,9 +135,9 @@ printf("RawPainter::endEmbeddedGraphics \n"); } -void RawPainter::setStyle(const ::WPXPropertyListVector& gradient, const ::WPXPropertyList &propList) +void RawPainter::setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector& gradient) { - printf("RawPainter::setStyle(gradient: (%s), %s)\n", getPropString(gradient).cstr(), getPropString(propList).cstr()); + printf("RawPainter::setStyle(%s, gradient: (%s))\n", getPropString(propList).cstr(), getPropString(gradient).cstr()); } void RawPainter::drawRectangle(const ::WPXPropertyList &propList) @@ -164,11 +165,17 @@ printf("RawPainter::drawPath (%s)\n", getPropString(path).cstr()); } -void RawPainter::drawImageObject(const ::WPXPropertyList& propList, const ::WPXBinaryData& /*binaryData*/) +void RawPainter::drawGraphicObject(const ::WPXPropertyList& propList, const ::WPXBinaryData& /*binaryData*/) { - printf("RawPainter::drawImageObject (%s)\n", getPropString(propList).cstr()); + printf("RawPainter::drawGraphicObject (%s)\n", getPropString(propList).cstr()); } +void RawPainter::drawTextLine(const ::WPXPropertyList &propList, const ::WPXString &str) +{ + printf("RawPainter::drawTextLine (%s, text: (%s))\n", getPropString(propList).cstr(), str.cstr()); +} + + namespace { int printUsage() |
From: Fridrich S. <str...@us...> - 2010-06-08 05:32:39
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv23554/src/lib Modified Files: WPGraphics.cpp Log Message: better this Index: WPGraphics.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGraphics.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- WPGraphics.cpp 8 Jun 2010 05:09:26 -0000 1.18 +++ WPGraphics.cpp 8 Jun 2010 05:32:31 -0000 1.19 @@ -130,7 +130,7 @@ tmpMajorVersion = (unsigned char)(header.majorVersion()); if (tmpMajorVersion == 0x01) { - unsigned long returnPosition = graphics->tell(); + unsigned long returnPosition = header.startOfDocument(); /* Due to a bug in dumping mechanism, we produced * invalid WPG files by prepending a WPG1 header * to a valid WP file. Let us check this kind of files, |
From: Fridrich S. <str...@us...> - 2010-06-08 05:09:38
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv19583/src/lib Modified Files: WPGraphics.cpp Log Message: Fix a regression that was introduced by code trying to load invalid documents :) Index: WPGraphics.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGraphics.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- WPGraphics.cpp 7 Jun 2010 08:25:01 -0000 1.17 +++ WPGraphics.cpp 8 Jun 2010 05:09:26 -0000 1.18 @@ -130,6 +130,7 @@ tmpMajorVersion = (unsigned char)(header.majorVersion()); if (tmpMajorVersion == 0x01) { + unsigned long returnPosition = graphics->tell(); /* Due to a bug in dumping mechanism, we produced * invalid WPG files by prepending a WPG1 header * to a valid WP file. Let us check this kind of files, @@ -140,6 +141,9 @@ graphics->seek(header.startOfDocument() + 16, WPX_SEEK_SET); tmpMajorVersion = (unsigned char)(header.majorVersion()); } + else + graphics->seek(returnPosition, WPX_SEEK_SET); + } } else |
From: Fridrich S. <str...@us...> - 2010-06-07 12:48:01
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv22380/src/lib Modified Files: WPG2Parser.cpp WPGSVGGenerator.cpp Log Message: converting partial ellipse to elliptical arc Index: WPG2Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.cpp,v retrieving revision 1.106 retrieving revision 1.107 diff -u -d -r1.106 -r1.107 --- WPG2Parser.cpp 6 Jun 2010 21:58:51 -0000 1.106 +++ WPG2Parser.cpp 7 Jun 2010 12:47:48 -0000 1.107 @@ -1559,29 +1559,60 @@ long cx = (m_doublePrecision) ? readS32() : readS16(); long cy = (m_doublePrecision) ? readS32() : readS16(); - TRANSFORM_XY(cx,cy); long radx = (m_doublePrecision) ? readS32() : readS16(); long rady = (m_doublePrecision) ? readS32() : readS16(); long ix = (m_doublePrecision) ? readS32() : readS16(); + ix += cx; long iy = (m_doublePrecision) ? readS32() : readS16(); - TRANSFORM_XY(ix,iy); + iy += cy; long ex = (m_doublePrecision) ? readS32() : readS16(); + ex += cx; long ey = (m_doublePrecision) ? readS32() : readS16(); - TRANSFORM_XY(ex,ey); + ey += cy; - ::WPXPropertyList propList; - propList.insert("svg:cx", (TO_DOUBLE(cx) / m_xres)); - propList.insert("svg:cy", (TO_DOUBLE(cy) / m_xres)); - propList.insert("svg:rx", (TO_DOUBLE(radx) / m_xres)); - propList.insert("svg:ry", (TO_DOUBLE(rady) / m_xres)); - if (objCh.rotate) - propList.insert("libwpg:rotate", objCh.rotationAngle, WPX_GENERIC); + TRANSFORM_XY(cx,cy); + TRANSFORM_XY(ix,iy); + TRANSFORM_XY(ex,ey); m_painter->setStyle( objCh.filled ? m_gradient : ::WPXPropertyListVector(), tmpStyle ); - m_painter->drawEllipse(propList); + + if (ix == ex && iy == ey) + { + ::WPXPropertyList propList; + propList.insert("svg:cx", (TO_DOUBLE(cx) / m_xres)); + propList.insert("svg:cy", (TO_DOUBLE(cy) / m_xres)); + propList.insert("svg:rx", (TO_DOUBLE(radx) / m_xres)); + propList.insert("svg:ry", (TO_DOUBLE(rady) / m_xres)); + if (objCh.rotate) + propList.insert("libwpg:rotate", objCh.rotationAngle, WPX_GENERIC); + + m_painter->drawEllipse(propList); + } + else + { + ::WPXPropertyList element; + ::WPXPropertyListVector path; + + element.insert("libwpg:path-action", "M"); + element.insert("svg:x", (TO_DOUBLE(ix)/m_xres)); + element.insert("svg:y", (TO_DOUBLE(iy)/m_yres)); + path.append(element); + element.clear(); + + element.insert("libwpg:path-action", "A"); + element.insert("svg:rx", (TO_DOUBLE(radx)/m_xres)); + element.insert("svg:ry", (TO_DOUBLE(rady)/m_yres)); + element.insert("svg:x", (TO_DOUBLE(ex)/m_xres)); + element.insert("svg:y", (TO_DOUBLE(ey)/m_yres)); + if (objCh.rotate) + element.insert("libwpg:rotate", objCh.rotationAngle, WPX_GENERIC); + path.append(element); + + m_painter->drawPath(path); + } WPG_DEBUG_MSG((" Center point x : %li\n", cx)); WPG_DEBUG_MSG((" Center point y : %li\n", cy)); Index: WPGSVGGenerator.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGSVGGenerator.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- WPGSVGGenerator.cpp 4 Jun 2010 09:23:13 -0000 1.36 +++ WPGSVGGenerator.cpp 7 Jun 2010 12:47:51 -0000 1.37 @@ -221,6 +221,14 @@ m_outputSink << doubleToString(72*(propList["svg:x2"]->getDouble())) << "," << doubleToString(72*(propList["svg:y2"]->getDouble())) << " "; m_outputSink << doubleToString(72*(propList["svg:x"]->getDouble())) << "," << doubleToString(72*(propList["svg:y"]->getDouble())); } + else if (propList["libwpg:path-action"] && propList["libwpg:path-action"]->getStr() == "A") + { + m_outputSink << "\nA"; + m_outputSink << doubleToString(72*(propList["svg:rx"]->getDouble())) << "," << doubleToString(72*(propList["svg:ry"]->getDouble())) << " "; + m_outputSink << (propList["libwpg:rotate"] ? propList["libwpg:rotate"]->getStr().cstr() : "0") << " "; + m_outputSink << "0,0 "; + m_outputSink << doubleToString(72*(propList["svg:x"]->getDouble())) << "," << doubleToString(72*(propList["svg:y"]->getDouble())); + } else if ((i >= path.count()-1 && i > 2) && propList["libwpg:path-action"] && propList["libwpg:path-action"]->getStr() == "Z" ) { isClosed = true; |
From: Fridrich S. <str...@us...> - 2010-06-07 08:25:12
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv21206/src/lib Modified Files: WPGHeader.cpp WPGraphics.cpp Log Message: Trying to handle some invalid documents that libwpd's dumping mechanism created due to a bug Index: WPGraphics.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGraphics.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- WPGraphics.cpp 30 Dec 2008 08:53:57 -0000 1.16 +++ WPGraphics.cpp 7 Jun 2010 08:25:01 -0000 1.17 @@ -56,6 +56,8 @@ } else graphics = input; + + graphics->seek(0, WPX_SEEK_SET); WPGHeader header; if(!header.load(graphics)) @@ -97,6 +99,8 @@ } else graphics = input; + + graphics->seek(0, WPX_SEEK_SET); WPG_DEBUG_MSG(("Loading header...\n")); unsigned char tmpMajorVersion = 0x00; @@ -124,6 +128,19 @@ // seek to the start of document graphics->seek(header.startOfDocument(), WPX_SEEK_SET); tmpMajorVersion = (unsigned char)(header.majorVersion()); + if (tmpMajorVersion == 0x01) + { + /* Due to a bug in dumping mechanism, we produced + * invalid WPG files by prepending a WPG1 header + * to a valid WP file. Let us check this kind of files, + * so that we can load our own mess too. */ + if (header.load(graphics) && header.isSupported()) + { + WPG_DEBUG_MSG(("An invalid graphics we produced :(\n")); + graphics->seek(header.startOfDocument() + 16, WPX_SEEK_SET); + tmpMajorVersion = (unsigned char)(header.majorVersion()); + } + } } else // here we force parsing of headerless pictures Index: WPGHeader.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPGHeader.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- WPGHeader.cpp 30 Dec 2008 08:53:57 -0000 1.7 +++ WPGHeader.cpp 7 Jun 2010 08:25:01 -0000 1.8 @@ -65,7 +65,7 @@ bool WPGHeader::load(WPXInputStream *input) { - input->seek(0, WPX_SEEK_SET); +// input->seek(0, WPX_SEEK_SET); unsigned long n = 0; unsigned char * prefix = (unsigned char *) input->read(26, n); |
From: Fridrich S. <str...@us...> - 2010-06-06 22:14:17
|
Update of /cvsroot/libwpg/libwpg/src/conv/raw In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv9361/src/conv/raw Modified Files: wpg2raw.cpp Log Message: fixing distcheck errors Index: wpg2raw.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/conv/raw/wpg2raw.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- wpg2raw.cpp 7 Sep 2009 09:41:28 -0000 1.24 +++ wpg2raw.cpp 6 Jun 2010 22:14:09 -0000 1.25 @@ -31,7 +31,6 @@ #include "libwpg.h" #include <libwpd-stream/libwpd-stream.h> #include <libwpd/libwpd.h> -#include "WPGGradient.h" class RawPainter : public libwpg::WPGPaintInterface { public: |