Index: svgplugin.cpp
===================================================================
--- svgplugin.cpp	(revision 16541)
+++ svgplugin.cpp	(working copy)
@@ -20,6 +20,7 @@
 #include "customfdialog.h"
 #include "fonts/scfontmetrics.h"
 #include "fpointarray.h"
+#include "gtwriter.h"
 #include "loadsaveplugin.h"
 #include "menumanager.h"
 #include "pageitem.h"
@@ -1485,7 +1486,55 @@
 		StartX -= chunkW / 2.0;
 	else if( gc->textAnchor == "end")
 		StartX -= chunkW;
+#ifdef IMPORT_TEXT_AS_TEXT
+  QString styleBaseName = "FromSVG#";
+  double RectW = fm.boundingRect(textString).width();
+  double height = fm.height();
+  int z = m_Doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified,
+            BaseX+StartX, BaseY+StartY, RectW, height, gc->LWidth, gc->FillCol,
+            gc->StrokeCol, true);
+  PageItem* ite = m_Doc->Items->at(z);
+  qDebug() << QString("font family %1 used in SVG").arg(textFont.family());
 
+  gtWriter* writer = new gtWriter(false, ite);
+  gtFont gtfont;
+  gtfont.setFamily(textFont.family());
+  gtfont.setSize(textFont.pointSize()*10); // gtFont expects it in 1/10 pt
+  gtfont.setColor(gc->FillCol);
+  gtfont.setStrokeColor(gc->StrokeCol);
+
+  // find style named beginning with styleBaseName's value, followed by the
+  // maximal number, extract the latter, add 1 to use it for the next style
+  unsigned int styleNo = 0;
+  const StyleSet<ParagraphStyle>& pstyles = ite->doc()->paragraphStyles();
+  int paragraphStylesCount = pstyles.count(); // I hope it's constant in
+                                                    // the following for loop
+  for (int i = 0; i < paragraphStylesCount; ++i)
+  {
+      QRegExp re(styleBaseName+"[0-9]+");
+      re.setPatternSyntax(QRegExp::Wildcard);
+      QString curStyleName = pstyles[i].displayName();
+      qDebug() << QString("currently checking style %1").arg(curStyleName);
+      if (re.exactMatch(curStyleName))
+      {
+        QString numberString =
+        curStyleName.right(curStyleName.size()-styleBaseName.size());
+        unsigned int curNumber = numberString.toUInt();
+        if (curNumber > styleNo)
+          styleNo = curNumber;
+      }
+  }
+  ++styleNo;
+  gtParagraphStyle gtstyle(QString(styleBaseName+"%1").arg(styleNo));
+  // QString gtstyleName = gtstyle.getName();
+  qDebug() << QString("current style is %1").arg(gtstyle.getName());
+  gtstyle.setFont(gtfont);
+  writer->append(textString, &gtstyle);
+  delete writer;
+  ite->layout();
+  finishNode(e, ite);
+  GElements.append(ite);
+#else
 	FPointArray textPath;
 	QString textFillColor   = gc->FillCol;
 	QString textStrokeColor = gc->StrokeCol;
@@ -1501,6 +1550,7 @@
 		finishNode(e, ite);
 		GElements.append(ite);
 	}
+#endif
 	currentPos.setX( currentPos.x() + width );
 	return GElements;
 }
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revision 16541)
+++ CMakeLists.txt	(working copy)
@@ -13,6 +13,11 @@
 
 SET(SCRIBUS_IMPORTSVG_PLUGIN "svgimplugin")
 
+# The experimental text-as-text importing from SVG
+IF(WANT_IMPORT_TEXT_AS_TEXT)
+  ADD_DEFINITIONS(-DIMPORT_TEXT_AS_TEXT)
+ENDIF(WANT_IMPORT_TEXT_AS_TEXT)
+
 QT4_WRAP_CPP(IMPORTSVG_PLUGIN_MOC_SOURCES ${IMPORTSVG_PLUGIN_MOC_CLASSES})
 
 ADD_LIBRARY(${SCRIBUS_IMPORTSVG_PLUGIN} MODULE ${IMPORTSVG_PLUGIN_SOURCES} ${IMPORTSVG_PLUGIN_MOC_SOURCES})
