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

PDFのページオブジェクトを表現したクラスです。 More...

#include <PtlPage.h>

Public Member Functions

int getHandle () const
 
 PtlPage ()
 コンストラクタ More...
 
 PtlPage (const PtlParamImagePage &paramImagePage)
 コンストラクタ More...
 
 PtlPage (const PtlPage &obj)
 コピーコンストラクタ alias copy More...
 
 ‾PtlPage ()
 デストラクタ
 
PtlPageoperator= (const PtlPage &obj)
 コピーオペレータ alias copy More...
 
PtlRect getViewBox ()
 ViewBoxを取得。 More...
 
void setViewBox (const PtlRect &rectMM)
 ViewBoxを設定。 More...
 
PtlRect getMediaBox ()
 MediaBoxを取得。 More...
 
void setMediaBox (const PtlRect &rectMM)
 MediaBoxを設定。 More...
 
bool hasCropBox () const
 PDFのページに/CropBoxエントリーがあるかどうかを取得。 More...
 
PtlRect getCropBox ()
 CropBoxを取得。 More...
 
void setCropBox (const PtlRect &rectMM)
 CropBoxを設定。 More...
 
bool hasBleedBox () const
 PDFのページに/BleedBoxエントリーがあるかどうかを取得。 More...
 
PtlRect getBleedBox ()
 BleedBoxを取得。 More...
 
void setBleedBox (const PtlRect &rectMM)
 BleedBoxを設定。 More...
 
void removeBleedBox ()
 BleedBoxを削除。 More...
 
bool hasTrimBox () const
 PDFのページに/TrimBoxエントリーがあるかどうかを取得。 More...
 
PtlRect getTrimBox ()
 TrimBoxを取得。 More...
 
void setTrimBox (const PtlRect &rectMM)
 TrimBoxを設定。 More...
 
void removeTrimBox ()
 TrimBoxを削除。 More...
 
bool hasArtBox () const
 PDFのページに/ArtBoxエントリーがあるかどうかを取得。 More...
 
PtlRect getArtBox ()
 ArtBoxを取得。 More...
 
void setArtBox (const PtlRect &rectMM)
 ArtBoxを設定。 More...
 
void removeArtBox ()
 ArtBoxを削除。 More...
 
PtlSize getSize ()
 ページサイズを取得。 More...
 
PtlContentgetContent ()
 ページコンテントを取得。 More...
 
void setContent (PtlContent &content)
 ページコンテントを設定。 More...
 
void zoom (float ratio)
 ページの拡大縮小。 More...
 
void setRotate (int value)
 回転角度を設定。 More...
 
int getRotateNative ()
 PDFのページに設定してある/Rotateの値を取得。 More...
 
void setRotateNative (int value)
 PDFのページの/Rotateに値を設定。 More...
 
bool hasAnnots () const
 注釈があるかどうかを取得。 More...
 
PtlAnnotsgetAnnots ()
 注釈コンテナを取得。 More...
 
bool hasThumbnail () const
 サムネイル画像を持っているかどうかを取得。 More...
 
void removeThumbnail ()
 サムネイル画像を削除。 More...
 
void setMask (const PtlParamSetMask &paramSetMask)
 マスク処理(墨消し)。 More...
 
int searchTextAndDoProcess (const PtlParamSearchText &paramSearchText)
 テキスト検索して後処理。 More...
 
PtlSearchTextResults searchText (const PtlParamSearchText &paramSearchText)
 テキスト検索。 More...
 

Detailed Description

PDFのページオブジェクトを表現したクラスです。

ページ番号は0オリジンとなっています。

Constructor & Destructor Documentation

◆ PtlPage() [1/3]

PdfTk::PtlPage::PtlPage ( )

コンストラクタ

Exceptions
PtlException

◆ PtlPage() [2/3]

PdfTk::PtlPage::PtlPage ( const PtlParamImagePage paramImagePage)

コンストラクタ

Parameters
paramImagePage画像のページ作成に使うパラメータ。
Exceptions
PtlException

◆ PtlPage() [3/3]

PdfTk::PtlPage::PtlPage ( const PtlPage obj)

コピーコンストラクタ alias copy

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

Member Function Documentation

◆ getAnnots()

PtlAnnots& PdfTk::PtlPage::getAnnots ( )

注釈コンテナを取得。

Returns
注釈コンテナ。
Exceptions
PtlException

◆ getArtBox()

PtlRect PdfTk::PtlPage::getArtBox ( )

ArtBoxを取得。

取得される値はPDFのページに設定しある/ArtBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にArtBoxがあるかということです。
PDFのページに/ArtBoxが設定されていない場合は、getCropBox()と同じ値が取得されます。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。

Returns
ArtBoxの矩形
Exceptions
PtlException

◆ getBleedBox()

PtlRect PdfTk::PtlPage::getBleedBox ( )

BleedBoxを取得。

取得される値はPDFのページに設定しある/BleedBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にBleedBoxがあるかということです。
PDFのページに/BleedBoxが設定されていない場合は、getCropBox()と同じ値が取得されます。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。

Returns
BleedBoxの矩形
Exceptions
PtlException

◆ getContent()

PtlContent& PdfTk::PtlPage::getContent ( )

ページコンテントを取得。

PtlContentを取得して描画する場合は、PtlPageがPtlPagesに追加されたもの、若しくはPtlPagesから取得されたものでなければなりません。

Returns
ページコンテント。
Exceptions
PtlException

◆ getCropBox()

PtlRect PdfTk::PtlPage::getCropBox ( )

CropBoxを取得。

取得される値はPDFのページに設定しある/CropBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にCropBoxがあるかということです。
PDFのページに/CropBoxが設定されていない場合は、MediaBoxと同じ値が取得されます。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。

Returns
CropBoxの矩形
Exceptions
PtlException

◆ getMediaBox()

PtlRect PdfTk::PtlPage::getMediaBox ( )

MediaBoxを取得。

取得される値はPDFのページに設定しある/MediaBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にMediaBoxがあるかということです。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。

Returns
MediaBoxの矩形
Exceptions
PtlException

◆ getRotateNative()

int PdfTk::PtlPage::getRotateNative ( )

PDFのページに設定してある/Rotateの値を取得。

PDFの辞書に設定してある/Rotateの値を取得します。
/Rotateの値に関わらず、Contentに記述してある内容は/Rotate 0の状態で記述してありますが、
ビューワによって表示される際に、/Rotateの値に従って時計回りに回転されることになります。

Returns
回転角度(時計回りに0, 90, 180, 270)。
Exceptions
PtlException

◆ getSize()

PtlSize PdfTk::PtlPage::getSize ( )

ページサイズを取得。

ビューワで表示されるページのサイズが取得されます。
単位はmmとなりますので注意してください。

Returns
ページサイズ
Exceptions
PtlException

◆ getTrimBox()

PtlRect PdfTk::PtlPage::getTrimBox ( )

TrimBoxを取得。

取得される値はPDFのページに設定しある/TrimBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にTrimBoxがあるかということです。
PDFのページに/TrimBoxが設定されていない場合は、getCropBox()と同じ値が取得されます。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。

Returns
TrimBoxの矩形
Exceptions
PtlException

◆ getViewBox()

PtlRect PdfTk::PtlPage::getViewBox ( )

ViewBoxを取得。

ビューワで表示されるページの矩形(ViewBoxと呼びます)が取得されます。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。

ViewBoxについて
ビューワで表示される領域というのはPDFのページに設定しある/MediaBoxと/CropBoxの交差する矩形となります。
ビューワはその矩形をページに設定してある/Rotateの値(0,90,180,270)によって回転して描画します。
ViewBoxというのはその描画された矩形となります。つまりビューワで見えているページの矩形そのものがViewBoxということになります。
ViewBoxは左下を原点(0,0)とし、右上は(ページサイズの横,ページサイズの縦)となります。

Returns
ViewBoxの矩形
Exceptions
PtlException

◆ hasAnnots()

bool PdfTk::PtlPage::hasAnnots ( ) const

注釈があるかどうかを取得。

Returns
true: 注釈がある、false: 注釈がない。
Exceptions
PtlException

◆ hasArtBox()

bool PdfTk::PtlPage::hasArtBox ( ) const

PDFのページに/ArtBoxエントリーがあるかどうかを取得。

Returns
true: ArtBoxがある、false: ArtBoxがない。
Exceptions
PtlException

◆ hasBleedBox()

bool PdfTk::PtlPage::hasBleedBox ( ) const

PDFのページに/BleedBoxエントリーがあるかどうかを取得。

Returns
true: BleedBoxがある、false: BleedBoxがない。
Exceptions
PtlException

◆ hasCropBox()

bool PdfTk::PtlPage::hasCropBox ( ) const

PDFのページに/CropBoxエントリーがあるかどうかを取得。

Returns
true: CropBoxがある、false: CropBoxがない。
Exceptions
PtlException

◆ hasThumbnail()

bool PdfTk::PtlPage::hasThumbnail ( ) const

サムネイル画像を持っているかどうかを取得。

Returns
true: サムネイル画像を持っている、false: サムネイル画像を持っていない。
Exceptions
PtlException

◆ hasTrimBox()

bool PdfTk::PtlPage::hasTrimBox ( ) const

PDFのページに/TrimBoxエントリーがあるかどうかを取得。

Returns
true: TrimBoxがある、false: TrimBoxがない。
Exceptions
PtlException

◆ operator=()

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

コピーオペレータ alias copy

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

◆ removeArtBox()

void PdfTk::PtlPage::removeArtBox ( )

ArtBoxを削除。

Exceptions
PtlException

◆ removeBleedBox()

void PdfTk::PtlPage::removeBleedBox ( )

BleedBoxを削除。

Exceptions
PtlException

◆ removeThumbnail()

void PdfTk::PtlPage::removeThumbnail ( )

サムネイル画像を削除。

Exceptions
PtlException

◆ removeTrimBox()

void PdfTk::PtlPage::removeTrimBox ( )

TrimBoxを削除。

Exceptions
PtlException

◆ searchText()

PtlSearchTextResults PdfTk::PtlPage::searchText ( const PtlParamSearchText paramSearchText)

テキスト検索。

検索できるのはコンテントに描画されるテキストエレメントからユニコードとして文字を取得できるもののみです。
検索するテキストはコンテントに記述されている順番に取得されるのでビューワで見える通りの文字の並びとは限りません。
またテキストに見えても実際は画像であったりパスであったりする場合もこれらは検索対象となりません。

Parameters
paramSearchTextテキスト検索のパラメータ
Returns
PtlSearchTextResults。
Exceptions
PtlException

◆ searchTextAndDoProcess()

int PdfTk::PtlPage::searchTextAndDoProcess ( const PtlParamSearchText paramSearchText)

テキスト検索して後処理。

検索できるのはコンテントに描画されるテキストエレメントからユニコードとして文字を取得できるもののみです。
検索するテキストはコンテントに記述されている順番に取得されるのでビューワで見える通りの文字の並びとは限りません。
またテキストに見えても実際は画像であったりパスであったりする場合もこれらは検索対象となりません。
パラメータとしてPtlParamSearchTextAndHighlightが使用された場合は、検索された文字列に対してHighlight注釈処理が行われます。
パラメータとしてPtlParamSearchTextAndSetMaskが使用された場合は、検索された文字列に対してMask処理が行われます。
※ 注意事項
Mask処理は検索されたものは無条件に処理されます。
定型文書でない一般文書などでは想定外のテキストがMask処理されてしまうことがありますのでこの関数の使用には
十分注意して下さい。
(例) "元日", "本日"のようにテキストが取得された場合、"日本"で検索するとヒットして"日"と"本"は削除されていまいます。

Parameters
paramSearchTextテキスト検索のパラメータ(PtlParamSearchTextAndHighlight若しくはPtlParamSearchTextAndSetMask)
Returns
検索されたテキストの数。
Exceptions
PtlException

◆ setArtBox()

void PdfTk::PtlPage::setArtBox ( const PtlRect rectMM)

ArtBoxを設定。

設定する値はPDFのページに設定される/ArtBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にArtBoxを設定するかということです。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。
ArtBoxはMediaBoxより後に設定してください。

Parameters
rectMMArtBoxの矩形
Exceptions
PtlException

◆ setBleedBox()

void PdfTk::PtlPage::setBleedBox ( const PtlRect rectMM)

BleedBoxを設定。

設定する値はPDFのページに設定される/BleedBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にBleedBoxを設定するかということです。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。
BleedBoxはMediaBoxより後に設定してください。

Parameters
rectMMBleedBoxの矩形
Exceptions
PtlException

◆ setContent()

void PdfTk::PtlPage::setContent ( PtlContent content)

ページコンテントを設定。

コンテントを編集した場合はsetContentしないと編集内容は反映されません。

Parameters
contentページコンテント。
Exceptions
PtlException

◆ setCropBox()

void PdfTk::PtlPage::setCropBox ( const PtlRect rectMM)

CropBoxを設定。

設定する値はPDFのページに設定される/CropBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にCropBoxを設定するかということです。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。
CropBoxはMediaBoxより後に設定してください。

Parameters
rectMMCropBoxの矩形
Exceptions
PtlException

◆ setMask()

void PdfTk::PtlPage::setMask ( const PtlParamSetMask paramSetMask)

マスク処理(墨消し)。

マスク矩形内のコンテントに描画されるエレメントを削除します。
墨消しはこの関数を用いることにより実現できます。
※ 制限事項
矩形にエレメント全体が含まれた場合はエレメントは削除されますが、エレメントの一部
が矩形に囲まれた場合、囲まれた部分の部分削除が出来るのはテキストと画像だけです。
画像の部分削除が行われた場合、残された部分の色目などを完全に再現できるとは限りません。

Parameters
paramSetMaskマスク設定のパラメータ
Exceptions
PtlException

◆ setMediaBox()

void PdfTk::PtlPage::setMediaBox ( const PtlRect rectMM)

MediaBoxを設定。

設定する値はPDFのページに設定される/MediaBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にMediaBoxを設定するかということです。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。
MediaBoxは他のBoxより先に設定してください。

Parameters
rectMMMediaBoxの矩形
Exceptions
PtlException

◆ setRotate()

void PdfTk::PtlPage::setRotate ( int  value)

回転角度を設定。

表示されるページを現在の状態からどれだけ時計回りに回転させるかを設定します。
角度は絶対値で90度単位になります。それ以外の値を指定した場合の動作は保証されません。
回転角度を設定する場合は他の関数より先に設定してください。

Parameters
value回転角度(時計回りに0, 90, 180, 270)
Exceptions
PtlException

◆ setRotateNative()

void PdfTk::PtlPage::setRotateNative ( int  value)

PDFのページの/Rotateに値を設定。

PDFの辞書にある/Rotateに値を設定します。
/Rotateの値に関わらず、Contentに記述してある内容は/Rotate 0の状態で記述してありますが、
ビューワによって表示される際に、/Rotateの値に従って時計回りに回転されることになります。

/Rotateに0以外の場合が設定されていてもビューワによる表示前の状態のことを考慮せずに、ビューワに
よって表示されている状態に描画できるのがPDFToolの特徴となっています。
しかしながら、ビューワによって回転される前の状態でページに描画したい用途もあるかもしれません。
そのような場合は、下記の様にすることで実現できます。

  1. getRotateNative()関数で/Rotateの値を取得。
  2. setRotateNativeに0を設定。
  3. ここで、ビューワによって回転される前の状態に対して描画を行います。
  4. setRotateNativeに1で取得した値を設定。

角度は絶対値で90度単位になります。それ以外の値を指定した場合の動作は保証されません。
回転角度を設定する場合は他の関数より先に設定してください。

Parameters
value回転角度(時計回りに0, 90, 180, 270)
Exceptions
PtlException

◆ setTrimBox()

void PdfTk::PtlPage::setTrimBox ( const PtlRect rectMM)

TrimBoxを設定。

設定する値はPDFのページに設定される/TrimBoxの値そのものでなく、ViewBoxの座標からの相対的な値となります。
つまりビューワで見えているページの矩形に対してどういう位置にTrimBoxを設定するかということです。
ViewBoxについての詳細はgetViewBox()関数に記述してあります。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。
TrimBoxはMediaBoxより後に設定してください。

Parameters
rectMMTrimBoxの矩形
Exceptions
PtlException

◆ setViewBox()

void PdfTk::PtlPage::setViewBox ( const PtlRect rectMM)

ViewBoxを設定。

ビューワで表示されるページの矩形(ViewBoxと呼びます)を設定します。
MediaBox,CropBoxに設定されます。
BleedBox,Trim,ArtBoxは削除されます。
座標の単位はmmで原点(0,0)は左下となりますので注意してください。

ViewBoxについて
ビューワで表示される領域というのはPDFのページに設定しある/MediaBoxと/CropBoxの交差する矩形となります。
ビューワはその矩形をページに設定してある/Rotateの値(0,90,180,270)によって回転して描画します。
ViewBoxというのはその描画された矩形となります。つまりビューワで見えているページの矩形そのものがViewBoxということになります。
ViewBoxは左下を原点(0,0)とし、右上は(ページサイズの横,ページサイズの縦)となります。

Parameters
rectMMViewBoxの矩形
Exceptions
PtlException

◆ zoom()

void PdfTk::PtlPage::zoom ( float  ratio)

ページの拡大縮小。

Parameters
ratio拡大縮小率
1.0が等倍です。0.1から10.0までの値を指定して下さい。