summaryrefslogtreecommitdiff
path: root/qt4/src/poppler-page.cc
diff options
context:
space:
mode:
Diffstat (limited to 'qt4/src/poppler-page.cc')
-rw-r--r--qt4/src/poppler-page.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/qt4/src/poppler-page.cc b/qt4/src/poppler-page.cc
index 69d38a87..3236ac1b 100644
--- a/qt4/src/poppler-page.cc
+++ b/qt4/src/poppler-page.cc
@@ -19,6 +19,7 @@
#define UNSTABLE_POPPLER_QT4
#include <poppler-qt4.h>
#include <QtCore/QFile>
+#include <QtCore/QMap>
#include <QtGui/QImage>
#include <QtGui/QPixmap>
#include <GlobalParams.h>
@@ -168,6 +169,8 @@ QList<TextBox*> Page::textList() const
return output_list;
}
+ QMap<TextWord *, TextBox*> wordBoxMap;
+
for (int i = 0; i < word_list->getLength(); i++) {
TextWord *word = word_list->get(i);
QString string = QString::fromUtf8(word->getText()->getCString());
@@ -175,10 +178,21 @@ QList<TextBox*> Page::textList() const
word->getBBox(&xMin, &yMin, &xMax, &yMax);
TextBox* text_box = new TextBox(string, QRectF(xMin, yMin, xMax-xMin, yMax-yMin));
+ text_box->m_data->hasSpaceAfter = word->hasSpaceAfter() == gTrue;
+ text_box->m_data->edge.reserve(word->getLength() + 1);
+ for (int j = 0; j <= word->getLength(); ++j) text_box->m_data->edge[j] = word->getEdge(j);
+
+ wordBoxMap.insert(word, text_box);
output_list.append(text_box);
}
+ for (int i = 0; i < word_list->getLength(); i++) {
+ TextWord *word = word_list->get(i);
+ TextBox* text_box = wordBoxMap[word];
+ text_box->m_data->nextWord = wordBoxMap[word->nextWord()];
+ }
+
delete word_list;
delete output_dev;