📄 textpage.h.svn-base
字号:
/*************************************************************************** * Copyright (C) 2005 by Piotr Szymanski <niedakh@gmail.com> * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/#ifndef _KPDF_TETXTPAGE_H_#define _KPDF_TETXTPAGE_H_#include <qlist.h>#include <qmap.h>#include <qstringlist.h>#include "area.h"class TextSelection;/*! @enum SearchDir * The enum holding the direction of searching. *! @enum SearchDir FromTop * Searching from top of the page, next result is to be found, * there was no earlier search result. *! @enum SearchDir FromBottom * Searching from bottom of the page, next result is to be found, * there was no earlier search result. *! @enum SearchDir NextRes * Searching for the next result on the page, earlier result should be * located so we search from the last result not from the beginning of the * page. *! @enum SearchDir PrevRes * Searching for the previous result on the page, earlier result should be * located so we search from the last result not from the beginning of the * page. */typedef enum SearchDir{ FromTop, FromBottom, NextRes, PrevRes };/*! @struct KPDFTextEntity * @short Abstract textentity of KPDF * @par The context * A document can provide different forms of information about textual representation * of its contents. It can include information about positions of every character on the * page, this is the best possibility. * * But also it can provide information only about positions of every word on the page (not the character). * Furthermore it can provide information only about the position of the whole page's text on the page. * * Also some document types have glyphes - sets of characters rendered as one, so in search they should * appear as a text but are only one character when drawn on screen. We need to allow this. * @par The idea * We need several */struct KPDFTextEntity{ // QString txt; NormalizedRect* area; KPDFTextEntity(QString text, NormalizedRect* ar) : txt(text) { area=ar; }; ~KPDFTextEntity() { delete area; };};struct SearchPoint;class KPDFTextPage { public: RegularAreaRect* findText(int searchID, const QString &query, SearchDir & direct, bool strictCase, const RegularAreaRect *area); QString getText(const RegularAreaRect *rect) const; RegularAreaRect * getTextArea ( TextSelection* ) const; KPDFTextPage(QList<KPDFTextEntity*> words) : m_words(words) {}; KPDFTextPage() : m_words() {}; void append(QString txt, NormalizedRect* area) { m_words.append(new KPDFTextEntity(txt,area) ); }; ~KPDFTextPage(); private: RegularAreaRect * findTextInternalForward(int searchID, const QString &query, bool strictCase, const QList<KPDFTextEntity*>::Iterator &start, const QList<KPDFTextEntity*>::Iterator &end); QList<KPDFTextEntity*> m_words; QMap<int, SearchPoint*> m_searchPoints; };#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -