サムネイルを表示するコントロールです。フォームに貼り付けるだけで簡単に利用することができます。
以下ではVisualStudio C#での初歩的な使用方法を説明します。.NET Framwork版を利用するには事前に.NET Framework 4.6.2以降のインストールが必要です。 詳細は「4.3動作に必要なモジュール、手続き等」をご覧ください。以下は32bit版での説明です。
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
pdfThumbnailCtrl1.OpenDocument(openFileDialog1.FileName, "");
}
コントロールには多くの機能がデフォルトで実装されており、ほとんどの機能はボタンを用意してメソッドを呼び出すだけで、もしくはファイルを開いただけで、簡単に利用できるようになっています。ここでは各機能についてアプリケーション側が実装すべきこと、関知できることについて簡単に説明します。詳しくは付属のサンプルプログラムを参考にしてください。
機能概要 |
説明 |
ファイルのドラッグ&ドロップ |
デフォルトではドロップされたファイルの一つを開きます。 異なる動作をおこないたい場合はDragDropFilesイベントをハンドリングしてください。 |
コントロール間の同期(編集) |
デフォルトではなにもしません。 同期をとるにはDocumentOpenedイベントでAttachPDFDocumentしてください。同期をとるとページの入れ替えや回転といった編集処理をおこなったとき、同期中の全コントロールに反映されます。 |
コントロール間の同期(ページ遷移) |
デフォルトではなにもしません。 同期をとるにはPageTurnedイベントでGotoPageしてください。 |
右クリックメニュー |
デフォルトで用意されています。 これを任意のものに変更することはできません。 |
ページのドラッグ&ドロップ |
ページのドラッグ&ドロップによる移動、コピー処理がデフォルトで用意されています。 同ドキュメント内では[Ctrl]を押しながらドロップするとコピーになります。また、異なるドキュメントからドラッグ&ドロップでページをもってくることが可能です。 |
ページの移動、コピー、削除 |
ページを処理するためのGUIインタフェースはデフォルトで用意されています。 ショートカットキー[Delete]/[BackSpace]/[Esc]/[Ctrl]/[Shift]/方向キーがデフォルトでハンドリングされています。意図的な別処理への置き換えでなければアプリケーション側ではハンドリングしないでください。 |
アンドゥー、リドゥー |
デフォルトで実装されています。 独自のアンドゥー処理を差し込むことはできません。 ショートカットキー[Ctrl]+[Z]/[Y]がデフォルトでハンドリングされていますので意図的に別の処理に置き換えたいのでなければアプリケーション側ではハンドリングしないでください。 |
スクロール |
スクロールバークリック、キー押下などによるスクロール処理がデフォルトで実装されています。 ショートカットキー[Home]/[End]/[PageUp]/[PageDown]/方向キーがデフォルトでハンドリングされています。意図的な別処理への置き換えでなければアプリケーション側ではハンドリングしないでください。 |
カット、コピー&ペースト、すべて選択 |
デフォルトで実装されています。 ショートカットキー[Ctrl]+[X]/[C]/[V]/[A]がデフォルトでハンドリングされています。意図的な別処理への置き換えでなければアプリケーション側ではハンドリングしないでください。 |
プロパティ名 |
.NET / .NET Framework |
概要 |
|
IsOpen |
○ |
PDFがオープンされているか調べます。 |
|
IsModified |
○ |
PDFが編集状態か調べます。 |
|
IsLockedByOwnerPassword |
○ |
オーナパスワードでロックされている状態かどうか調べます。 |
|
HasFocus |
○ |
コントロールがフォーカスを持っているかどうか調べます。 |
|
CurrentPageNumber |
○ |
現在のページ番号を取得します。 |
|
PageCount |
○ |
ページ数を取得します。 |
|
SelectedPageCount |
○ |
選択中のページ数を取得します。 |
|
CtrlStyle |
○ |
スタイルを設定します。 |
|
BackgroundColor |
○ |
背景色を設定します。 |
|
TextColor |
○ |
テキスト色を設定します。 |
|
ThumbnailSize |
○ |
サムネイルサイズを設定します。 |
|
CanUndo |
○ |
Undoが可能か調べます。 |
|
CanRedo |
○ |
Redoが可能か調べます。 |
|
CanCut |
○ |
Cutが可能な状態か調べます。 |
|
CanCopy |
○ |
Copyが可能な状態か調べます。 |
|
CanPaste |
○ |
Pasteが可能な状態か調べます。 |
|
CanDelete |
○ |
Deleteが可能な状態か調べます。 |
|
CanModifyPage |
○ |
ページ編集が可能な状態か調べます。 |
|
HasUserPassword |
○ |
ユーザパスワードが設定されているかどうかを調べます。 |
|
HasOwnerPassword |
○ |
オーナパスワードが設定されているかどうかを調べます。 |
|
UserPassword |
○ |
ユーザパスワードを取得/設定します。 |
|
OwnerPassword |
○ |
オーナパスワードを取得/設定します。 |
|
SecurityPermissonFlag |
○ |
PDFのセキュリティフラグを取得/設定します。 |
|
DocumentPath |
○ |
オープンしているPDFのPathを取得します。 |
|
SDKVersion |
○ |
SDKバージョン番号を取得します。 |
|
SelectedPages |
〇 |
選択中のページ番号のリストを返します。 |
メソッド名 |
.NET / .NET Framework |
概要 |
OpenDocument |
○ |
PDFをオープンします。 |
SaveDocument |
○ |
PDFを保存します。 |
CloseDocument |
○ |
PDFをクローズします。 |
GetPDFDocumentHandle |
○ |
PDFDocumentのハンドルを取得します。 |
AttachPDFDocument |
○ |
PDFDocumentのハンドルをコントロールに関連付けます。 |
UnlockOwnerPasswordSecurity |
○ |
オーナパスワードを指定してセキュリティを解除します。 |
GotoPage |
○ |
指定したページへ移動します。 |
GetPageRotation |
○ |
ページの回転角度を取得します。 |
RotatePages |
○ |
ページを回転します。 |
InsertNewPages |
○ |
白紙ページを挿入します。 |
MovePages |
○ |
ページを移動します。 |
CopyPages |
○ |
ページをコピーします。 |
ResetView |
○ |
ビューをクリアして作り直します。 |
Undo |
○ |
編集を元に戻します。 |
Redo |
○ |
Undoをやり直します。 |
Cut |
○ |
切り取ってクリップボードに保存します。 |
Copy |
○ |
コピーしてクリップボードに保存します。 |
Paste |
○ |
クリップボードの内容を貼り付けます。 |
Delete |
○ |
削除をおこないます。 |
SelectPage |
○ |
ページを選択します。 |
SelectAll |
○ |
全ページを選択します。 |
イベント名 |
.NET / .NET Framework |
概要 |
DocumentOpened |
○ |
ドキュメントがオープンされたときに呼ばれます。 |
PageTurned |
○ |
選択ページが変わったときに呼ばれます。 |
DragDropFiles |
○ |
ファイルがドラッグ&ドロップされたときに呼ばれます。 |
ContextMenuC |
〇 |
コントロール上でマウスボタンが右クリックされたときやコンテキストメニューボタンが押されたときに呼ばれます。 |
型: bool (.NET) (get のみ)
解説: PDFがオープンされているかどうか調べます。オープンされていればTrueになります。
型: bool (.NET) (get のみ)
解説: 最後に保存してからPDFが変更されているかどうかを調べます。変更されていればTrueになります。
型: bool (.NET) (get のみ)
解説: PDFにオーナパスワードセキュリティによるロックがかかっている状態かどうかを調べます。ロックされていればTrueになります。
型: bool (.NET) (get のみ)
解説: コントロールがフォーカスを持っているかどうか調べます。フォーカスをもっていればTrueになります。.NETのControl.Focusedプロパティは正しく機能しませんのでこのプロパティを使用してください。フォーカスを設定するには SetFocusメソッドを使用してください。(.NETのみ)
型: int32 (.NET) (get のみ)
解説:現在のページ番号です。
型: int32 (.NET) (get のみ)
解説: PDFの総ページ数です。PDFがオープンされていない場合は0になります。
型: int32 (.NET) (get のみ)
解説: 選択中のページ数が返ります。
型: int32 (.NET) (get / set)
設定値:
AvsCtrlStyle |
値 |
説明 |
AGCS_HIDEOBJECTS |
0x0001 |
注釈等のオブジェクトを表示しません |
AGCS_HIDEERRDLG |
0x0004 |
エラーダイアログを表示しません |
AGCS_HIDEPASSWORDDLG |
0x0008 |
パスワード入力ダイアログを表示しません |
AGCS_READONLY |
0x0010 |
読込専用モード(編集不可)に設定します |
解説:コントロールのスタイルを上記ビットの組み合わせで設定します。デフォルトは0です。
型: System.Drawing.Color (.NET) (get / set)
解説:背景色(ページの外の領域)です。
変更する場合はOpenDocument前に設定してください。OpenDocument後に設定しても反映されません。
型: System.Drawing.Color (.NET) (get / set)
解説:ページ番号のテキスト色です。
変更する場合はOpenDocument前に設定してください。OpenDocument後に設定しても反映されません。
型: int32 (.NET) (get / set)
解説:表示するサムネイルのサイズです。単位はピクセルです。デフォルトは82です。
設定可能な値の範囲は、30~200です。変更する場合はOpenDocument前に設定してください。OpenDocument後に設定しても反映されません。
型: bool (.NET) (get のみ)
解説:Undoができるかどうか調べます。Undo可能であればTrueになります。
型: bool (.NET) (get のみ)
解説:Redoができるかどうか調べます。Redo可能であればTrueになります。
型: bool (.NET) (get のみ)
解説:Cutができるかどうか調べます。Cut可能であればTrueになります。
型: bool (.NET) (get のみ)
解説:Copyができるかどうか調べます。Copy可能であればTrueになります。
型: bool (.NET) (get のみ)
解説:Pasteができるかどうか調べます。Paste可能であればTrueになります。
型: bool (.NET) (get のみ)
解説:Deleteができるかどうか調べます。Delete可能であればTrueになります。
型: bool (.NET) (get のみ)
解説:ページの編集(追加、削除、変更)ができるかどうか調べます。ページ編集可能であればTrueになります。
型: bool (.NET) (get のみ)
解説:PDFにユーザパスワードが設定されているか調べます。ユーザパスワードが設定されていればTrueになります。
通常はオープン時のPDFの状態を返しますが、UserPasswordプロパティに値をセットした場合、状態が変更されます。ドキュメントをオープンしていない場合は必ずFalseになります。
型: bool (.NET) (get のみ)
解説:PDFにオーナパスワードが設定されているか調べます。オーナパスワードが設定されていればTrueになります。
通常はオープン時のPDFの状態を返しますが、OwnerPasswordプロパティに値をセットした場合、状態が変更されます。ドキュメントをオープンしていない場合は必ずFalseになります。
型: string (.NET) (get / set)
解説:ユーザパスワードです。オープン時にユーザパスワードを指定してPDFを開くとその値が入ります。空文字をセットするとパスワードを設定していないことになり、HasUserPasswordでFalseが返るようになります。
値のセットはIsLockedByOwnerPassword()がTrueの状態では失敗します。
型: string (.NET) (get / set)
解説:オーナパスワードです。オープン時にオーナパスワードを指定してPDFを開くとその値が入ります。空文字をセットするとパスワードを設定していないことになり、HasOwnerPasswordでFalseが返るようになります。
値のセットはIsLockedByOwnerPassword()がTrueの状態では失敗します。
型: int32 (.NET) (get / set)
解説:PDFのセキュリティ許可フラグです。
次のビットの組み合わせとなります。
AvsSecurityPermissionFlag |
値 |
説明 |
ASPF_ENABLE_PRINT |
0x0004 |
印刷許可 |
ASPF_ENABLE_CHANGEDOC |
0x0008 |
ドキュメント内容の変更許可 |
ASPF_ENABLE_COPYCONTENT |
0x0010 |
内容のコピー許可 |
ASPF_ENABLE_MODIFYANNOT |
0x0020 |
注釈の編集許可 |
ASPF_ENABLE_FILLFORM |
0x0100 |
フォームフィールドの入力許可 |
ASPF_ENABLE_ACCESSIBILITY |
0x0200 |
アクセシビリティの許可 |
ASPF_ENABLE_ASSEMBLEDOC |
0x0400 |
ページの挿入、削除、回転許可 |
ASPF_ENABLE_PRINTHIGHLEVEL |
0x0804 |
高解像度の印刷許可 |
値のセットはIsLockedByOwnerPasswordがTrueの状態では失敗します。
型: string (.NET) (get のみ)
解説:オープン中PDFファイルのPathを取得します。
V5.0以降ではSaveDocumentでファイルパスを指定した後もオープンしたパスを返します。
型: string (.NET) (get のみ)
解説:PDFViewerSDKのバージョン番号です。
型: List<int> (.NET) (get のみ)
解説:選択中のページ番号のリストをSystem.Collections.Generic.Listとして返します。
int32 OpenDocument(string filePath, string password); (.NET)
filePath:PDFファイルのパスを指定します。
password:パスワード パスワード無しの場合は空文字列を指定してください。
戻り値:成功した場合0が返ります。失敗した場合はエラーコードが返ります。
解説: PDFファイルをオープンします。 閲覧パスワードがかかっているPDFの場合、デフォルトではパスワード入力ダイアログを表示します。それ以外のエラーが発生した場合はエラーダイアログを表示します。
エラー時にダイアログを一切表示したくない場合はCtrlStyleプロパティで0x0004を指定してください。また、0x0008を指定するとパスワードがかかったPDFでもパスワード入力ダイアログが表示されません。この場合パスワード処理は自分でおこなう必要があります。エラーコードが843906の場合は、PDFにパスワードが設定されていて、与えられたpassWordが一致しないエラーです。パスワード入力を行い、再度OpenDocument()を呼び出してください。
int32 SaveDocument(string filePath); (.NET)
filePath:PDFファイルのパスを指定します。
戻り値:成功した場合0が返ります。失敗した場合はエラーコードが返ります。
解説: PDFファイルを保存します。
エラー時にダイアログを一切表示したくない場合はCtrlStyleプロパティで0x0004を指定してください。
void CloseDocument (); (.NET)
解説:PDFファイルをクローズします。
IntPtr GetPDFDocumentHandle(); (.NET)
戻り値: PDFDocumentのハンドル
解説:コントロールに関連付けられているPDFDocumentのハンドルを取得します。ハンドルはOpenDocumentでファイルを開いた後に取得してください。
void AttachPDFDocument(IntPtr hPDFDocument); (.NET)
hPDFDocument:PDFDocumentのハンドル
解説:指定したPDFDocumentのハンドルをコントロールに関連付けます。一つのPDFDocumentを、複数のコントロールと使い回したいときに使用します。同じPDFDocumentを持つコントロールはアンドゥー、回転、ファイルクローズ時などを同期します。
bool UnlockOwnerPasswordSecurity (string password); (.NET)
password:オーナパスワードを指定します。
戻り値:セキュリティ解除に成功した場合、trueが返ります。
解説:オーナパスワードを指定してセキュリティを解除します。
PDFにオーナパスワードがかかっている場合、オープン時にオーナパスワードを入力してPDFを開くか、この関数でセキュリティを解除しない限り、ページの回転、オブジェクトの追加、削除、変更といった編集機能は一切動作しません。
bool GotoPage (int32 pageNo); (.NET)
pageNo:表示するページ
戻り値:True 成功(ページが切り替わった場合)
解説:指定したページを表示します。
int32 GetPageRotation (int32 pageNo); (.NET)
pageNo:ページ番号
戻り値:回転角度
解説:指定したページの回転角度を取得します。
void RotatePages(int32 rotation); (.NET)
rotation:回転角度。90/180/270のいずれかを指定
解説:選択中のページを回転します。回転は90度単位です。
void InsertNewPages(int32 pageCount, int32 rotation, int32 pageWidth, int32 pageHeight,
int32 destIndex,); (.NET)
pageCount:挿入するページ数
rotation:回転角度 90/180/270のいずれかを指定
pageWidth/pageHeight:ページサイズ(twip)
destIndex:挿入先。0からはじまるインデックス。
解説:白紙ページを挿入します。
void MovePages(int32 destIndex ); (.NET)
destIndex:移動先。0からはじまるインデックス
解説:選択中のページを指定した位置へ移動します。
void CopyPages(int32 destIndex); (.NET)
destIndex:コピー先。0からはじまるインデックス
解説:選択中のページを指定した位置へコピーします。
void ResetView(); (.NET)
解説:ビューをクリアして作り直します。
void Undo(); (.NET)
解説:最後の編集操作を取り消します。最高50回まで可能です。CanUndo()でアンドゥー可能かどうか調べることができます。
void Redo(); (.NET)
解説:Undoを取り消します。最高50回まで可能です。CanRedo()でリドゥー可能かどうか調べることができます。
void Cut(); (.NET)
解説:選択されたページを切り取ってクリップボードに保存します。CanCut()で切り取り可能かどうか調べることができます。
void Copy(); (.NET)
解説:選択されたページをコピーしてクリップボードに保存します。CanCopy()でコピー可能かどうか調べることができます
void Paste(); (.NET)
解説:クリップボードの内容(CutやCopyしたページ)を貼り付けます。CanPaste()で貼り付け可能かどうか調べることができます。
void Delete(); (.NET)
解説:選択されたページを削除します。CanDelete()で削除可能かどうか調べることができます。
void SelectPage(int32 pageNo, bool bSelect); (.NET)
pageNo:ページ番号
bSelect:選択する場合はTrue、選択解除する場合はFalseを指定します。
解説:指定したページを選択、または選択解除します。ページ遷移はおこないません。
void SelectAll(bool bSelect); (.NET)
bSelect:選択する場合はTrue、選択解除する場合はFalseを指定します。
解説:全ページを選択、または選択解除します。
void DocumentOpened(IntPtr hPDFDocument); (.NET)
hPDFDocument:PDFDocumentのハンドル
解説:ドキュメントがオープンされたときに発行されます。
void PageTurned(int32 pageNo); (.NET)
pageNo:ページ番号
解説:現在ページが変更になったときに発行されます。
int32 DragDropFiles(BSTR[] files); (.NET)
files:ドロップされたファイル名
戻り値(.NET):デフォルトの動作(files[0]を開く)を実行する場合は0以外を返します。 0を返すとデフォルト動作をおこないません。
解説:コントロールにファイルがドラッグ&ドロップされたときに発行されます。
int32 ContextMenuC(System.Drawing.Point point); (.NET)
戻り値 (.NET):コントロールのデフォルト処理を実行する場合は1を返します。 0を返すとデフォルト処理をおこないません。
point (.NET):カーソル位置のクライアント座標が入ります。
解説:マウス右クリックされるかコンテキストメニューボタンが押されたときに発行されます。