PDF、組版と文書変換のアンテナハウス株式会社

サイトマップ
hr トップ
ページ
hr デスクトップ
製品情報
hr システム
製品情報
hr DITA
サービス
hr 電子書籍
サービス
hr サポート hr 製品の購入
について
hr お問い合わせ hr 会社案内 hr
スペース

Antenna House PDF Viewer SDK よくいただくご質問

このページでは『Antenna House PDF Viewer SDK』について、よくお寄せ頂くご質問を紹介しています。

動作/開発環境について

機能について

印刷について

開発上の問題

動作詳細について


以下、回答

動作/開発環境について

はい。
C++とCのAPIを用意しております。※Cからは一部利用できないAPIがございます。
  • V5.0以降
    はい。.NET Framework 用のAPIを用意しています。
  • V3.5 / V4.0
    はい。プラットフォーム呼び出し(P/Invoke)をご利用いただくことで、 C言語 APIを呼び出すことができます。
    P/Invoke呼び出しを行うラッパーコードはお客様にてご用意ください。表示・画像出力・テキスト抽出・検索・印刷の主な機能について、サンプルコードをご用意しております。
いいえ、できません。
  • V5.0以降
    .NET Framework 4.6.2 以上をご利用ください。
  • V3.5/V4.0
    .NET Framework 4.0 以上をご利用ください。
はい。ActiveX に対応した言語で開発できます。
なお弊社では Visual C# で動作確認しております。

※ご注意 V5.0の次のメジャーバージョンアップでは廃止予定です。
はい。
WindowsFormHostを利用して、WindowsフォームのコントロールをWPFアプリケーション上に配置できます。

WPF での、XAML を使用した Windows フォーム コントロールのホスト
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/advanced/walkthrough-hosting-a-windows-forms-control-in-wpf?view=netframeworkdesktop-4.8
はい、問題ありません。
「PDF Viewer API」「PDF Viewer Ctrl」どちらもマルチプロセスでの利用に対応しております。
「PDF Viewer API」印刷関連のAPIを除き、マルチスレッドに対応しています。
「PDF Viewer Ctrl」マルチスレッドでの利用には対応しておりません。
「PDF Viewer API」 は利用可能です。
「PDF Viewer Ctrl」 はGUIを前提としているため利用できません。
「PDF Viewer API」 は利用可能です。
「PDF Viewer Ctrl」 は利用できません。 GUI を前提として開発しております。
いいえ、必要ありません。
弊社独自のPDF表示機能を実装しております。
はい。
32ビット版について、WOW64上での動作を保証しております。
いいえ。
.NET6は、今後のバージョンで対応を検討しています。
.NET Core 3.1/.NET5は、対応予定はありません。
フォントが埋め込まれていないPDFをレンダリングする場合、環境にインストールされたフォントによって表示や画像出力の結果がかわる場合があります。

メモリが少ない場合は、大きな画像のロードに失敗し、ページ上の画像が表示されないことがあります。
  • V5.0以降
    PDF1.3~PDF1.7、PDF2.0を開くことができます。
  • V3.5/V4.0
    PDF1.3~PDF1.7を開くことができます。

PDF1.3以降が対象ですが、現在流通しているPDFファイルのバージョンは PDF1.3以降がほとんどですので、問題ないかと思います。
新しいバージョンが出た場合は、随時対応していきます。最新のPDF2.0のファイルもオープン可能です(V5)。
いいえ、使用しておりません。
いいえ、ありません。

機能について

「PDF Viewer Ctrl」をご利用ください。
フォームデザイナー上でPDFビューアーコントロールをレイアウトして、 Windows フォームアプリケーションを開発できます。
「PDF Viewer API」 をご利用ください。
PDFファイルを表示することなく印刷するコマンドラインアプリケーションを開発できます。
はい、可能です。
PDF表示をしながらテキスト抽出したい場合は「PDF Viewer Ctrl 」を、GUIを表示せず、コマンドラインアプリケーションからテキスト抽出をしたい場合は「PDF Viewer API」 をご利用ください。
はい、可能です。
「PDF Viewer API」「PDF Viewer API」どちらでも、ページ全体や指定した矩形内を画像へ変換できます。
メモリへの出力は「PDF Viewer API」でのみ可能です。
はい、可能です。
前方検索・後方検索、大文字小文字の区別などを指定できます。
はい、可能です。
「PDF Viewer API」 をご利用ください。
はい、可能です。
PDFページに記載された順序で、テキストや文字の矩形情報を取得できます。
なお、テキスト検索とヒットしたキーワードのハイライト機能も搭載しております。
  • V5.0以降
    はい。SelectedTextStringプロパティで取得できます。
  • V3.5/V4.0
    いいえ。
はい、可能です。
はい、可能です。

・ZoomRatio プロパティを設定し、指定された倍率で表示します。
・ScrollToPosition メソッドで、指定ページの指定座標(x,y)へ移動します。
 座標は PDFページ上の論理座標になります。
 アプリケーションウィンドウ上の座標との変換関数も用意しています。
はい、すべて可能です。
「PDF View Ctrl」には注釈を作成・編集するメソッドを用意しております。
はい、可能です。
「PDF View Ctrl」のPDFPageViewCtrlに、それらを扱うイベントを用意しています。
座標はイベントハンドラの引数として取得できます。
はい、可能です。
CtrlStyle プロパティにプレビューモードを指定してください。
編集不可、テキスト選択不可、注釈選択不可、ポップアップ注釈非表示にできます。
はい、可能です。
ファイルダイアログを表示するかどうかはアプリケーション側の処理になりますので、ダイアログを表示せず、ファイルパスを指定してPDFファイルをオープンしていただければ結構です。
はい、対応しています。
はい、取得できます。
「PDF Viewer API」では、リンク注釈のヒットテストとリンク種別の取得、リンク注釈の矩形取得、リンクの移動先ページやURIの取得ができます。
「PDF Viewer Ctrl」では、リンク注釈クリックのタイミングでイベントが通知されます。イベントハンドラでリンク種別やリンクの移動先ページやURIの取得ができます。
はい、表示できます。
ファイルオープン時に正しいパスワードをセットしてください。
いいえ。
動画、音声などのマルチメディアの再生には対応しておりません。
いいえ。
PDFファイルをオープンして表示することはできますが、カラーが正しく表示されない場合があります。
弊社の「PDF Tool API」で閲覧制限をかけたPDFファイルは表示できます。 一般のJavaScriptを使った閲覧制限つきのPDFファイルは表示できません。
  • フォントが埋め込まれたPDFファイル
    PDFファイルが正しく作成されていれば文字化けが発生することはありません。
  • フォントが埋め込まれていないPDF
    PDF作成時のフォントが表示環境にない場合、稀に文字化けや文字のレイアウトが起こる可能性はあります。これはフォントがないと別のフォントを割り当てるため(代替フォント)、必要な文字がなかったり文字幅の異なるグリフを使って、表示をおこなうためです。
    フォントがない場合の代替フォントの選び方はPDF仕様では規定されておらず、PDFリーダーの実装依存になります。このため、Adobe Acrobat Readerなど他のPDFリーダーと必ずしも同一の表示になりません。
いいえ。
Adobe Acrobat Reader のデフォルトのフォントは Adobe Acrobat Reader が独自に管理しているものです。「PDF Vewer SDK」からは利用できません。
はい。
フォントが埋め込まれていない場合に、指定されたフォントが見つからない場合の代替フォントを指定することができます。代替フォントは明朝体、ゴシック体の2種類のフォントが指定できます。個別のフォントごとに代替フォントを指定する事はできません。
「PDF Viewer API」は作成しません。
「PDF Viewer Ctrl」は作成します。
同じ内容のPDFファイルであれば、PDFバージョンを変えただけでは速度に違いはありません。
PDFバージョンが上がると利用できる機能が増えるので、表示が遅くなることはない訳ではないですが、 それはバージョンというよりPDFファイルの内容によるものです。バージョンについてはあまり気にされる必要はないと思います。
はい、可能です。
・保存ボタンや、各種編集ボタンはサンプルプログラムで用意してるものです。開発するアプリケーションには付けないようにする事ができます。

 ご参考)オープンボタンだけのサンプル
 http://blog.antenna.co.jp/ILSoft2/archives/1873
 http://blog.antenna.co.jp/ILSoft2/archives/1885

・PDFページ表示コントロールの CtrlStyleプロパティを設定することで、編集不可、テキスト選択不可、注釈選択不可、ポップアップ注釈非表示にできます。
はい、可能です。
PDFページ表示コントロールの CtrlStyleプロパティを設定することで、編集不可、テキスト選択不可、注釈選択不可、ポップアップ注釈非表示にできます。
PDFページに埋め込まれた、図形や画像は元々コピーする機能がありません。
いいえ。
元のPDFバージョンや暗号化など設定した内容によって、保存しるPDFファイルのバージョンを決定しています。
ページのMediaBoxとCropBoxでクリップされた範囲が表示されます。
はい。
「PDF Viewer API」で可能です。【V5.0以降】
はい。対応しています。【V5.0以降】

「PDF Viewer Ctrl」のPDFOullineCtrl でしおりを表示できます。
しおりを選択すると該当ページに移動するなどのアクションを実行できます。
いいえ、問題ありません。
「PDF Viewer Ctrl」が拡張子PDFの関連付けを行うことはありません。

印刷について

「PDF Viewer API」はGUI表示なしで印刷できます。
「PDF Viewer Ctrl」は印刷ダイアログを表示せずAPIから印刷できますが、印刷ステータスのダイアログは表示されます。またGUIアプリケーションが前提です。
はい。
独自に弊社独自のレンダリングエンジンを開発しておりますので、Adobe Acrobat Readerを利用することなく、印刷が可能です。
一般的にはほぼ同等の結果となります。
PDFファイルや印刷するプリンタによっては、必ずしも一致しない場合があります。

弊社独自のレンダリングエンジンを使用しておりますので、他社のPDFリーダーとまったく同一になることは保証しておりません。

評価版をご用意しておりますので、事前に印刷結果をご確認ください。
https://www.antenna.co.jp/pdfviewersdk/trial.html
はい。
「PDF Viewer API」「PDF Viewer Ctrl」 どちらでも縮小して印刷することができます。
いいえ。
途中で取り消したり、事前にチェックすることはできません。
印刷できないデータがあるなどの理由でエラーが発生した場合は、出来る限りエラーを無視して印刷を継続します。
はい、可能です。
「PDF Viewer API」 の setWatermarkText メソッドをご利用ください。
PDFファイルを指定して印刷できます。

フォルダを指定して一括印刷することはできませんが、
アプリケーション側でフォルダ以下のPDFファイルを順に指定して頂くことで実現は可能です。
はい。
マルチプロセスで複数ファイルを同時印刷できます。
マルチスレッドでの同時印刷には対応しておりません。
いいえ。
フォルダ監視機能はございません。アプリケーション側で対応することで、「PDF Viewer API」を使用してそのようなシステムを開発することは可能です。
設定内容によりますが、可能です。

「PDF Vewier API」では上位アプリケーションからDEVMODE構造体とプリンタのデバイスコンテキストを印刷開始APIに渡して印刷開始を行いますので、 通常の Windows の印刷アプリケーションと同様に、プリンタの設定を反映して印刷することができます。

また印刷開始APIで用紙へのフィット方法の指定などができます。

サンプルプログラム(ApiPdfPrint)を添付しております。 https://www.antenna.co.jp/pdfviewersdk/samplecode.html#sample02
はい、可能です。

{PDF Viewer API」では、印刷開始時にプリンタのDEVMODE構造体を指定できます。 こちらを設定することで可能です。 ・用紙サイズ  印刷開始時に paperselect=falseとし、  DEVMODE構造体(dmPaperSize)で用紙サイズを指定します。 ・印刷の向き  DEVMODE構造体(dmOrientation )で指定します。 サンプルプログラム(ApiPdfPrint)を添付しております。 https://www.antenna.co.jp/pdfviewersdk/samplecode.html#sample02
はい、可能です。
部数を指定したDEVMODE構造体を、印刷開始関数に渡すことで指定できます。
プリンタ側で部数が扱われます。
はい、可能です。

印刷は以下の順序でおこないます。
 1. 印刷開始メソッドを呼び出す。
 2. ページ番号を指定して、printPage()を呼び出す。
 3. 最後に印刷終了メソッド を呼び出す。
アプリケーション側でご希望の順序でページを指定することが出来ます。
いいえ、スプールに成功したことをもって印刷成功としております。

印刷用のAPI(startPrint/endPrint/printPage)を用意しておりますが、内部ではWindows の標準的な GDI Print API を利用しています。 endPrint() を呼び出したタイミングで印刷ジョブが終了し、GDI を介したプリンタドライバとのやり取りは終了します。 このタイミングでプリンタドライバへ印刷データが完全にわたり、スプールを完了します。 これ以降のスプールやプリンタの状況はAPI側では把握しておりません。
いいえ。
プリンタの詳細状況は、API呼び出しの戻り値としては取得できません。
いいえ、スプール管理の機能は持ちません。

スプールされた印刷ジョブの印刷失敗などのステータスについても管理しておらず、エラー等としてAPIから報告する機能は持ちません。
いいえ。
印刷はスプールされるので印刷は問題なく進み成功します。 プリンタやプリンタドライバの環境や設定にもよりますが、スプール側では印刷ジョブが待機した状態になります。

開発上の問題

【PDF Viewer APIをご利用の場合】
AvsPDFViewerSDKXX.dllの「製品バージョン」をご確認ください。※

【PDF Viewer Ctrl をご利用の場合】
AvsPDFViewerSDKXX.dll の「製品バージョン」をご確認ください。※

※確認方法
エクスプローラーでファイルのプロパティを開き「詳細」タブの「製品バージョン」をご確認ください。

例) 4.0.6.0 → V4.0 MR6 ( V4.0 改訂6版、または 4.0.6 と表記する場合があります。)

4桁目は通常「0」です。
改訂版公開までに、弊社内で版を重ねた場合はカウントアップされる場合があります。
改訂版公開後にカウントアップする事は通常はありません。
【32ビット版コントロールをご利用の場合】
PATH を通さないとフォームデザイナーを開いたときに下記のエラーが発生します。

その場合は一旦 Visual Studio を終了してから、環境変数 Path に AvsDotNetGuiCtl.dll が含まれるフォルダパスを追加し、再度 Visual Studio を起動してから、フォームデザイナーで開いてください。

フォームデザイナーエラー

【64ビット版コントロール(V5.0)をご利用の場合】
Visual Studio 2019 は32ビットアプリケーションのため、64ビット版コントロールをフォームデザイナーでロードして表示する事ができません。32ビット版でフォームデザインを行ったあと、64ビット版としてビルドしてください。詳しくはマニュアルをご覧ください。
【32ビット版コントロールをご利用の場合】
フォームデザイナーが関連DLLをロードしてコントロールを表示できないためです。AvsDotNetGuiCtl.dll と関連DLL を含むフォルダにPATHを通した状態で Visual Studio を起動してください。

samples フォルダのみコピーした場合は、以下のようなエラーが出ることがあります。

コマンド ""[コピー先]\samples\Windows-VS2010\prebuild.bat" "[コピー先]\samples\Windows-VS2010\Win32\Release\"" はコード 4 で終了しました。

この場合は、samples フォルダ以外のデータも同じ階層にコピーしてビルドしてください。最低限必要なのは下記のフォルダです。
    samples\
    bin\
    Include\
    lib\ 
DocumentOpendイベントなどのイベントハンドラで、PDFDocumentのハンドルをInt32型の引数で受け取っている可能性があります。引数の型を IntPtrに変更してください。 32ビット版と64ビット版では、受け渡されるハンドルのサイズが違います。
はい。
ビルドするプラットフォームがx64/x86であるかに応じて、64ビット版/32ビット版のDLLを参照する必要があります。「PDF Viewer Ctrl」のマニュアルに記載がありますのでご覧ください。
ActiveXコントロールを登録していない状態で、サンプル AvsActiveXCtlSampleをビルドすると、下記のエラーがでます。
AvsActiveX.ocxをレジストリに登録してからビルドしてください。

ーーーーーーーーーーーーーーーーー
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー CS0246 型または名前空間の名前 'AxAVSACTIVEXCTLLib' が見つかりませんでした
(using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
AvsActiveXCtlSample C:\PDFViewerSDK_V50\samples\Source\AvsActiveXCtlSample\Form1.cs 617
アクティブ

動作詳細について

座標値は「PDF Viewer API」の座標系で指定してください。
マウスの座標をデバイスに依存しない「PDF Viewer API」の座標に変換する必要があります。

【PDF Viewer API の座標系】
・原点は左上、x軸は右方向、y軸は下方向に増加
・単位は TWIP(1ポイント=20TWIP、1インチ=72ポイント=1440TWIP)

マウス座標からPDFページ上の座標に変換するサンプルコードは、SDK付属のAvsPDFViewerSampleプログラムにございます。(ソースファイルPDFViewerView.cppの OnMouseMove メソッド)
ClientToLogical 関数は、ウィンドウのクライアント座標(x, y) を入力として、 PDFのページ番号とそのページ上の論理座標(x, y)を返します。
連続ページ表示などウィンドウに複数のPDFのページが同時に表示されるときは、マウス位置によってPAGENO引数が変化し、カレントページ番号と必ずしも同じにならない場合があります。
【V3.5 / V4 の場合】
 V4以前のバージョンでは、注釈の外観ストリームを保存しません。
注釈表示に外観ストリームが必要なPDFリーダーやシステムですと、注釈が表示されなかったり見かけが異なることがあるかもしれません。
 V5 へのバージョンアップをご検討ください。

【V5 の場合】
 注釈の外観ストリームを保存するようになり、注釈表示の互換性が向上しています。V4以前の問題は発生しないと思われます。
△ページ上部へ
スペース
トップページサポートお問い合わせ会社案内
サイトマップ個人情報保護の考え方とお願い
Copyright Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.