カテゴリー別アーカイブ: PDF Viewer

PDF ビューアー開発だけではない!~ PDF Viewer SDK 利用例のご紹介(2)~

前回 のつづきで、「PDFViewerAPI 」について PDF ビューアー開発以外の利用例をご紹介したいと思います。

PDF テキストの抽出

PDF を表示するには、PDF ファイルのページデータに書かれた描画用の命令を走査しながら、文字、線や曲線、イメージといったデータを読み取り、位置を計算しながら指定されたフォントや色や模様で描画する、といった処理をおこないます。

つまり、PDF の表示ができるということは、どの位置にどんな文字があるか分かるということになります。PDF ビューアーで文字列を検索したときにハイライトすることができるのはこの情報の応用です。 ハイライトの場合は、文字列を指定してその領域を調べる処理です。逆に領域を指定してその範囲に含まれる文字列を調べることも、同じ情報があればできることがわかります。「PDFViewerAPI 」でも領域を指定してテキスト抽出をする API をご利用いただけます。

最近では、様々なサービスで料金明細が PDF 形式のデータで配布されるなど、個人でも PDF 形式の帳票データに出会う機会が増えました。業務ではもっと多くの PDF 帳票データが利用されていると思います。このようなデータが増えてきて、元データが入手できず PDF しかない場合が多いためか、PDF 形式の帳票データからテキスト情報を取り出したい、または、その情報に元にファイルの分類などの何らかの処理をしたいといった要望が増えています。

これらの PDF データは、システムから直接出力されたものであることがほとんどで、テキストデータを含み、定型帳票であれば位置も変らないことが多く、テキスト抽出処理に適しています。(※)
開発アプリケーションで「PDFViewerAPI 」のテキスト抽出 API を利用すれば、こういった処理の自動化に役立てることができます。同様の状況でお困りの方はぜひご検討ください。

以上、簡単ですが PDF ビューアー開発以外の利用例のご紹介でした。

※  スキャンされた画像 PDF の場合は、テキストデータが含まれていない、含まれていても OCR 処理で付加されたテキストで誤認識や位置が一定しないなどの問題があるので、このような処理には不向きです。

PDF Viewer SDK はWindows 10 動作確認済み!
評価版をご用意しておりますので、ぜひこの機会にお試しください。

製品ページ:
http://www.antenna.co.jp/oem/ViewerSDK/
評価版のお申し込み:
http://www.antenna.co.jp/oem/ViewerSDK/trial.html

Android 向けPDF 描画ライブラリー『Antenna House pdfview 』もご用意しております。すぐに実行できるPDFビューアーサンプルアプリ付き!
こちらもぜひお試しください。

製品ページ:
http://www.antenna.co.jp/ahpdfview/
評価版のお申し込み:
http://www.antenna.co.jp/ahpdfview/trial.html

お問い合わせ:
PDF Viewer SDK、pdfview は OEM 販売となります。OEM ご相談窓口へお問い合わせください。


PDF ビューアー開発だけではない!~ PDF Viewer SDK 利用例のご紹介(1)~

Antenna House PDF Viewer SDK は PDF のビューアー機能を組み込んだ独自のアプリケーションを開発いただくための Windows 向け開発キットです。 PDF の表示が主な用途なのですが、実はこれ以外の用途でもよくご利用頂いております。その例をいくつかご紹介したいと思います。

PDF ファイル印刷

ビューアー開発以外で一番多いのが PDF の印刷です。

通常は PDF リーダーの印刷ダイアログから手動で行います。複数のファイルをまとめて印刷する場合には、一般のユーザーの方はファイルを複数選択してから右クリックメニューから印刷したり、ファイル結合してから印刷するなど工夫されているようです。 しかし、業務で印刷を自動化したり、大量のファイルを一括印刷するようなシステムを構築するには、プログラムから印刷が指示でき、もう少し細かな印刷の制御も必要になってきます。

『Antenna House PDF Viewer SDK 』 に含まれる 「PDFViewerAPI」 は DLL 形式のライブラリで、表示に加え PDF の印刷機能を C/C++言語の API で提供します。

印刷用 API では、上位アプリケーションから、プリンタやプリンタの印刷設定(※1)や用紙サイズ、用紙へ合わせる、倍率指定、水平/垂直方向の位置(上下・左右・中央揃え)などの指定ができます。また、ページを指定して印刷できますので、印刷ページや印刷順、印刷枚数など、上位アプリケーションから自由にコントロールすることができます。

既存の PDF リーダーの印刷機能を再利用することが難しいためか、印刷用途でお使い頂くことが多いようです。PDF 印刷のシステム化でお困りの方はぜひご検討ください。
ご利用にあたっては Adobe 社の Acrobat や Adobe Reader などのソフトは必要ありません。

また 次回、別の利用例をご紹介したいと思います。

※1  印刷関連の Windows API で使用されるプリンタのデバイスコンテキストや、DEVMODE 構造体というプリンタの印刷設定を表す情報を指定します。

※2  Adobe、Acrobat、Adobe Reader はAdobe Systems Incorporated の米国ならびに他の国における商標または登録商標です。

PDF Viewer SDK はWindows 10 動作確認済み!
評価版をご用意しておりますので、ぜひこの機会にお試しください。

製品ページ:
http://www.antenna.co.jp/oem/ViewerSDK/
評価版のお申し込み:
http://www.antenna.co.jp/oem/ViewerSDK/trial.html
お問い合わせ:
PDF Viewer SDK は OEM 販売となります。OEM ご相談窓口へお問い合わせください。


☆Android対応 PDF描画ライブラリー pdfview☆

こんにちは!
アンテナハウスでは、Android 対応 PDF 描画ライブラリー Antenna House pdfview 1.0.1版を2015年6月3日にリリースいたしました。

お客様が開発される Android アプリケーションへ、PDF ファイルの表示・閲覧機能を組み込むことができる PDF 描画ライブラリーです。是非 Android アプリ開発にご利用ください!!

【製品の特長】
Android アプリで PDF 表示・検索が可能に!

  • PDF からビットマップへの変換を提供。
  • PDF からのテキスト抽出を提供。
  • ネイティブコードとして開発され、C言語API が提供されます。

サンプル簡易 PDF ビューアーが付属

  • すぐに実行可能な apk ファイルが付属。
  • ネイティブコードを Java から利用。
  • Java ソースコードが付属します。
  • ソースコードは開発にご利用頂けます。

アプリへの組み込みにご利用ください

  • 開発アプリケーションへの組み込み。
  • DRM や外部システムとの連携など、独自機能をもった PDF ビューアー開発。

☆すぐにお試し可能な評価版もございます。

詳しくは下記アンテナハウスのホームページをご確認ください。
→ http://www.antenna.co.jp/ahpdfview/

【お問合せ先】
アンテナハウス株式会社
OEM営業グループ
e-mail:oem@antenna.co.jp
tel:03-5829-9021


再配布用各種ビューア製品

OEM 営業グループでは、Windows の他に iOS/Android で動作するビューアを公開しています。今回はそれぞれのビューアの特徴をご紹介いたします。

  • PDF Viewer SDK
    Windows 32bit/64bit 用 PDF 表示ソリューションを開発するための開発者向けライブラリです。表示、文字列検索、印刷、画像保存の基本機能に加え、しおりの追記/修正や、サムネイルを操作する事ができます。主にアプリケーションの PDF 表示機能や PDF のダイレクト印刷、PDF の画像生成用など 30 社以上に供給しています。
  • Antenna House pdfview
    Android 用 PDF 表示ソリューションを開発するための開発者向けライブラリです。現在は β 版を公開中ですが、表示速度等の向上を行い、今月中にリリース版を公開する予定です。Android アプリ内で PDF の表示をさせたい場合にご利用いただけます。
  • iOS/Android 用ドキュメントビューアアプリ
    現在は、iOS 版の β 版を公開しています。こちらは上記製品と異なり、PDF に加えて、MS Office のデータ、一太郎データの表示が可能です。

上記ビューアは、全て国内自社開発の為、アフターサポートも安心してご使用いただけます。

お問い合わせ先
アンテナハウス株式会社
OEM 営業グループ
oem@antenna.co.jp
TEL: 03-5829-9021


pdfview の問題点

現状の pdfview にはまだまだ問題点があります。
そのうちのいくつかを説明します。

■描画の不具合

描画の不具合で、一つ上げると下記のファイルのマスク・重ね合わせ処理の違いがあります。
http://www.akita-jas.com/images/brochure.pdf

はっぴの画像でマスクの濃淡が反転しているように見えますが、何枚かの画像を重ね合わせていて違いの原因を細かく追い切れていません。他にも描画の不具合は、探せば色々見つかると思います。

■未実装の描画処理

未実装の描画処理もいくつかあります。
例えば注釈の描画、レイヤーの描き分けにまだ対応できていません。

注釈の例
http://www.adobe.com/jp/acrofamily/features/acro_nikkei/pdfs/Annotation.pdf

pdfview ではまだ注釈の表示はできません。
なお、PDF Viewer SDK では Viewer Control での注釈の表示は可能です。

レイヤーの例
http://www.pdfill.com/example/pdf_layer_new.pdf

画像の比較だけでは少しわかりにくいですが、元の PDF ファイルではページ内の各部分がレイヤーに分かれていてそれぞれ表示、非表示の切り替えができます。pdfview ではレイヤーの表示、非表示の切り替えに対応できておらず、すべて表示されます。pdfview ではページ下の × ✓ ⦿ の3つとも表示されていますが、本来はこのうちの一つだけが表示されるものです。

■サンプルの速度

Android のサンプルとしてビューアーアプリケーションを用意していますが、動作速度が遅いという問題があります。速度低下の原因は色々考えられるのですが、そのうち、拡大表示を行った時にあきらかに速度が落ちるという問題があります。これは内部の動作としてページ全体を描画してその一部を画面に表示するという、単純な実装になっている事が原因と考えています。拡大されたページ全体を描画するため、倍率の分増加する使用メモリーを確保する時間が必要で、また描画する領域も大きくなるのでその描画処理に時間がかかるという事です。

実際に描画が必要なのは表示される領域だけですので、描画する領域をページ内の表示する領域だけに絞って確保するメモリーを減らし、描画することで、ある程度は速度の改善は可能と考えています。
できれば次回公開する版に反映させたいと思います。

また、描画処理自体の処理も改善を図っていますので、新しい版のほうが速くなっているかと思います。


PDF 表示機能の比較 (2015-3-9)

以前、PDF ビューアーアプリケーションの表示機能の比較を1つのファイルについて行ってみました。
PDF 表示機能の比較

今回また pdfview のサンプルプログラムを含めて、複数のアプリケーションでサンプル PDF ファイルの表示を開いて比較しました。再現結果に差があったファイルについていくつか紹介しようと思います。

比較に使用したアプリケーションは下記のとおりです。

Adobe Reader XI バージョン 11.0.10 ・・(Adobe)
PDF-XChange Viewer バージョン 2.5 ・・(XChange)
Foxit J-Reader バージョン 7.0.7.1210 ・・(Foxit)
Antenna House PDF Viewer SDK バージョン 3.4 AvsPDFViewerSample ・・(ViewerSDK)
Antenna House pdfview 開発中の版 Windows ・・(pdfview)

以下ではそれぞれ、Adobe XChange Foxit ViewerSDK pdfview と略します。
Windows 8.1 Pro 上で実行しました。画面の解像度の設定は 96 dpi です。

■3BigPreview.pdf

以前比較したファイルと同じものです。
http://acroeng.adobe.com/Test_Files/viewing/3BigPreview.pdf

それぞれのアプリケーションで、倍率 50 % で表示しました。

細かい違いはあるもののそれぞれ問題なく描画されているようにみえます。 ただひとつ気になるのが ViewerSDK の Level 2 Pattern の箇所の画像のパターンが他のアプリケーションよりも大きい事です。

3BigPreview-pdfviewersdk-pattern

ViewerSDK-pattern

これは実はタイリングパターンの数が多いときに描画に時間がかかりすぎるため、パターンをある大きさ以下にはならないように制限を設けているというものなのです。そのためタイリングパターンを含むファイルは低倍率では正確に描画できなくなっています。 倍率を 50 % にしたのはそれを確認するためです。

■BlendModes-rgb.pdf

色の重ねあわせを表現するための PDF の仕様にブレンドモードというものがあります。
このファイルではブレンドモードの適応状況を確認することができます。
http://www.pdfvt.com/pdf/BlendModes-rgb.pdf

Foxit ViewerSDK は Adobe XChange pdfview に比べて再現性に劣ると言えるでしょう。

■taisyou.pdf

縦書きのサンプルです。
https://www.npa.go.jp/koutsuu/kikaku9/taisyou.pdf

XChange では括弧 “(” “)” が縦書き用のグリフで描画されないようです。

■zapf-dingbats.pdf

ZapfDingbats フォントのサンプルです。
http://www.w3.org/Style/XSL/TestSuite/contrib/XEP/Tests/zapf-dingbats.pdf

Adobe と Foxit で同じフォントが使われているようです。
XChange と pdfview もまた同じフォントのようですが、Adobe のものとは異なります。
(a1 ~ a3 のはさみの向きが目安になるでしょう。)
ViewerSDK は絵文字で描画されませんでした。

■結論

上記より Adobe を基準にすると pdfview が最も近い描画結果を得られるという結論となります。と言いたいところですが、今回は pdfview での描画に問題があるファイルはあえて選ばれておりません。しかし pdfview が他の描画システムよりも優位になる場合があることは確かだと言えるかと思います。
(pdfview 開発者記)

pdfview 及び PDF Viewer SDK については、鋭意改善しています。
次回 pdfview の問題点を紹介します。


PDF Viewer SDK で簡単PDFビューア作成(4)

サムネイルコントロール編~

以前の記事で、簡単な PDF ビューアを作成しました。今回は、サムネイル表示機能を追加してみます。
PDF Viewer SDK PDFビューア
サムネイル表示には、PDFThumbnailCtrl を使用します。
コントロールの配置は Visual Studio のツールボックスからドラッグ&ドロップするだけです。
PDF Viewer SDK サムネイル表示機能追加
さて、現時点では各コントロールは独立した状態なので、二つのコントロールの同期を取る必要があります。

  • 一方のコントロールで PDF ファイルがオープンされたら、もう一方のコントロールにオープンした PDF ファイルを割り当てる。
  • 一方のコントロールでページが遷移したら、もう一方のコントロールでも同じページに遷移する。

それぞれのタイミングで処理をするには、DocumentOpend イベント、PageTurned イベントのイベントハンドラを実装します。

では、コードを見てみましょう。(サンプルでは.Net I/F版C# 言語を使用)

private void pdfThumbnailCtrl1_DocumentOpened(int hPDFDocument)
{
   pdfPageViewCtrl1.AttachPDFDocument(hPDFDocument);
}
private void pdfPageViewCtrl1_DocumentOpened(int hPDFDocument)
{
   pdfThumbnailCtrl1.AttachPDFDocument(hPDFDocument);
}
private void pdfThumbnailCtrl1_PageTurned(int pageNumber)
{
   pdfPageViewCtrl1.GotoPage(pageNumber);
}
private void pdfPageViewCtrl1_PageTurned(int pageNumber)
{
   pdfThumbnailCtrl1.GotoPage(pageNumber);
}

オープンした PDF ファイルの割り当ては AttachDocument メソッド、指定のページへの遷移は GoToPage メソッドを使用します。

アプリケーションを実行します。

PDF Viewer SDK サムネイル表示

PDF ファイルを開くと、サムネイルと本文が表示され、サムネイルをクリックすると該当ページが表示されるようになりました。

このように、サムネイルの表示も簡単に追加することができました。
以上、PDFThumbnailCtrl の紹介でした。

アンテナハウス製品紹介セミナー

 2015年3月5日、アンテナハウス製品紹介セミナー が開催されます。PDF Viewer SDK のセッションや相談会もございますので、ご興味のある方はぜひご参加ください。

評価版のお申し込み:↓
http://www.antenna.co.jp/oem/ViewerSDK/trial.html
お問い合わせ:↓
SDK はOEM販売となります。OEMご相談窓口へお問い合わせください。


PDF Viewer SDK V3.4 リリース、PDFViewerAPIが64ビット対応

PDF Viewer SDK は、独自のWindows用PDFビューアーを開発するための組み込み用SDKです。OEM製品としてご提供しております。

PDF Viewer SDK には、PDFファイルのディスプレイへの描画(レンダリング)、画像ファイル出力、印刷が可能なライブラリであるPDFViewerAPI(C/C++)と、コントロールを貼り付けることで簡単にPDFビューアーの開発が可能なPDFViewerCtrl(ActiveX/.Net)の二つのコンポーネントがあります。

今回リリースされたV3.4では、PDFViewerAPI が 64ビットに対応しました。
(※PDFViewerCtrlは32ビット版のみです。)

従来は、64ビットOS上では WOW64エミュレーションにより32ビットで動作しておりました。今回より64ビットネイティブアプリケーションからも利用できるようになります。

  • アプリケーションが64ビットで開発されており、32ビット版が利用できない。
  • 32ビット版ではメモリ上限に達することがありメモリ不足になるケースを減らしたい。

などの場合、64ビット版のご利用をぜひご検討ください。

PDF Viewer SDK の機能その他の詳細について、下記のWebページをご覧ください。
また評価版もご用意しておりますので、ご興味のある方はぜひ評価版をお試しください。

PDF Viewer SDK
http://www.antenna.co.jp/oem/ViewerSDK/
評価版のお申し込み:
http://www.antenna.co.jp/oem/ViewerSDK/trial.html
お問い合わせ:
SDKはOEM販売となります。OEMご相談窓口へお問い合わせください。


PDF Viewer SDK で簡単PDFビューア作成(3)

前回、PDFを開くところまでアプリケーションを作成しました。
今回は、ページ送りなどの動作を追加して、もう少しビューアらしくしたいと思います。

ページ移動ボタンの追加

先頭/前/次/最終の各ページへの移動用ボタンを追加していきます。フォームデザイナでボタンを4つ貼り付け、Textプロパティを「<<」「<」「>」「>>」とします。

ボタン追加画面

ボタン追加画面

「開く」ボタンのコードを追加したときと同様に、ボタンクリック動作のメソッドを自動生成してコードを追加して行きます。

private void button2_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoFirstPage();
}
private void button2_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoFirstPage();
}
private void button3_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoPreviousPage();
}
private void button4_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoNextPage();
}
private void button5_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoLastPage();
}

コードはコントロールのページ移動用のメソッドを呼び出すだけです。
これでページ移動動作の実装は完了です。

表示モードの追加

次は表示モードを変更してみます。「幅に合わせる」「全体表示」ボタンを追加します。

表示モードの変更:ボタンの追加

表示モードの変更:ボタンの追加

同じくボタンの動作を作成します。ボタンクリック時のコードは下記を入力します。


private void button6_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.ViewMode = AvsDotNetGuiCtl.AvsViewMode.AVM_FITWIDTH;
}
private void button7_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.ViewMode = AvsDotNetGuiCtl.AvsViewMode.AVM_FITPAGE;
}

ここでは、PDFPageViewCtrlのViewModeプロパティを設定することで表示モードを変更しています。AVM_FITWIDTHが幅に合わせる、AVM_FITPAGEがページ全体表示に対応します。

アプリケーションの実行

ではアプリケーションを実行して見ましょう。

ビューア確認画面

ビューア確認画面

ページ移動のボタンで、ページ移動ができるようになっていると思います。
全体表示ボタンを押すと、ページ全体が表示されます。

このように、PDFViewCtrlに用意されたメソッドやプロパティを操作することで、簡単にビューア機能を組み込みアプリケーションから制御ができます。

SDK にはサンプルアプリケーションとして、本格的なビューアのサンプルソースコードも付属していますので、これをそのまま利用することもできます。

作成したPDFビューア(サンプル)

作成したPDFビューア(サンプル)

ご興味のある方はぜひ評価版をお試しください。
以上、PDFViewerCtrlのご紹介でした。
PDF Viewer SDK で簡単PDFビューア作成(4)に続きます。

評価版のお申し込み:
http://www.antenna.co.jp/oem/ViewerSDK/trial.html
お問い合わせ:
SDKはOEM販売となります。OEMご相談窓口へお問い合わせください。


PDF Viewer SDK で簡単PDFビューア作成(1)

『Antenna House PDF Viewer SDK』は PDF表示機能をアプリケーションに組み込むための開発者向けSDKです。
SDKに含まれるPDFViewerCtrlはGUIアプリケーションに簡単にPDFビューア機能を組み込むことを目的としたコンポーネントです。本日はPDFViewerCtrlを使用して、簡単なPDFビューアを作成して見たいと思います。.Net/ActiveXで開発が可能ですが、今回は.Net版を利用してC# でフォームアプリケーションを作成します。

開発環境
  • Visual Studio 2010 SP1(Visual C#)
  • .Net Framework 4.0

プロジェクトの作成

開発の準備としてVisual Studioを起動する前に、環境変数”Path”にbin¥Win32 フォルダのパスを追加しておきます(.Net版の場合のみ)。
Visual Studioを起動したら、新しいプロジェクトを作成します。 [ファイル]-[新規作成]-[プロジェクト]から「新しいプロジェクト」ダイアログを開きます。

Visual Studio 起動画面

Visual Studio 起動画面

今回は C#フォームアプリケーションとして開発するので、VisualC#の「Windowsフォーム アプリケーション」を選択します。
適当なプロジェクト名(ここでは” AvsDotNetGuiSample”)を入力し[OK]を押すと、プロジェクトが作成されます。

作成されたプロジェクト画面

作成されたプロジェクト画面

PDFViewerCtrlの登録

次にPDFViewerCtrlをツールボックスから選択しフォームデザイナ上で貼り付けられるようにするためにVisual Studioに登録します。

メニューから[ツール]-[ツールボックス アイテムの選択]を選ぶと「ツールボックスアイテムの選択」ダイアログが表示されます。このダイアログで、右下の「参照…」ボタンを押してbin¥Win32ディレクトリにある AvsDotNetGuiCtl.dllを選択します。

ツールボックス:アイテム選択画面

ツールボックス:アイテム選択画面

すると「.Net Frameworkコンポーネント」タブに “PDFPageViewCtrl” “PDFThumbnailCtrl”が表示されます。それぞれ、PDF表示用コントロール、サムネイル表示用のコントロールになります。今回は“PDFPageViewCtrl”を利用していきます。

“PDFPageViewCtrl” “PDFThumbnailCtrl”にチェックが付いていることを確認して[OK]を押します。

ダイアログが閉じたあと Visual Studioのツールボックスペインを開くと、“PDFPageViewCtrl” “PDFThumbnailCtrl”のアイコンが追加されているのを確認してください。

アイコン追加確認画面(画像右下)

アイコン追加確認画面(画像右下)

以上で、コントロールを貼り付ける準備が出来ました。

次回は、実際にコントロールを貼り付けて、PDFファイルをオープンするコードを追加して行きたいと思います。


Pages: Prev 1 2 3 Next