クラス名はPDFDocumentです。
bool openDocument(std::istream& stream, const wchar_t* passWord=NULL, DWORD loadStart=0,
const wchar_t* appName=NULL, const wchar_t* keyName=NULL, const wchar_t* value=NULL);
bool OpenDocument(Stream stream, String passWord, long loadStart, String appName, String keyName,
String value); (.Net)
引数:
stream:PDFデータストリーム
passWord:パスワード
loadStart:2ページ目以降の解析開始までの時間(msec)。
appName:アプリケーション名
keyName:アプリケーション辞書キー名
value:アプリケーション辞書キー値
戻り値:
true 成功
false失敗 失敗した場合、エラーコードを検査します。
エラーコードAvsViewerSDK::PDFDocument::ERROR_PASSWORDは、PDFにパスワードの設定があり、指定したパスワードが一致しないことを示します。パスワードの入力を行い、再度openDocument()を呼び出します。
解説:
bool openDocument(const wchar_t* fileName, const wchar_t* passWord=NULL,
DWORD loadStart=0, const wchar_t* appName=NULL, const wchar_t* keyName=NULL,
const wchar_t* value=NULL);
bool OpenDocument(String fileName, String passWord, long loadStart, String appName,
String keyName, String value); (.Net)
引数:
fileName:PDFファイル名
passWord:パスワード
loadStart:2ページ目以降の読み込み開始までの時間(msec)。
appName:アプリケーション名
keyName:アプリケーション辞書キー名
value:アプリケーション辞書キー値
戻り値:
true 成功
falseの場合はストリームオープンと同様にエラーを検査します。
解説:
void closeDocument();
void CloseDocument(void); (.Net)
戻り値:
なし
void startLoadThread();
void StartLoadThread(void); (.Net)
解説:
後から読み込みスレッドを開始する場合に呼びます。openDocument()でloadStartに0を指定し、表示も行わない場合にこのメソッドで開始を指定できます。
既に読み込みスレッドがある場合は何もせず戻ります。
bool isOpen() const;
property bool IsOpen (.Net) 読み取りのみ
戻り値:
true オープン済み。
bool isEnableCopyContents() const;
property bool IsEnableCopyContents (.Net) 読み取りのみ
戻り値:
true コピー可能
解説:
PDFファイルにコピー不可の指定があっても、イメージ作成機能(makeXXXPage)は動作します。PDFファイルに従ったアクセス制御はアプリケーションの責任で行ってください。
bool isEnablePrintout() const;
property bool IsEnablePrintout (.Net)読み取りのみ
戻り値:
true 印刷可能
解説:
PDFファイルが印刷不可の場合、印刷は行えません。
static int getSDKVersion(wchar_t* buffer, int size);
property String SDKVersion
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getVersion(wchar_t* buffer, int size) const;
property String Version (.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getCreationDate(wchar_t* buffer, int size) const;
property String CreationDate (.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getModifyDate(wchar_t* buffer, int size) const;
property String ModifyDate(.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getTitle(wchar_t* buffer, int size) const;
property String Title(.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getAuthor(wchar_t* buffer, int size) const;
property String Author(.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getSubject(wchar_t* buffer, int size) const;
property String Subject(.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getKeywords(wchar_t* buffer, int size) const;
property String Keywords(.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getCreator(wchar_t* buffer, int size) const;
property String Creator(.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getProducer(wchar_t* buffer, int size) const;
property String Producer(.Net)読み取りのみ
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
int getPageCount() const;
property int PageCount(.Net)読み取りのみ
戻り値:
ページ数
int getLoadCount() const;
property int LoadCount(.Net)読み取りのみ
戻り値:
解析済みページ数
解説:
内部で解析済みページ数を返します。このページはすぐに表示することができます。
解析済みでないページも表示できますが、表示時に解析を行います。
SIZE getPageSize(int pageNo) const;
AvsSize GetPageSize(int pageNo);(.Net)
戻り値:
ページサイズ(単位:TWIP)
void drawPage(int pageNo, HDC hdc, const POINT* dispOrg, float scale, bool drawBg) const;
void DrawPage(int pageNo, IntPtr hdc, AvsPoint dispOrg, float scale, bool drawBg); (.Net)
void drawScalingPage(int pageNo, HDC hdc, const POINT* dispOrg, float scaleH, float scaleV, bool drawBg) const;
void DrawScalingPage(int pageNo, IntPtr hdc, AvsPoint dispOrg, float scaleH, float scaleV, bool drawBg); (.Net)
void drawPage(int pageNo, HDC hdc, const POINT* dispOrg, float scale, bool drawBg, bool drawResult) const;
void DrawPage(int pageNo, IntPtr hdc, AvsPoint dispOrg, float scale, bool drawBg, bool drawResult); (.Net)
void drawScalingPage(int pageNo, HDC hdc, const POINT* dispOrg, float scaleH, float scaleV, bool drawBg, bool drawResult) const;
void DrawScalingPage(int pageNo, IntPtr hdc, AvsPoint dispOrg, float scaleH, float scaleV, bool drawBg, bool drawResult); (.Net)
引数:
pageNo:表示ページ番号(1オリジン)
hdc:Windowデバイスコンテキスト
dispOrg:表示オフセット(デバイス単位。例:デバイス解像度 600 dpiの場合、100 ドットは
デバイス上で100/600 inch = 1/6 inch = 25.4/6 mm の計算になります)
scale:表示倍率(1.0f == 100%)
drawBg:true バックグラウンドも描画
scaleH:水平方向表示倍率(1.0f == 100%)
scaleV:垂直方向表示倍率(1.0f == 100%)
drawResult:true検索結果を表示する
解説:
表示後スレッドを作成し、ページ読み込み処理を開始します。
印刷だけの目的では、スレッドは作成されません。
void setRemoteDesktopDisplayMode(bool remote);
property bool RemoteDesktopDisplayMode (.Net)
引数:
remote:trueを指定するとリモートデスクトップ用の表示を行う
解説:
リモートデスクトップではGdiPlusで直接表示すると、きれいな描画を得られません。リモートデスクトップの場合、ビットマップを作成し、ディスプレイに転送することで、欠けることのない表示を行います。
既定値はリモートデスクトップ環境ではtrueに設定されています。それ以外はfalse です。
drawPage()にディスプレイのデバイスコンテキストが指定された場合処理します。
その他のデバイスコンテキストには適用されません。
bool isRemoteDesktopDisplayMode() const;
property bool RemoteDesktopDisplayMode (.Net)
戻り値:
リモートデスクトップ表示モードならtrue
void setBufferDisplayMode(bool buffer);
property bool BufferDisplayMode (.Net)
引数:
buffer:trueを指定するとバッファ表示を行う
解説:
表示イメージをビットマップにコピーし、再表示のときビットマップイメージを使います。
表示する領域が単純な矩形の場合にビットマップを作成します。他のウインドウが上にある場合は作成できません。縦スクロールが起きた場合はビットマップもスクロールしイメージを追加処理します。横スクロールが起きるとビットマップは無効になります。
ビットマップはページ毎に作成します。表示しなくなったページのビットマップは破棄されます。
既定値はtrue です。
drawPage()にディスプレイのデバイスコンテキストが指定された場合処理します。その他のデバイスコンテキストには適用されません。
リモートデスクトップ表示のときも有効です。
bool isBufferDisplayMode() const;
property bool BufferDisplayMode (.Net)
戻り値:
バッファ表示モードならtrue
void clearDisplayBuffer(HWND hWnd, int pageNo);
void ClearDisplayBuffer(IntPtr hWnd, int pageNo); (.Net)
引数:
hWnd:削除するウインドウ。NULLなら全てのウインドウ
pageNo:削除するページ。0なら全てのページ
解説:
上位アプリケーションで背景を描画し、背景を変更した場合などに呼び出します。
保存しているビットマップを無効化します。
static bool isSmoothingAvailable();
property bool IsSmoothingAvailable (.Net)
戻り値:
スムージングが可能ならtrue
解説:
PDFViewerSDKではGdiplusを利用してスムージング表示を行います。
bool setSmoothing(bool text, bool lineart, bool image);
void SetSmoothing(bool text, bool lineart, bool image); (.Net)
引数:
text:文字のスムージング(AntiAlias)を行う
lineart:線画のスムージングを行う
image:イメージのスムージングを行う
戻り値:
再表示が必要ならtrue
解説:
GDI/GDI+の場合に有効です。設定が無い場合のデフォルトは全てtrueです。
変更はいつでも行えます。設定変更し、再表示してください。
isSmoothingAvailable()がfalseの場合は無効です。
V3.0から表示だけでなく、印刷、イメージ作成にも有効になりました。
void getSmoothing(bool& text, bool& lineart, bool& image);
void GetSmoothing(out bool text, out bol lineart, out bol image); (.Net)
引数:
text:文字のスムージング(AntiAlias)設定
lineart:線画のスムージング設定
image:イメージのスムージング設定
解説:
現在のスムージング設定を取得します。
bool isCharacterGDI() const;
property bool CharacterGDI (.Net)
戻り値:
文字で表示ならtrue埋め込まれたフォントで表示する場合はfalse
void setCharacterGDI(bool character);
property bool CharacterGDI (.Net)
引数:
character:文字で表示する場合true埋め込まれたフォントで表示する場合はfalse
解説:
文字にフォントが埋め込まれている場合、文字で表示するか埋め込まれたフォントで表示するかを選択できます。
フォントによってはライセンスのため正しく表示できない場合があります。フォントの表示が正しくない場合、文字で表示するように設定します。
文字(コード)が無い場合は埋め込まれたフォントで表示します。
既定値は false です。
bool isDirect2D() const;
property bool Direct2D (.Net)
戻り値:
Direct2Dを使用する場合はtrue 使用しない場合はfalse
void setDirect2D(bool direct2D);
property bool Direct2D (.Net)
引数:
Direct2Dを使用する場合はtrue 使用しない場合はfalse
解説:
表示、画像出力にDirect2Dを使用します。
trueの場合でも、印刷にはDirect2Dは使用されません。
bool getShowAnnotation() const;
property bool ShowAnnotation (.Net)
戻り値:
注釈を表示する場合はtrue 注釈を表示しない場合はfalse
void setShowAnnotation(bool show);
property bool ShowAnnotation (.Net)
引数:
show:注釈を表示する場合はtrue 注釈を表示しない場合はfalse
解説:
外観ストリームを持つ注釈について、注釈の外観を表示するかを設定します。
外観ストリームを持たない注釈は設定値をtrueにしても表示されません。
PDF表示や画像出力の場合には、注釈フラグのHidden、NoViewフラグが考慮されます。
印刷の場合には Hidden、Printフラグが考慮されます。
既定値は false です。
bool getFastPreviewMode() const;
property bool FastPreviewMode (.Net)
戻り値:
高速プレビューモードの場合はtrue そうでない場合はfalse
void setFastPreviewMode(bool preview);
property bool FastPreviewMode (.Net)
引数:
高速プレビューモードを使用する場合はtrue 使用しない場合はfalse
解説:
高速プレビューモードは、レンダリングは低品質ですが通常よりも高速にレンダリングするモードです。高速プレビューモードの設定はPDFをオープンする前に行ってください。オープン後の呼び出しは可能ですが、設定は反映されません。
制限事項:
bool getDisableBlend() const; (.Net未対応)
戻り値:
ブレンドモード無効の場合はtrue そうでない場合はfalse
void setDisableBlend (bool disableBlend); (.Net未対応)
引数:
ブレンドモードを無効にする場合はtrue 有効にする場合はfalse
解説:
setDirect2D(false)のしてGDI/GDI++を使用している場合に、表示や印刷の高速化のためにブレンドモードのレンダリング処理を無効にします。表示/印刷/画像ファイル出力の場合が対象です。setDirect2D(true)としてDirect2Dを使用する場合は、表示/画像ファイル出力にはこの設定は反映されません。この場合であっても印刷については、GDI/GDI++が使用されますので、ブレンドモード無効設定の対象になります。
制限事項:
void setShowAnnotation(bool show);
property String WatermarkText (.Net)
引数:
text:ウォータマーク文字列
解説:
ウォータマークとして出力する文字列を設定します。’\n’で改行し複数行の文字列を設定することもできます。
void setWatermarkText(const wchar_t* text);
property String WatermarkText (.Net)
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数
bufferがNULLの場合は必要なバッファの文字数を返す
void setWatermarkFontFamily(const wchar_t* family);
property String WatermarkFontFamily (.Net)
引数:
family:ウォータマーク表示フォント名
int getWatermarkFontFamily(wchar_t* buffer, int size) const;
property String WatermarkFontFamily (.Net)
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数
bufferがNULLの場合は必要なバッファの文字数を返す
void setWatermarkFontWeight(const wchar_t* weight);
property String WatermarkFontWeight (.Net)
引数:
weight:ウォータマークフォントウエイト
解説:
”700”、”bold”などを設定します。
int getWatermarkFontWeight(wchar_t* buffer, int size) const;
property String WatermarkFontWeight (.Net)
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
void setWatermarkFontStyle(const wchar_t* style);
property String WatermarkFontStyle (.Net)
引数:
style:ウォータマーク表示フォントスタイル
解説:
”italic”を設定します。
int getWatermarkFontStyle(wchar_t* buffer, int size) const;
property String WatermarkFontStyle (.Net)
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
void setWatermarkOpacity(const wchar_t* opacity);
property String WatermarkOpacity (.Net)
引数:
opacity:ウォータマーク不透明度
解説:
”0.3”,”50%”などの不透明度を設定します。
int getWatermarkOpacity(wchar_t* buffer, int size) const;
property String WatermarkOpacity (.Net)
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。BufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.NET)
bool startPrint(HDC hdc, const DEVMODEW* devmode, const DOCINFOW* docInfo,
bool paperSelect = true, bool scaling = false) const;
bool StartPrint(IntPtr hdc, IntPtr devmode, IntPtr docInfo,
bool paperSelect); (.Net)
bool StartPrint(IntPtr hdc, IntPtr devmode, IntPtr docInfo,
bool paperSelect, bool scaling); (.Net)
引数:
hdc:プリンタデバイスコンテキスト
devmode:DEVMODE構造体
docinfo:DOCINFO構造体
paperSelect:true PDFのページに合わせて用紙を自動で選択する
false DEVMODE構造体に設定された用紙サイズを使用する
scaling:trueページを用紙に合わせる
戻り値:
true ::StartDoc()に成功した。
解説:
::StartDoc()を呼び出します。成功した場合は、必ずendPrint()またはabortPrint()を呼び出してください
void endPrint() const;
void EndPrint(void); (.Net)
解説:
::EndDoc()を呼び出し印刷を終了します
void abortPrint() const;
void AbortPrint(void); (.Net)
解説:
::AbortDoc()を呼び出し印刷を中止します
void printPage(int pageNo, bool printMark) const;
void PrintPage(int pageNo, bool printMark); (.Net)
引数:
pageNo:印刷するページ番号(1オリジン)
printMark:検索結果を印刷に反映する
解説:
::StartPage()から::EndPage()の処理を行います。
印刷を行うにはstartPrint()を呼び出し成功したならば、印刷したいページを指定しprintPage()を繰り返し呼び出します。最後にendPage()で終了します。
サンプルプログラムも参照してください。
bool startPrintExt(HDC hdc, const DEVMODEW* devmode, const DOCINFOW* docInfo,
bool paperSelect = true, bool fit = false, float scale = 1.0f,
PAPERALIGNH halign = PALIGNH_CENTER,
PAPERALIGNV valign = PALIGNV_CENTER) const;
bool StartPrintExt(IntPtr hdc, IntPtr devmode, IntPtr docInfo,
bool paperSelect, bool fit, float scale,
PARENALIGNH halign, PARENALIGNV valign); (.Net)
bool startPrintExt2(HDC hdc, const DEVMODEW* devmode, const DOCINFOW* docInfo,
bool paperSelect = true,
PAGESCALING pagescaling = PAGESCALING_NONE, float scale = 1.0f,
PAPERALIGNH halign = PALIGNH_CENTER,
PAPERALIGNV valign = PALIGNV_CENTER) const;
bool StartPrintExt2(IntPtr hdc, IntPtr devmode, IntPtr docInfo,
bool paperSelect, PAGESCALING pagescaling, float scale,
PARENALIGNH halign, PARENALIGNV valign); (.Net)
引数:
hdc:プリンタデバイスコンテキスト
devmode:DEVMODE構造体
docinfo:DOCINFO構造体
paperSelect:true PDFのページに合わせて用紙を自動で選択する
false DEVMODE構造体に設定された用紙サイズを使用する
fit:trueページを用紙に合わせる
scale:スケーリング倍率(fitの時は無効)
halign:水平配置
enum PAPERALIGNH {
PALIGNH_LEFT, // 左揃え
PALIGNH_CENTER, // 中央揃え
PALIGNH_RIGHT // 右揃え
};
valign:垂直配置
enum PAPERALIGNV {
PALIGNV_TOP, // 上揃え
PALIGNV_CENTER, // 中央揃え
PALIGNV_BOTTOM // 下揃え
};
pagescaling:ページの拡大/縮小
enum PAGESCALING {
PAGESCALING_NONE, // なし
PAGESCALING_FIT, // 用紙に合わせる
PAGESCALING_SHRINK // 大きいページを縮小
};
戻り値:
true ::StartDoc()に成功した。
解説:
::StartDoc()を呼び出します。startPrint()を参照してください。
アプリケーションが用紙を選択する場合paperSelect=falseとします。SDKは用紙方向のみを設定します。
PDFを用紙の印字領域に合わせて印刷する場合fit=trueとします。
scaleを指定し用紙をはみ出す場合もhalign,valignは有効です。左上、中央、右下を合わせることができます。
bool isGdiPlusRasterOperation() const;
property bool GdiPlusRasterOperation (.Net)
戻り値:
画像出力においてイメージの変換、縮小化にGdiPlusを使用する場合true
void setGdiPlusRasterOperation(bool bUse) const;
property bool GdiPlusRasterOperation (.Net)
戻り値:
bUse:画像出力においてイメージの変換、縮小化にGdiPlusを使用する場合true。
既定値は false です。
bool makeBmpPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, const RECT& imageRect, std::ostream& stream, bool printMark)
const;
bool MakeBmpPage(int pageNo, int dpi, String scale, int height, IMAGE_COLOR color,
AvsRect imageRect, Stream stream, bool printMark);
bool makeBmpPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, const RECT& imageRect, const wchar_t* fileName, bool printMark) const;
bool MakeBmpPage(int pageNo, int dpi, String scale, int height, IMAGE_COLOR color,
AvsRect imageRect, String fileName, bool printMark); (.Net)
bool makeBmpPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, const RECT& imageRect, IStreamPtr stream, bool printMark)
const;
※上記以外に、引数を省略した関数が利用できます
引数:
pageNo:BMPを作成するページ番号(1オリジン) ※必須
dpi:スケーリング時のDPI値(1以上、1440以下) ※必須。
1440dpiを超える場合1440dpiで処理します。
scale:出力時のスケール文字列。100%以下、”1”==”100%”,”100px”は幅の指定 ※必須
height:出力イメージの最大高さ(Pixel) 、0は高さ指定なし。※オプション(省略時0)
dpi と scaleから決定された高さが指定値を超える場合、指定値で出力します。
その場合の幅はページのアスペクト比から計算されます。
color:色数 ※省略時 IMAGECOLOR_COLOR
enum IMAGE_COLOR {
IMAGECOLOR_COLOR, // フルカラー
IMAGECOLOR_256COLOR, // 256色カラー
IMAGECOLOR_GRAYSCALE, // グレースケール
IMAGECOLOR_MONOCHROME, // モノクローム
IMAGECOLOR_BLACK // テキスト、線画のハーフトーンなし
};
imageRect:イメージを作成するページ内の領域。空の矩形はページ全体
※省略時、空の矩形(ページ全体)
stream:BMPを出力するストリーム
printMark:検索結果をイメージに反映する ※必須
fileName:出力ファイル名
戻り値:
ファイルがオープンできない、出力に失敗した場合false
注意:
std:ostreamインタフェースはSDKと同じバージョンのコンパイラのみ利用できます。
bool makeJpegPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, int quality, bool progressive, const RECT& imageRect,
std::ostream& stream, bool printMark) const;
bool MakeJpegPage(int pageNo, int dpi, String scale, int height, IMAGE_COLOR color,
int quality, bool progressive, AvsRect imageRect, Stream stream, bool printMark);
(.Net)
bool makeJpegPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, int quality, bool progressive, const RECT& imageRect,
const wchar_t* fileName, bool printMark) const;
bool MakeJpegPage(int pageNo, int dpi, String scale, int height, IMAGE_COLOR color,
int quality, bool progressive, AvsRect imageRect, String fileName, bool printMark);
(.Net)
bool makeJpegPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, int quality, bool progressive, const RECT& imageRect,
IStreamPtr stream, bool printMark) const;
※上記以外に、引数を省略した関数が利用できます
引数:
pageNo:JPEGを作成するページ番号(1オリジン) ※必須
dpi:スケーリング時のDPI値(1以上、1440以下) ※必須。1440dpiを超える場合1440dpiで処理します。
scale:出力時のスケール文字列。100%以下、”1”==”100%”,”100px”は幅の指定 ※必須
height:出力イメージの最大高さ(Pixel) 、0は高さ指定なし。※オプション(省略時0)
dpi と scaleから決定された高さが指定値を超える場合、指定値で出力します。
その場合の幅はページのアスペクト比から計算されます。
※省略時0
color:色数 ※省略時 IMAGECOLOR_COLOR
enum IMAGE_COLOR {
IMAGECOLOR_COLOR, // フルカラー
IMAGECOLOR_256COLOR, // 256色カラー
IMAGECOLOR_GRAYSCALE, // グレースケール
IMAGECOLOR_MONOCHROME, // モノクローム
IMAGECOLOR_BLACK // テキスト、線画のハーフトーンなし
};
quality:JPEG変換品質 ※省略時および1~100以外の場合は 80 として処理します。
progressive:Progressive JPEGを作成する ※省略時 false
imageRect:イメージを作成するページ内の領域。空の矩形はページ全体 ※省略時、空の矩形(ページ全体)
stream:JPEGを出力するストリーム
printMark:検索結果をイメージに反映する ※必須
fileName:出力ファイル名
戻り値:
ファイルがオープンできない、出力に失敗した場合false
注意:
std:ostreamインタフェースはSDKと同じバージョンのコンパイラのみ利用できます。
IMAGECOLOR_MONOCHROME、IMAGECOLOR_BLACKはサポートされません。
指定してもIMAGECOLOR_GRAYSCALEとなります。
bool makePngPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, bool interlace, const RECT& imageRect, std::ostream& stream,
bool printMark) const;
bool MakePngPage(int pageNo, int dpi, String scale, int height, IMAGE_COLOR color,
bool interlace, AvsRect imageRect, Stream stream, bool printMark); (.Net)
bool makePngPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, bool interlace, const RECT& imageRect,
const wchar_t* fileName, bool printMark) const;
bool MakePngPage(int pageNo, int dpi, String scale, int height, IMAGE_COLOR color,
bool interlace, AvsRect imageRect, String fileName, bool printMark); (.Net)
bool makePngPage(int pageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, bool interlace, const RECT& imageRect, IStreamPtr stream,
bool printMark) const;
※上記以外に、引数を省略した関数が利用できます
引数:
pageNo:PNGを作成するページ番号(1オリジン) ※必須
dpi:スケーリング時のDPI値(1以上、1440以下) ※必須。1440dpiを超える場合1440dpiで処理します。
scale:出力時のスケール文字列。100%以下、”1”==”100%”,”100px”は幅の指定 ※必須
height:出力イメージの最大高さ(Pixel) 、0は高さ指定なし。※オプション(省略時0)
dpi と scaleから決定された高さが指定値を超える場合、指定値で出力します。
その場合の幅はページのアスペクト比から計算されます。
color:色数 ※省略時 IMAGECOLOR_COLOR
enum IMAGE_COLOR {
IMAGECOLOR_COLOR, // フルカラー
IMAGECOLOR_256COLOR, // 256色カラー
IMAGECOLOR_GRAYSCALE, // グレースケール
IMAGECOLOR_MONOCHROME, // モノクローム
IMAGECOLOR_BLACK // テキスト、線画のハーフトーンなし
};
interlace:Interlace PNGを作成する ※省略時 false
imageRect:イメージを作成するページ内の領域。空の矩形はページ全体 ※省略時、空の矩形(ページ全体)
stream:PNGを出力するストリーム
printMark:検索結果をイメージに反映する ※必須
fileName:出力ファイル名
戻り値:
ファイルがオープンできない、出力に失敗した場合false
注意:
std:ostreamインタフェースはSDKと同じバージョンのコンパイラのみ利用できます。
bool makeTiffPage(int startPageNo, int endPageNo, int dpi, const wchar_t* scale,
int height, IMAGE_COLOR color, const RECT& imageRect, std::ostream& stream,
TIFFCOMPRESSION comp, int quality, bool printMark) const;
bool MakeTiffPage(int startPageNo, int endPageNo, int dpi, String scale, int height,
AvsRect imageRect, Stream stream, bool printMark);
bool makeTiffPage(int startPageNo, int endPageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, const RECT& imageRect, const wchar_t* fileName,
TIFFCOMPRESSION comp, int quality, bool printMark) const;
bool MakeTiffPage(int startPageNo, int endPageNo, int dpi, String scale, int height,
IMAGE_COLOR color, AvsRect imageRect, String fileName, TIFFCOMPRESSION comp,
int quality, bool printMark); (.Net)
bool makeTiffPage(int startPageNo, int endPageNo, int dpi, const wchar_t* scale, int height,
IMAGE_COLOR color, const RECT& imageRect, IStreamPtr stream,
TIFFCOMPRESSION comp, int quality, bool printMark) const;
※上記以外に、引数を省略した関数が利用できます
引数:
startPageNo:TIFFを作成する開始ページ番号(1オリジン) ※必須
endPageNo:終了ページ番号 ※必須
dpi:スケーリング時のDPI値(1以上、1440以下) ※必須。1440dpiを超える場合1440dpiで処理します。
scale:出力時のスケール文字列。100%以下、”1”==”100%”,”100px”は幅の指定 ※必須
height:出力イメージの最大高さ(Pixel) 、0は高さ指定なし。※オプション(省略時0)
dpi と scaleから決定された高さが指定値を超える場合、指定値で出力します。
その場合の幅はページのアスペクト比から計算されます。
color:色数 ※省略時 IMAGECOLOR_COLOR
enum IMAGE_COLOR {
IMAGECOLOR_COLOR, // フルカラー
IMAGECOLOR_256COLOR, // 256色カラー
IMAGECOLOR_GRAYSCALE, // グレースケール
IMAGECOLOR_MONOCHROME, // モノクローム
IMAGECOLOR_BLACK // テキスト、線画のハーフトーンなし
};
imageRect:イメージを作成するページ内の領域。空の矩形はページ全体 ※必須
stream:TIFFを出力するストリーム
printMark:検索結果をイメージに反映する ※必須
fileName:出力ファイル名
comp:圧縮方法の指定 ※省略時、圧縮なし
enum TIFFCOMPRESSION {
TIFFCOMP_None = 0, // 圧縮なし
TIFFCOMP_LZW, // LZW圧縮
TIFFCOMP_DCT, // JPEG圧縮
TIFFCOMP_Flate, // Flate圧縮
TIFFCOMP_RunLength, // ランレングス
TIFFCOMP_CCITT3, // CCITT G3圧縮
TIFFCOMP_CCITT4 // CCITT G4圧縮
};
quality:JPEG変換品質(圧縮方法がDCT(JPEG)の場合有効)
※省略時および1~100以外の場合は 80 として処理します。
戻り値:
ファイルがオープンできない、出力に失敗した場合false
注意:
std:ostreamインタフェースはSDKと同じバージョンのコンパイラのみ利用できます。
void setCurrentPage(int pageNo) const;
void SetCurrentPage(int pageNo); (.Net)
引数:
pageNo:検索ページ番号(1オリジン)
解説:
searchTextでの検索位置をpageNoの先頭に設定します。
ページ数より大きな数を指定すると最後のページの最終位置になります。
void setSearchPageCount(int count) const;
void SetSearchPageCount(int count); (.Net)
引数:
count:検索ページ数
解説:
searchText,searchAllで検索するページ数を設定します。
0は未設定、ページ終了まで検索します。
bool searchText(const wchar_t* str, bool ignoreCase, bool ignoreWidth, bool reverse) const;
bool SearchText(String str, bool ignoreCase, bool ignoreWidth, bool reverse); (.Net)
引数:
str:検索文字列
ignoreCase:true大文字小文字を区別しない
ignoreWidth:true全角半角を区別しない
reverse:true上検索
戻り値:
true検索文字列が見つかった
解説:
検索文字列が無い場合、検索状態は変更されません
bool searchAll(const wchar_t* str, bool ignoreCase, bool ignoreWidth, bool reverse) const;
bool SearchAll(String str, bool ignoreCase, bool ignoreWidth, bool reverse); (.Net)
引数:
str:検索文字列
ignoreCase:true大文字小文字を区別しない
ignoreWidth:true全角半角を区別しない
reverse:true上検索 (V5.0MR1以降)
戻り値:
true検索文字列が見つかった
解説:
文書全体から文字列を検索します。複数検索される場合もあります。
検索文字列が無い場合、検索状態は変更されません
bool searchNext(bool reverse) const;
bool SearchNext(bool reverse); (.Net)
引数:
reverse:true上検索
戻り値:
true検索文字列が見つかった
解説:
文字列検索の場合はsearchText()で検索した位置から次の検索を行います
全検索の場合は検索済み文字列の次の要素へ移動します
bool clearSearch() const;
bool ClearSearch(void); (.Net)
戻り値:
true検索状態を解除した。再表示が必要
void clearCurrentMark() const;
void ClearCurrentMark(void); (.Net)
解説:
全検索した現在位置のマークを解除します。
int getSearchPosition(RECT& rect, bool bBox=false) const;
int GetSearchPosition(out AvsRect rect, bool bBox); (.Net)
int getSearchPositionRegion(HRGN& hRgn) const;
int GetSearchPositionRegion(out AvsRegion hRgn); (.Net)
引数:
rect:検索文字列矩形を受け取るRECT構造体
bBox:true検索文字列全体の矩形を得る
hRgn:検索文字列リージョン
戻り値:
検索文字列があるページ番号(1オリジン)。0は検索状態ではない
解説:
検索状態にある場合、これらの関数で現在の位置(検索でハイライトされた領域)を取得できます。複数行にまたがる文字列にヒットした場合はこの領域は単純な矩形にならず複数の矩形を合成した領域になります。このような場合、関数によって取得する情報が異なります。
getSearchPositionでは取得する結果は矩形になります。
またgetSearchPositionRegionでは、現在の位置は HRGN型として得られます。検索結果の範囲が複数行にまたがる場合、リージョンは複数の矩形を合成した領域です。取得したhRgnは呼び出し側でDeleteObject()してください。
HRGNはWin32APIに渡すことで描画など使用できます。HRGNや関連するAPIについて [1]を参照してください。HRGNを構成する個々の矩形はRGNDATA構造体から取得することができます。[2] ただし、.NET/.NET Frameworkの場合は対応するAPIがありませんのでP/Invokeなどを利用してWin32 APIでRGNDATAを扱う必要があります。この場合、AvsRect の GetPointer()メソッドで HRGNを取得することができます。
参考URL
[1] https://learn.microsoft.com/en-us/windows/win32/gdi/regions
[2] https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-rgndata
HRGN getPageSearchRegion(int pageNo) const;
AvsRegion GetPageSearchRegion(int pageNo); (.Net)
引数:
pageNo:取得するページ
戻り値:
検索結果のリージョン
解説:
全検索をしたときの指定ページの検索された文字列のリージョンを取得します。
リージョンは呼び出し側でDeleteObject()してください。
bool isSearched() const;
property bool IsSearched (.Net) 読み取りのみ
戻り値:
true検索状態(文字列検索、全検索)
bool isSearchedAll() const;
property bool IsSearchedAll (.Net) 読み取りのみ
戻り値:
true全検索状態
int getMarkupCount() const;
property int MarkupCount (.Net) 読み取りのみ
戻り値:
全検索で見つかった個数
void setSearchedColor(COLORREF selectText, COLORREF selectBack, COLORREF currentText, COLORREF currentBack) const;
void SetSearchedColor(AvsColor selectText, AvsColor selectBack, AvsColor currentText, AvsColor currentBack); (.Net)
引数:
selectText:検索した文字列の色
selectBack:検索した文字列の背景色
currentText:現在位置の文字列の色
currentBack:現在位置の文字列の背景色
int getTextInRect(int pageNo, const RECT* rect, wchar_t* buffer, int size) const;
String GetTextInRect(int pageNo, AvsRect rect); (.Net)
引数:
pageNo:指定矩形ページ番号(1オリジン)
rect:矩形、NULLの場合はページ全体
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。bufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.Net)
解説:
指定した矩形に完全に含まれるテキストを取得します。
getSearchPositionで取得した矩形を使う場合は、その矩形を1TWIP単位上下左右に拡げた矩形を渡してください。
bool setSelectAll(bool select) const;
bool SetSelectAll(bool select); (.Net)
引数:
select:全選択状態
戻り値:
以前の状態
int getAllText(wchar_t* buffer, int size) const;
String GetAllText(); (.Net)
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字。bufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.Net)
解説:
全選択状態のテキストを取得します。
setSelectAll(true)に設定して取得します。
読み込み済みページまでのテキストのみ取得できます。
void setReverseTextRect(int pageNo, const RECT* rect,
COLORREF text=RGB(255,255,255), COLORREF back=RGB(0,0,0)) const;
void SetReverseTextRect(int pageNo, AvsRect rect, AvsColor text, AvsColor back); (.Net)
引数:
pageNo:矩形ページ番号
rect:矩形、NULLは解除
text:文字色
back:背景色
解説:
指定した矩形内の文字列をtext,backの色で表示するよう設定します。
矩形内のテキストはgetTextInRect()で取得することができます。
rectにNULLを指定すると設定を解除します。
表示の優先順位は、全選択状態>矩形選択>検索状態になります。
int getPageRotation(int pageNo) const;
int GetPageRotation(int pageNo); (.Net)
引数:
pageNo:回転を取得するページ番号
戻り値:
ページの回転角度(0, 90, 180, 270)
int setPageRotation(int pageNo, int rotation) const;
int SetPageRotation(int pageNo, int rotation); (.Net)
引数:
pageNo:回転を設定するページ番号
rotation:新しい回転角度(0, 90, 180, 270)
戻り値:
設定されたページの回転角度(0, 90, 180, 270)
解説:
回転を変更し再表示してください。ページの幅、高さは変更されます。
LINK_ACTION hitTestAnchor(int pageNo, const POINT& mousePos, RECT* anchorRect) const;
LINK_ACTION HitTestAnchor(int pageNo, AvsPoint mousePos, out AvsRect anchorRect); (.Net)
引数:
pageNo:ヒットテストを行うページ番号
mousePos:マウス位置
anchorRect:アンカー矩形を取得するRECT
戻り値:
マウス位置のリンク注釈アクション
enum LINK_ACTION {
ACTIONTYPE_None = 0, // アクションなし
ACTIONTYPE_GoTo, // Gotoアクション
ACTIONTYPE_GoToR, // GotoRアクション
ACTIONTYPE_Launch, // Launchアクション
ACTIONTYPE_URI // URIアクション
};
int getInternalTarget(RECT* targetRect) const;
int GetInternalTarget(out AvsRect% targetRect);
引数:
targetRect:飛び先の矩形を取得するRECT
戻り値:
飛び先のページ番号(0は無効)
解説:
前回のhitTestAnchor()で得られたリンク注釈がPDF内(GoTo)の場合、その飛び先を取得します。
int getExternalUri(wchar_t* buffer, int size) const;
property String ExternalUri (.Net)
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数
bufferがNULLの場合は必要なバッファの文字数を返す
解説:
前回のhitTestAnchor()で得られたリンク注釈が外部ファイル(GoToR,Launch,URI)の場合、その飛び先のURIを取得します。
GoToR,Launchでファイルが相対指定で、PDFのopen()がファイル名指定の場合、開いているPDFの相対ファイルとして実際のファイル名を返します。
URIの相対指定はPDFのURI辞書の/Baseの指定があればそこからの相対として実際のURIを返します。
簡単なリンク注釈の使い方がサンプルプログラムに実装してあります。参照してください。
void setGenericFont(const wchar_t* script, const wchar_t* genericFont,
const wchar_t* fontname);
void SetGenericFont(String script, String genericFont, String fontname); (.Net)
引数:
script:文字のスクリプト。日本は”ja”
genericFont:genericフォント名。”serif”, “sans-serif”
fontname:フォント名
解説:
PDFにフォントファイルがなく指定されているフォント名が探せない場合、スクリプトごとgenericフォント名に登録されているフォントを使用します。
genericフォント名はPDFフォントデスクリプタのFlagsにSerifが指定されている場合”sefif”、指定されていなければ”sans-serif”になります。
デフォルトでは日本語の”serif”は”MS 明朝”です。これを”MS P明朝”に指定する場合は
setGenericFont(“ja”, “serif”, “MS P明朝”);
とします。
呼び出しはオープンの前に行ってください。
void setLoadPageCount(int count);
property int LoadPageCount (.Net)
引数:
count:メモリに読み込むページ数。初期値200。値範囲:10以上、上限なし。
解説:
メモリに読み込むページ数を設定します。
呼び出しはオープンの前に行ってください。
設定したページ数よりPDFのページ数が多いと、設定したページ数までメモリに持ちます。
ファイル名でオープンした場合はファイルがオープンしたままになります。
オープンしたままにしたくない場合はストリームでオープンしてください。
void setLoadMemoryLimit(DWORD limit);
property UInt32 LoadMemoryLimit
引数:
limit:プロセスヒープメモリの上限。(単位Byte、KB未満切捨て)
初期値500MB。値範囲:0 以上、上限なし。
解説:
プロセスのヒープメモリの上限を設定します。
呼び出しはオープンの前に行ってください。
プロセスのヒープメモリが設定した値を超えると、読み込みスレッドを打ち切り、そのときのページ数までメモリに保持します。
ファイル名でオープンした場合はファイルがオープンしたままになります。
オープンしたままにしたくない場合はストリームでオープンしてください。
ストリームでオープンする場合、内部のメモリストリームにコピーしますので、ファイルサイズ分のメモリが必要となります。ファイル名でオープンする場合は、ストリームへのコピーは行いませんのでメモリ消費が少なくなります。
int getPageTextPosition(int pageNo, const POINT& mousePos) const;
int GetPageTextPosition(int pageNo, AvsPoint mousePos); (.Net)
引数:
pageNo:位置を取得するページ番号
mousePos:マウス位置
戻り値:
テキスト位置
解説:
マウス位置のテキスト位置を取得します。
サンプルではOnLButtonDown()で選択開始、終了位置を取得しています。
OnMouseMove()で終了位置を取得、更新し、再描画範囲を設定します。
HRGN getPageTextRegion(int pageNo, int start, int end) const;
AvsRegion GetPageTextRegion(int pageNo, int start, int end); (.Net)
HRGN getPageTextRegion(int pageNo, int start, int end, bool encodeV) const;
AvsRegion GetPageTextRegion(int pageNo, int start, int end, bool encodeV); (.Net)
引数:
pageNo:範囲を取得するページ番号
start:選択開始位置
end:選択終了位置
encodeV:trueの場合は縦書きテキスト。falseでは縦書き以外
戻り値:
開始から終了までのテキストのリージョン
解説:
取得したHRGNは呼び出し側でDeleteObject()してください。
ページをまたがる範囲の場合(1ページ目startから2ページ目endなど)、テキスト位置がページの先頭の場合はTEXTPOSITION_FIRSTを、ページ最後の場合はTEXTPOSITION_LASTを指定してください。
getPageTextRegion(1, start, TEXTPOSITION_LAST); // 1ページ目
getPageTextRegion(2, TEXTPOSITION_FIRST, end); // 2ページ目
int getPageTextString(int pageNo, o, int start, int end, wchar_t* buffer, int size) const;
String GetPageTextString(int pageNo, int start, int end); (.Net)
引数:
pageNo:テキストのあるページ番号
start:選択開始位置
end:選択終了位置
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。bufferがNULLの場合は必要なバッファの文字数を返す
取得した文字列 (.Net)
HRGN getTextRegionInRect(int pageNo, const RECT* rect) const;
AvsRegion GetTextRegionInRect(int pageNo, AvsRect rect); (.Net)
HRGN getTextRegionInRect(int pageNo, const RECT* rect, bool encodeV) const;
AvsRegion GetTextRegionInRect(int pageNo, AvsRect rect, bool encodeV); (.Net)
引数:
pageNo:指定矩形ページ番号(1オリジン)
rect:矩形、NULLの場合はページ全体
encodeV:trueの場合は縦書きテキスト。falseでは縦書き以外
戻り値:
矩形内テキストのリージョン
解説:
取得したHRGNは呼び出し側でDeleteObject()してください。
int getTextInfoInRect(int pageNo, const RECT* rect, TextInfo* buffer, int size) const;
ArrayList GetTextInfoInRect(int pageNo, AvsRect rect); (.Net)
C++
enum {
TI_MAX_TEXT_LEN = 4,
TI_MAX_FONTNAME_LEN = 128
};
enum {
WM_f_isRtlOrBtt = 1 << 0,
WM_f_isVerticalText = 1 << 1,
WM_f_isBPDirLtrOrBtt = 1 << 2
};
enum WritingModeEnum {
WM_lr_tb = 0,
WM_rl_tb = WM_f_isRtlOrBtt,
WM_tb_rl = WM_f_isVerticalText,
WM_bt_rl = WM_f_isRtlOrBtt | WM_f_isVerticalText,
WM_lr_bt = WM_f_isBPDirLtrOrBtt,
WM_rl_bt = WM_f_isRtlOrBtt | WM_f_isBPDirLtrOrBtt,
WM_tb_lr = WM_f_isVerticalText | WM_f_isBPDirLtrOrBtt,
WM_bt_lr = WM_f_isRtlOrBtt | WM_f_isVerticalText | WM_f_isBPDirLtrOrBtt
};
class TextInfo {
public:
wchar_t text[TI_MAX_TEXT_LEN];
RECT rect;
int baseline;
int fontSize;
wchar_t fontName[TI_MAX_FONTNAME_LEN];
bool isNewLine;
int writingMode;
bool isVertical;
};
.NET Framework /.NET (C#)
public enum AvsWritingMode {
WM_lr_tb = 0,
WM_rl_tb = 1, //WM_f_isRtlOrBtt,
WM_tb_rl = 2, //WM_f_isVerticalText,
WM_bt_rl = 3, //WM_f_isRtlOrBtt | WM_f_isVerticalText,
WM_lr_bt = 4, //WM_f_isBPDirLtrOrBtt,
WM_rl_bt = 5, //WM_f_isRtlOrBtt | WM_f_isBPDirLtrOrBtt,
WM_tb_lr = 6, //WM_f_isVerticalText | WM_f_isBPDirLtrOrBtt,
WM_bt_lr = 7, //WM_f_isRtlOrBtt | WM_f_isVerticalText | WM_f_isBPDirLtrOrBtt
}
public class AvsTextInfo {
public String Text;
public AvsRect Rect;
public int Baseline;
public int FontSize;
public String FontName;
public bool IsNewLine;
public int PageNumber;
public AvsWritingMode WritingMode;
public bool IsVertical;
}
引数:
pageNo:指定矩形ページ番号(1オリジン)
rect:矩形、NULLの場合はページ全体
buffer: 取得したテキスト情報(TextInfoクラス)を格納する配列
size:バッファのサイズ
戻り値:
取得されたサイズ
bufferがNULLの場合は必要なバッファのサイズを返す
解説:
指定ページの指定された矩形内に完全に含まれる文字の情報を取得します。
・フォント名はベースフォント名を取得します。
・文字の矩形、ベースラインは論理座標におけるページの原点に対する位置になります。
・改行位置には、isNewLine=trueである文字情報が含まれます。isNewLine=trueの場合、
TextInfoのその他のメンバー変数は無効です。
・writingModeは文字列の方向です。以下の数値で表されます。方向は PDF Viewer API の座標
系における見かけ上の方向を表します。ページ回転も考慮されます。
WM_lr_tb (0) 左から右
WM_rl_tb (1) 右から左
WM_tb_rl (2) 上から下
WM_bt_rl (3) 下から上
WM_lr_bt (4) 左から右(WM_lr_tbの上下反転)
WM_rl_bt (5) 右から左(WM_rl_tbの上下反転)
WM_tb_lr (6) 上から下(WM_tb_rlの左右反転)
WM_bt_lr (7) 下から上(WM_bt_rlの左右反転)
・isVertical は内部のPDFのフォントが縦書き(tue)用か横書き(false)用かを表します。
必ずしも見かけ上の縦書きか横書きかとは一致しません。
制限事項:
・座標変換により文字に回転や歪み(skew)がある場合は正しい情報が取得できません。
・現在の実装では、テキストのベースラインに一定量変化があるときに改行と判定しています。縦書きや斜めに傾いている場合には正しく機能しません。
・改行位置の判定はPDF仕様では明確に既定されないため、弊社リーダーの実装依存の動作になります。このため、他社のリーダーと同一にはなりません。
・座標変換に0/90/180/270度以外の回転がある場合は文字列の方向が正しく取得できません。
int getPageTextInfo(int pageNo, int start, int end, TextInfo* buffer, int size) const;
※本API は C++ I/Fのみです。
引数:
pageNo:指定矩形ページ番号(1オリジン)
start:選択開始位置
end:選択終了位置
buffer: 取得したテキスト情報(TextInfoクラス)を格納する配列
size:バッファのサイズ
戻り値:
取得されたサイズ
bufferがNULLの場合は必要なバッファのサイズを返す
解説:
指定ページの指定された範囲の文字の情報を取得します。
取得できる情報(AvsTextInfo)について、getTextInfoInRectメソッドの解説を参照ください。
制限事項:
getTextInfoInRectメソッドの制限事項を参照ください。
int getPagePathInRect(int pageNo, const RECT* rect, PDFPath** list) const;
enum PDFPathOp { // パス生成オペレータ
PathOp_Unknown,
PathOp_m,
PathOp_l,
PathOp_c,
PathOp_v,
PathOp_y,
PathOp_h,
PathOp_re
};
enum PDFPaintOp { // パスペイントオペレータ
PaintOp_Unknown,
PaintOp_S,
PaintOp_s,
PaintOp_f,
PaintOp_F,
PaintOp_f_,
PaintOp_B,
PaintOp_B_,
PaintOp_b,
PaintOp_b_,
PaintOp_n,
PaintOp_W,
PaintOp_W_
};
class PDFSubPath { // sub path クラス
public:
int size; // subpath を構成する点の数
POINT* points; // subpath を構成する点の配列
PDFPathOp pathOp; // subpath のオペレータ
};
class PDFPath { // path クラス
public:
int size; // subpath の数
PDFSubPath* subpaths; // subpath の配列
PDFPaintOp paintOp; // パスペイントオペレータ
int lineWidth; //
};
※本API は C++ I/Fのみです。
引数:
pageNo:指定矩形ページ番号(1オリジン)
rect:矩形、NULLの場合はページ全体
path: 取得したパスを格納する配列へのポインタ
戻り値:
取得されたパスの個数
解説:
指定ページの指定された矩形内に完全に含まれるパスをすべて取得します。取得される
パスには実際に描画されるパスだけでなく、クリッピング用のパスなどすべてのパスが
含まれます。
パスがどのように描画されるかは、PDFPathクラスのpaintOpメンバ変数のパスペイントオペレータ(enum PDFPaintOp型)で判定してください。パスペイントオペレータの詳細はISO32000-2の「8.5.3Path-Painting Operators」をご覧ください。
パスは複数のサブパス(PDFSubPathクラス)で構成されます。パスの構成については、ISO32000-2の「8.5.2Path Construction Operators」をご覧ください。
取得されるパス情報はAPI 側でメモリが割り当てられます。メモリの廃棄はアプリケーション側で行ってください。
void setOutputColorProfile(std::istream& outputRGBProfile);
void SetOutputColorProfile(Stream outputRGBProfile); (.Net)
void setRGBColorProfile(std::istream& readRGBProfile);
void SetRGBColorProfile(Stream readRGBProfile); (.Net)
void setGrayscaleColorProfile(std::istream& readGrayscaleProfile);
void SetGrayscaleColorProfile(Stream readGrayscaleProfile); (.Net)
void setCMYKColorProfile(std::istream& readCMYKProfile);
void SetCMYKColorProfile(Stream readCMYKProfile); (.Net)
void setOutputColorProfile(const wchar_t* outputRGBProfile);
void SetOutputColorProfile(String outputRGBProfile); (.Net)
void setRGBColorProfile(const wchar_t* readRGBProfile);
void SetRGBColorProfile(String readRGBProfile); (.Net)
void setGrayscaleColorProfile(const wchar_t* readGrayscaleProfile);
void SetGrayscaleColorProfile(String readGrayscaleProfile); (.Net)
void setCMYKColorProfile(const wchar_t* readCMYKProfile);
void SetCMYKColorProfile(String^ readCMYKProfile); (.Net)
引数:
outputRGBProfile:表示用RGBカラープロファイル
readRGBProfile:PDF RGBカラープロファイル
readGrayscaleProfile:PDF GrayScaleカラープロファイル
readCMYKProfile:PDF CMYKカラープロファイル
解説:
カラープロファイルの指定はopenDocument()前に行ってください。
PDFファイルをオープン後にプロファイルを指定した場合、次回のオープンまで反映されません。
bool hasError() const;
property bool HasError (.Net) 読み取りのみ
引数:
戻り値:
true エラーがある
解説:
エラーは複数ある場合があります。エラーがある場合はgetErrorMessage()で得られるメッセージを表示し、abandonError()またはclearError()でエラーを廃棄してください。廃棄しない場合、エラーが発生する度にエラーは蓄積されていきます。API呼出が成功した場合でも致命的でないエラー(警告)が発生する場合があります。
bool isFatalError() const;
property bool IsFatalError (.Net)
戻り値:
true エラーが致命的エラーである
解説:
蓄積された最初のエラーについて確認します。
unsigned short getErrorCode() const;
property unsigned short ErrorCode (.Net)
戻り値:
エラー番号
解説:
蓄積された最初のエラーのエラー番号を返します。
int getErrorMessage(wchar_t* buffer, int size) const;
property String ErrorMessage (.Net)
引数:
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。bufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.Net)
解説:
蓄積された最初のエラーのエラーメッセージを取得します。
void abandonError() const;
void AbandonError(void); (.Net)
解説:
蓄積されたエラーのうち、最初のエラーを一つ廃棄します
void clearError() const;
void ClearError(void); (.Net)
解説:
エラーを全て廃棄します
static int getLicenseInfo(LicenseInfoType type, wchar_t* buffer, int size) const;
String GetLicenseInfo(AvsLicenseInfoType type)(.Net)
引数:
type:取得するライセンス情報の種別
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした文字数。bufferがNULLの場合は必要なバッファの文字数を返す (C++)
取得した文字列 (.Net)
C++
enum LicenseInfoType {
LI_PATH,
LI_SERIAL,
LI_COMPANY,
LI_SECTION,
LI_USERNAME,
LI_MAINTENANCE_LIMIT,
};
.NET Framework /.NET (C#)
public enum class AvsLicenseInfoType {
LI_PATH,
LI_SERIAL,
LI_COMPANY,
LI_SECTION,
LI_USERNAME,
LI_MAINTENANCE_LIMIT,
};
enum値 |
値 |
説明 |
LI_PATH |
0 |
ライセンスファイル(pdfviewersdk.lic)の絶対パス |
LI_SERIAL |
1 |
シリアルナンバー |
LI_COMPANY |
2 |
会社名 |
LI_SECTION |
3 |
部署名 |
LI_USERNAME |
4 |
ユーザー名 |
LI_MAINTENANCE_LIMIT |
5 |
保守期限 |
解説:
指定されたライセンス情報を取得します。
ライセンスファイルに登録がない場合、空文字列が返る場合があります。
ライセンスファイルのロードに失敗した場合、LI_PATHの戻り値としてエラーメッセージを返します。
int getImageInfo(int pageNo, const RECT* rect, ImageInfo* buffer, int size) const;
ArrayList getImageInfo (int pageNo, AvsRect rect); (.Net)
int getImageInfo(int pageNo, const POINT& point, ImageInfo* buffer, int size) const;
ArrayList getImageInfo (int pageNo, AvsPoint point); (.Net)
引数:
pageNo:表示ページ番号(1オリジン)
rect:矩形、NULLの場合はページ全体
pt: 点
buffer:文字列バッファ
size:バッファサイズ(文字数)
戻り値:
コピーした画像情報数。bufferがNULLの場合は必要なバッファ数を返す (C++)
C++
class ImageInfo {
public:
RECT rect;
int width;
int height;
};
.NET Framework /.NET (C#)
public class AvsImageInfo {
public AvsRect Rect;
public int Width;
public int Height;
}
解説:
rectを指定した場合は、矩形に含まれる画像の情報、ptを指定した場合は、ptを含む画像の情報を取得します。