Antenna House PDF Tool API (C++) 8.0
PdfTk::PtlParamExtractText クラス

#include <PtlParamExtractText.h>

公開型

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
}

公開メンバ関数

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

詳解

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

PtlParamExtractText.h19 行目に定義があります。

列挙型メンバ詳解

◆ TEXT_TYPE

列挙値
TEXT_RAW 

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

TEXT_SORT 

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

PtlParamExtractText.h23 行目に定義があります。

◆ UNI_FLAG

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

列挙値
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 

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

PtlParamExtractText.h31 行目に定義があります。

構築子と解体子

◆ PtlParamExtractText() [1/2]

PdfTk::PtlParamExtractText::PtlParamExtractText ( )

コンストラクタ

例外
PtlException

◆ PtlParamExtractText() [2/2]

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

コピーコンストラクタ

引数
objコピー元オブジェクト。
例外
PtlException

関数詳解

◆ appendRect()

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

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

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

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

◆ operator=()

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

コピーオペレータ

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

◆ setDifferentTextOmitRatio()

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

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

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

引数
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は前者です。

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

◆ setInsertReturn()

void PdfTk::PtlParamExtractText::setInsertReturn ( bool insert)

改行を挿入するか設定。

※ setTextTypeでTEXT_SORTを設定した場合のみ有効

引数
insert挿入するならtrue。

◆ setOverlapAsLine()

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

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

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

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

◆ setSameTextOmitRatio()

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

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

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

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

◆ setTextOverlapRatio()

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

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

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

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

◆ setTextType()

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

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

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

引数
type[in] 検索するテキストのタイプを指定します。
例外
PtlException

◆ setUnicodeToRemove() [1/2]

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

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

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

引数
uniUnicode。

◆ setUnicodeToRemove() [2/2]

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

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

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

引数
flag削除フラグ。UNI_XXXで指定。

◆ setUnicodeToSpace() [1/2]

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

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

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

引数
uniUnicode。

◆ setUnicodeToSpace() [2/2]

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

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

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

引数
flag置換フラグ。UNI_XXXで指定。