PDFTool  7.0
Public Types | Public Member Functions | List of all members
PdfTk::PtlParamExtractText Class Reference

ページコンテントからのテキスト抽出処理のパラメータを表現したクラスです。 More...

#include <PtlParamExtractText.h>

Public Types

enum  TEXT_TYPE { TEXT_RAW = 1, TEXT_SORT = 2 }
 
enum  UNI_FLAG {
  AHEXTRACTTEXT_UNI_C0_CONTROLS = 0x00000001, AHEXTRACTTEXT_UNI_SPACE = 0x00000002, AHEXTRACTTEXT_UNI_NO_BREAK_SPACE = 0x00000004, AHEXTRACTTEXT_UNI_SOFT_HYPHEN = 0x00000008,
  AHEXTRACTTEXT_UNI_SPACES = 0x00000010, AHEXTRACTTEXT_UNI_IDEOGRAPHIC_SPACE = 0x00000020, AHEXTRACTTEXT_UNI_VARIATION_SELECTOR = 0x00000040, AHEXTRACTTEXT_UNI_REPLACEMENT_CHARACTER = 0x00000080,
  AHEXTRACTTEXT_UNI_ALL = 0x0FFFFFFF
}
 削除、若しくはスペース(U+0020)に変換するユニコード。 More...
 

Public Member Functions

int getHandle () const
 
 PtlParamExtractText ()
 コンストラクタ More...
 
 PtlParamExtractText (const PtlParamExtractText &obj)
 コピーコンストラクタ More...
 
 ‾PtlParamExtractText ()
 デストラクタ
 
PtlParamExtractTextoperator= (const PtlParamExtractText &obj)
 コピーオペレータ More...
 
void setTextType (TEXT_TYPE type)
 抽出するテキストのタイプを設定。 More...
 
void appendRect (const PtlRect &rectMM)
 テキスト抽出する範囲の矩形を追加。 More...
 
void setIgnoreActualText (bool ignoreActualText)
 ActualTextを無視するかを設定。 More...
 
void setTextOverlapRatio (float overlapRatio)
 テキストがテキスト抽出する範囲の矩形とどれくらい重なっていたら抽出対象とするか。 More...
 
void setOverlapAsLine (float overlap)
 文字と文字がどれだけ重なっていると同じ行とみなすかの設定。 More...
 
void setSameTextOmitRatio (float overlap)
 同じ文字が重なっている場合、文字と文字がどれだけ重なっていると取り除くかの設定。 More...
 
void setDifferentTextOmitRatio (float overlap, bool applyAtDifferentColor)
 違う文字が重なっている場合、文字と文字がどれだけ重なっていると取り除くかの設定。 More...
 
void setUnicodeToSpace (int flag)
 指定のUnicodeをSpaceに置き換えるか設定。 More...
 
void setUnicodeToSpace (CP_UChar uni)
 指定のUnicodeをSpaceに置き換えるか設定。 More...
 
void setUnicodeToRemove (int flag)
 指定のUnicodeを削除するか設定。 More...
 
void setUnicodeToRemove (CP_UChar uni)
 指定のUnicodeを削除するか設定。 More...
 

Detailed Description

ページコンテントからのテキスト抽出処理のパラメータを表現したクラスです。

Member Enumeration Documentation

◆ TEXT_TYPE

Enumerator
TEXT_RAW 

取得したテキストをそのまま抽出

TEXT_SORT 

取得したテキストを座標でソートして抽出

◆ UNI_FLAG

削除、若しくはスペース(U+0020)に変換するユニコード。

Enumerator
AHEXTRACTTEXT_UNI_C0_CONTROLS 

C0 Controls -> U+0000-U+001F

AHEXTRACTTEXT_UNI_SPACE 

Space -> U+0020

AHEXTRACTTEXT_UNI_NO_BREAK_SPACE 

NO-BREAK SPACE -> U+00A0

AHEXTRACTTEXT_UNI_SOFT_HYPHEN 

SOFT HYPHEN -> U+00AD

AHEXTRACTTEXT_UNI_SPACES 

Spaces -> U+2000-U+200B

AHEXTRACTTEXT_UNI_IDEOGRAPHIC_SPACE 

IDEOGRAPHIC SPACE -> U+3000

AHEXTRACTTEXT_UNI_VARIATION_SELECTOR 

VARIATION_SELECTOR -> U+FE00-U+FE0F

AHEXTRACTTEXT_UNI_REPLACEMENT_CHARACTER 

REPLACEMENT CHARACTER -> U+FFFD

AHEXTRACTTEXT_UNI_ALL 

上記全てを対象とする(今後フラグが増えたらそれも含む)。

Constructor & Destructor Documentation

◆ PtlParamExtractText() [1/2]

PdfTk::PtlParamExtractText::PtlParamExtractText ( )

コンストラクタ

Exceptions
PtlException

◆ PtlParamExtractText() [2/2]

PdfTk::PtlParamExtractText::PtlParamExtractText ( const PtlParamExtractText obj)

コピーコンストラクタ

Parameters
objコピー元オブジェクト。
Exceptions
PtlException

Member Function Documentation

◆ appendRect()

void PdfTk::PtlParamExtractText::appendRect ( const PtlRect rectMM)

テキスト抽出する範囲の矩形を追加。

テキストを抽出する矩形を設定しないとページ全体のテキストが取得されます。

Parameters
rectMM抽出矩形。
表示矩形(ViewBox)上の座標値をmm単位で指定してください。
ViewBoxの詳細については PtlPage#getViewBoxを参照してください。
Exceptions
PtlException

◆ operator=()

PtlParamExtractText& PdfTk::PtlParamExtractText::operator= ( const PtlParamExtractText obj)

コピーオペレータ

Parameters
objコピー元オブジェクト。

◆ setDifferentTextOmitRatio()

void PdfTk::PtlParamExtractText::setDifferentTextOmitRatio ( float  overlap,
bool  applyAtDifferentColor 
)

違う文字が重なっている場合、文字と文字がどれだけ重なっていると取り除くかの設定。

違う文字が重なっている場合、文字と文字がどれだけ重なっていると取り除くかの割合を設定します。
※ 設定しない場合はデフォルト値として0.0が設定されます。重なっていても取り除きません。
この設定はsetTextTypeでTEXT_SORTが設定された場合のみ有効です。

Parameters
overlap[in] 文字の重なり具合を割合でセットします。
applyAtDifferentColor[in] 色が違う場合にのみ適用するか設定します。

◆ setIgnoreActualText()

void PdfTk::PtlParamExtractText::setIgnoreActualText ( bool  ignoreActualText)

ActualTextを無視するかを設定。

ActualTextを無視するかを設定します。
※ 設定しない場合はデフォルト値としてfalseが設定されます。

ActualTextの具体例

/Span<</ActualText<FEFF9DD7>>> BDC % ActualTextでU+9DD7が指定されている
-1.8 13.571 Td
<1DDE>Tj % この文字はU+9D0E
EMC

文字がU+9D0EとなっていてもActualTextの設定がありU+9DD7となっていたらU+9DD7で抽出されます。
setIgnoreActualTextでtrueを設定するとU+9D0Eで抽出されます。

※ 注意事項
PDFにはActualTextが2箇所で使われています。
1つはコンテントのマーク付きコンテントで設定されているActualText。こちらは文字の置き換え用途で使われます。ActualTextの具体例で示したもの。
もう1つはタグの要素に付けられているActualText。こちらは画像などにつけて読み上げの時に読み上げられる名前です。
この関数で言うActualTextは前者です。

Parameters
ignoreActualText[in] ActualTextを無視する場合はtrueを指定します。

◆ setOverlapAsLine()

void PdfTk::PtlParamExtractText::setOverlapAsLine ( float  overlap)

文字と文字がどれだけ重なっていると同じ行とみなすかの設定。

文字と文字がどれだけ重なっていると同じ行とみなすかの割合を設定します。
※ 設定しない場合はデフォルト値として0.7が設定されます。7割が重なっていると同じ行とみなされます。
この設定はsetTextTypeでTEXT_SORTが設定された場合のみ有効です。

Parameters
overlap[in] 文字の重なり具合を割合でセットします。

◆ setSameTextOmitRatio()

void PdfTk::PtlParamExtractText::setSameTextOmitRatio ( float  overlap)

同じ文字が重なっている場合、文字と文字がどれだけ重なっていると取り除くかの設定。

同じ文字が重なっている場合、文字と文字がどれだけ重なっていると取り除くかの割合を設定します。
※ 設定しない場合はデフォルト値として0.0が設定されます。重なっていても取り除きません。
この設定はsetTextTypeでTEXT_SORTが設定された場合のみ有効です。

Parameters
overlap[in] 文字の重なり具合を割合でセットします。

◆ setTextOverlapRatio()

void PdfTk::PtlParamExtractText::setTextOverlapRatio ( float  overlapRatio)

テキストがテキスト抽出する範囲の矩形とどれくらい重なっていたら抽出対象とするか。

テキストがテキスト抽出する範囲の矩形とどれくらい重なっていたら抽出対象とするかを割合でセットします。 設定しない場合は、0.3が設定されたとみなされます。

Parameters
overlapRatio[in] テキストが矩形とどれくらい重なっていたら抽出対象とするかをセットします。(0<overlapRatio<=1)

◆ setTextType()

void PdfTk::PtlParamExtractText::setTextType ( TEXT_TYPE  type)

抽出するテキストのタイプを設定。

抽出するテキストのタイプを設定します。
※ 設定しない場合はデフォルト値としてTEXT_RAWが設定されます。

Parameters
type[in] 検索するテキストのタイプを指定します。
Exceptions
PtlException

◆ setUnicodeToRemove() [1/2]

void PdfTk::PtlParamExtractText::setUnicodeToRemove ( CP_UChar  uni)

指定のUnicodeを削除するか設定。

指定されたUnicodeを削除するか設定します。
※ 設定しない場合は削除しません。

Parameters
uniUnicode。

◆ setUnicodeToRemove() [2/2]

void PdfTk::PtlParamExtractText::setUnicodeToRemove ( int  flag)

指定のUnicodeを削除するか設定。

指定されたUnicodeを削除するか設定します。
※ 設定しない場合は削除しません。

Parameters
flag削除フラグ。UNI_XXXで指定。

◆ setUnicodeToSpace() [1/2]

void PdfTk::PtlParamExtractText::setUnicodeToSpace ( CP_UChar  uni)

指定のUnicodeをSpaceに置き換えるか設定。

指定されたUnicodeをSpace(U+0020)に置き換えるか設定します。
※ 設定しない場合はSpaceに置き換えません。

Parameters
uniUnicode。

◆ setUnicodeToSpace() [2/2]

void PdfTk::PtlParamExtractText::setUnicodeToSpace ( int  flag)

指定のUnicodeをSpaceに置き換えるか設定。

指定されたUnicodeをSpace(U+0020)に置き換えるか設定します。
※ 設定しない場合はSpaceに置き換えません。

Parameters
flag置換フラグ。UNI_XXXで指定。