タグ別アーカイブ: PDF表示

.NET Framework アプリケーションからPDF印刷

以前の記事でご紹介しましたが、「PDF Viewer SDK」を使うとPDFファイルを印刷するプログラムを開発することができます。

PDF Viewer SDKでPDF自動印刷
PDF Viewer SDKでPDF自動印刷(その2)

PDF Viewer SDK」ではC/C++言語APIの動的ライブラリ(DLL)をご用意しております。

しかしながら.NET Frameworkで開発されるお客様も多いようで、.NETからPDFファイルを印刷したい、という声もよく伺います。幸い.NET Framework にはDLLのネイティブコードを呼び出すプラットフォーム呼び出しP/Invoke)の機能があります。P/Invokeを利用すれば.NET Framework からPDFを印刷することができます。「PDF Viewer SDK」には、このようなサンプルコード “ApiPInvokeCSharp” を添付しておりますのでご活用ください。

ここで一点注意があります。このサンプルではWindowsフォームアプリケーションで標準的に利用されるSystem.Drawing.Printing名前空間を使用します。System.Drawing.PrintingWindowsフォームアプリケーション向けの印刷関連のサービスをまとめたもので、印刷ダイアログを表示したり、印刷先のデバイスを取得したりするのに利用します。

通常のデスクトップアプリケーションではこの方法で問題ないのですが、残念ながらSystem.Drawing.Printing 名前空間はサービスやASP.NETでの動作がサポートされていません。

 System.Drawing.Printing 名前空間

リンク先には、サービスやASP.NETから利用した場合動作が不安定になったりパフォーマンスの低下や実行時例外が発生するかもしれない、と書いてあります。これはWPFで利用される System.Printing名前空間も同様です。

サービスからサイレント印刷を行うようなプログラムを開発する場合は、この方法では問題があります。この場合にはちょっとしたコマンドラインをC/C++ APIで開発して.NETから呼び出す、もしくは、COMコンポーネントとして印刷機能を用意して呼び出すなどの工夫が必要になります。「PDF Viewer SDK」にも印刷コマンドラインのサンプルコード“ApiPdfPrint” を添付しています。こちらも併せてご活用ください。

以上、.NET FrameworkからPDF印刷する方法と注意点のご紹介でした。

詳しい機能についてぜひ製品ページをご覧ください。

製品ページ:
https://www.antenna.co.jp/pdfviewersdk/
評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html


PDF Viewer SDK


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

前回までで、印刷や保存やコピーを禁止したPDFビューアができました。
本日は、さらにユーザーが他のファイルをオープンできないようにして、指定したファイルだけ表示するようにしてみたいと思います。

●ファイルのオープンを禁止する

ファイルのオープンを禁止するには、まずオープンボタンを用意しないようにします。
下の画面は第5回までの記事で作成したPDFビューアからオープンボタンを削除したPDFビューアです。

これでボタンからオープンはできないのですが、SDKの2つのコントロールPDFPageViewCtrlとPDFThumbnailCtrl は、標準でファイルのドラッグ&ドロップを受け付けPDFをオープンするようになっています。

ドラッグ&ドロップでのオープンを禁止するには、第5回で紹介したドラッグ&ドロップ用のイベントハンドラを実装することで行います。

ここでは、DragDropFilesイベントのイベントハンドラを実装します。
Visual StudioのフォームデザイナーでPDFPageViewCtrlのプロパティを開き、イベントの画面で「DragDropFiles」を探して、右の空欄部分をダブルクリックします。

イベントハンドラの雛形コードが生成されますので、以下のように実装します。

    private int pdfPageViewCtrl1_DragDropFiles(string[] files)
    {
        return 0;
    }

このコードは、既定の動作(PDFファイルのオープン)を上書きし、何も処理を行わないようにします。これでアプリケーションにファイルがドラッグ&ドロップされてもオープンできなくなります。

PDFThumbnailCtrl もドラッグ&ドロップが可能ですので、DragDropFilesイベントのイベントハンドラを同じように実装してオープンできないようにします。

あとは、コントロールのOpenDocumentメソッドで、アプリケーションの起動時などに、表示したいPDFファイルをオープンするようにすれば、特定のファイルしかオープンできない閲覧専用のPDFビューアを作成することができます。

以上、「Antenna House PDF Viewer SDK」を利用した閲覧専用のPDFビューアの作り方のご紹介でした。

詳しい機能についてぜひ製品ページをご覧ください。

製品ページ:
https://www.antenna.co.jp/pdfviewersdk/
評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html

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

前回に続いて、印刷や保存やコピーを禁止したPDFビューアの作り方を紹介していきます。
本日はPDFの編集(注釈やページの入れ替え)や内容のコピーを禁止する方法を紹介します。

●PDFの編集やコピーを禁止する

PDF Viewer SDK で提供しているコントロールは、PDFファイルで制限されていなければ、注釈やページの編集、テキストのコピーができます。

保存ボタンを用意しなければ保存はできないのですが、編集もできないように制限したいところです。この動作はコントロールのCtrlStyleプロパティで変更できます。

〇読み取り専用モード

コントロールを読み取り専用にするには、CtrlStyleプロパティにAGCS_READONLYを指定します。

public Form1()
{
      InitializeComponent();

      pdfPageViewCtrl1.CtrlStyle |= (int)AvsCtrlStyle.AGCS_READONLY;
      pdfThumbnailCtrl1.CtrlStyle |= (int)AvsCtrlStyle.AGCS_READONLY;
}

PDFPageViewCtrl では、注釈の移動や削除、注釈の属性の編集などができなくなります。注釈を選択して右クリックメニューから開くプロパティダイアログでは、通常は線のスタイルや色を編集できますが、読み取り専用時にはプロパティが編集できません。

右クリックメニューから注釈のプロパティを開く

プロパティダイアログ

また、PDFThumbnailCtrl では、右クリックメニューでカット&ペーストや新規ページ挿入などのページ編集ができなくなります。

〇プレビューモード

読み取り専用モードにすることで編集はできないようになりました。しかし、読み取り専用モードでは PDFPageViewCtrl でのテキストはコピーできます。

テキストをコピーできないようにするには、AGCS_PREVIEWMODEを指定します。

      pdfPageViewCtrl1.CtrlStyle |= (int)AvsCtrlStyle.AGCS_PREVIEWMODE;
      pdfThumbnailCtrl1.CtrlStyle |= (int)AvsCtrlStyle.AGCS_READONLY;

プレビューモードでは注釈も選択できなくなりポップアップ注釈も開きません。
これで編集やコピーを禁止することができました。

CtrlStyleプロパティを使うと、この他にも注釈を非表示にしたり、オープンアクションを実行しない等の制御ができます。

次回は、ユーザが他のファイルはオープンできないようにしてみたいと思います。

詳しい機能についてぜひ製品ページをご覧ください。

製品ページ:
https://www.antenna.co.jp/pdfviewersdk/
評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html

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

PDFは表示させたいけれど、その内容は印刷されたり保存されたりコピーされたくない、という場合は多いようです。

今回は、印刷や保存やコピーを禁止したPDFビューアの作成方法をご紹介したいと思います。
「Antenna House PDF Viewer SDK」を利用したPDFビューアの作成方法は、以下の記事を参考にしてください。

●印刷や保存を禁止する

次の画面はSDKに付属するサンプルビューアAvsDotNetGuiCtlSampleのソースコードをVisual Studioのフォームデザイナーで開いたところです。

赤枠部分がSDKで提供しているWindows Formコントロールです。それ以外のメニューやボタンはサンプルビューア側で用意しています。

その動作もサンプルビューア側で実装されています。たとえば、印刷メニューが選択された場合はそのイベントハンドラで印刷メソッドPrintDocumentを呼び出します。

private void printMenuItem_Click(object sender, EventArgs e)
{
      pdfPageViewCtrl1.PrintDocument(true, "", 0, 0, 0, 0, 0, 
           AvsPrintOrientation.APO_AUTO, AvsPrintPageScaleMode.APS_SHRINKTOPAPER, 
           true, 1, false, "", 0);
}

最初の引数では、コントロール側で実装ずみの印刷ダイアログを表示するようtrueを指定しています。

実は、印刷や保存を禁止するのは簡単で、単にこのようなメニューやボタンなどのGUIを用意せず、印刷などの処理を呼び出さなければよいのです。そうすればアプリケーションのユーザは操作を行うことができません。実際、第5回までの記事で作成したPDFビューアは、印刷や保存ボタンを用意していませんので、印刷や保存ができません。

では、ショートカット・キーはどうでしょうか。

ショートカット・キーもサンプルビューア側でメニュー項目に割り当てています。以下はForm1.cs ファイルのForm1コンストラクタの冒頭付近のコードです。

printMenuItem.ShortcutKeyDisplayString = "Ctrl+P";
printMenuItem.ShortcutKeys = Keys.Control | Keys.P;

ショートカット・キーもこのような割当を行わなければアプリケーションのユーザは操作ができません。

以上のように、コントロールの機能をアプリケーションから呼び出せないようにすることで、印刷や保存の制限は簡単にできます。

それでは、PDFの編集(注釈やページの入れ替え)や内容のコピーを禁止するにはどうすればよいでしょうか。これはまた次回にご紹介したいと思います。

詳しい機能についてぜひ製品ページをご覧ください。

製品ページ:
https://www.antenna.co.jp/pdfviewersdk/
評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html

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

~イベント処理~

以前の 記事 で、PDF Viewer SDK の PDF 表示とサムネイルの二つのコントロールの同期を取るために、一方でページを移動したらもう一方も同じページに移動するイベント処理をご紹介しました。

このようなイベント処理を実装する方法を詳しく教えてほしいというリクエストを頂きましたので、本日は画面操作を交えてご紹介します。

まず、Visual Studio のフォームデザイナ上で PDFPageViewCtrl を選択してから「プロパティ」タブを開き、タブの上部にある「イベント」ボタンをクリックします。

pdfviwer01

すると各種イベントが並んだ画面が表示されます。PDF ビューアーコントロール特有のイベントは「その他」に表示されます。

pdfviwer02

ここでは、DoAction イベントを実装してみます。このイベントはリンク注釈をクリックしたときに発生するイベントです。

まずプロパティの DoAction イベント右の空欄部分をダブルクリックします。するとコードエディタに画面遷移し、イベントハンドラの雛形コードが挿入されます。

 private int pdfPageViewCtrl1_DoAction(AvsActionType actionType, string data)
 {
        return default(int);
 }

「プロパティ」タブを確認していただくと、DoAction イベントには挿入されたメソッドが登録されていることが分かります。

pdfviwer03
これで準備はできました。あとはイベントハンドラの雛形を実装するだけです。

イベントハンドラには、イベントに応じて予め定義された引数があり、イベントに関する必要な情報が渡されます。DoAction イベントでは発生したアクションのタイプ、リンクをクリックした場合の URL 等のデータが渡されます。イベントハンドラはこれらのデータを使って必要な処理を実装していきます。

ここでは、アクションを実行する前に確認ダイアログを表示するようにしてみます。
「いいえ」ボタンを押した場合は、その後のアクション実行を行わないように戻り値 0 を返すようにします。

下記のコードを入力してください。

private int pdfPageViewCtrl1_DoAction(AvsActionType actionType, string data)
{
     if (actionType == AvsActionType.AGAT_LAUNCH 
|| actionType == AvsActionType.AGAT_URI 
|| actionType == AvsActionType.AGAT_INTERNALFILE)
     {
           String msg = String.Format("{0}を開こうとしています。よろしいですか?", data);
           if (MessageBox.Show(this, msg, "", MessageBoxButtons.YesNo) == DialogResult.No)
                return 0;
            }
            return 1;
      }
}

これでイベントハンドラの実装は終了です。

あとはこのコードをビルドして実行するだけです。
実際に実行してみると、コードのとおり確認ダイアログが開きました。

pdfviewer04-3

以上、イベント処理の実装方法のご紹介でした。ご参考になれば幸いです。

詳しい機能についてぜひ製品ページをご覧ください。
製品ページ:
https://www.antenna.co.jp/pdfviewersdk/

評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html


PDF Viewer SDKでPDF自動印刷(その2)

かなり間が空きましたが、以前の 記事 で『Antenna House PDF Viewer SDK』を使えば簡単にPDFの自動印刷プログラムが開発できることをご紹介しました。

4/10 にリリースした「V4.0改訂1版」では、まさにこのような自動印刷プログラムのサンプルをご用意しておりますので、ここで少しご紹介したいと思います。
この他にも この記事 でご紹介しているサンプルプログラムも用意しておりますので、併せてご利用ください。

印刷プログラムでは、PDFファイルと印刷先のプリンター名を指定します。

 ApiPdfPrint.exe path printer [-options]
   path            PDFファイルパス
   printer         プリンター名

これ以外に印刷時のオプションとして、開始・終了ページや用紙にあわせた拡大縮小、印刷部数、両面印刷などの指定ができます。

  -pass password  PDFファイルのオープンパスワード
  -start start    開始ページ番号(1以上)
  -end end        終了ページ番号(ページ数以下)
  -scaling <none/fit/shrink> 拡大縮小
       none:   実際のサイズ
       fit:    ページサイズに合わせる
       shrink: 特大ページを縮小
  -scale scale  カスタム倍率 省略時1.0 ※-scaling none時に有効
  -selectpaper  ページサイズに合わせた用紙サイズを選択する
  -copies <n>     印刷部数(1~100) 省略時1
  -papersize size  用紙サイズ (例 8…A3 297 x 420 mm、9…A4 210 x 297 mm)
  -tray trayno     用紙トレイ (例 7…自動用紙トレイ選択)
  -duplex <simplex/vertical/horizontal> 片面両面
        simplex:    片面印刷
         vertical:   両面印刷(短辺を綴じる)
         horizontal: 両面印刷(長辺を綴じる)
  -colate      部単位で印刷する
  -grayscale   白黒(グレースケール)で印刷する

サンプルのソースコードを添付しておりますので、お客様のシステムへの組込みの参考にして頂いたり、これをベースにもう少し細かな制御を組み込んだりとご活用いただけると幸いです。

以上、PDF自動印刷サンプルプログラムのご紹介でした。 PDF印刷の自動化が必要になったら『Antenna House PDF Viewer SDK』をぜひご検討ください。

詳しい機能についてぜひ製品ページをご覧ください。
製品ページ:
https://www.antenna.co.jp/pdfviewersdk/

評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html


関連記事



PDF Viewer SDK


PDFの組み込み用SDK『Antenna House PDF Viewer SDK V4.0』

弊社では、独自のPDFリーダーの開発に利用できる Windows 向けの SDK を販売しております。

V4.0では、お客様のご質問の多い、印刷、画像化、多言語からの呼び出し、特定の領域の取得についてサンプルを追加しました。

追加サンプル
PDF Viewer API

  • PDF ファイル印刷のサンプル
  • PDF ファイル画像化のサンプル
  • PDF Viewer API を C#言語から利用するサンプル
  • PDF Viewer API を VB.Net 言語から利用するサンプル
  • 指定文字列を検索し矩形位置を取得するサンプル
  • 指定した矩形領域内のテキストを取得するサンプル

PDF Viewer Ctrl

  • PDF Viewer Ctrl をVB.Net 言語から利用するサンプル
  • PDF Viewer Ctrl を WPF 上で利用するC#言語のサンプル

指定した矩形領域内のテキストを取得する機能は、 PDFすべてのテキスト抽出と異なり、ピンポイントで指定した特定領域 のテキストを抜き出すことができます。
この機能を使うと、フォーマットが決まっているPDFデータをバッチ処理で自動仕分けすることができます。(例:書類ナンバーで仕分けを行う等)

PDF Viewer SDK は、PDFを表示する目的以外にも幅広くご利用頂いております。

評価版のお申込
評価版のお申込ページ


『Antenna House PDF Viewer SDK V4.0』評価版インストーラーを配布中!

現在『Antenna House PDF Viewer SDK V4.0』の評価版インストーラーを配布中です。

  • お申込み手続きが不要になりました。
  • インストール後30日間利用可能な評価ライセンスが付属しています。
  • ダウンロード後すぐにご利用いただけます。
  • ビルド済みサンプルPDFビューアーが付属しております。表示や印刷機能をすぐにご確認いただけます。

評価版インストーラーは、下記のページから入手できます。

評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html

以前はお申込み手続きや評価ライセンスを別途入手していただく必要がございましたが、ダウンロードしてすぐに利用開始していただくことが出来るようになりました。
お気軽に『Antenna House PDF Viewer SDK』をお試しください。

pdfviewer

サンプルPDFビューアー

『Antenna House PDF Viewer SDK』は、独自のPDFリーダーの開発に利用できる Windows 向けの SDK です。PDFの表示に加えて、プログラムからの自動印刷や、テキスト抽出や画像ファイルへの変換にも利用できます。
また、注釈やページ移動など PDF 編集ができる GUI コントロールを提供しております。コントロールを組み込むことで簡単にPDFの表示・編集機能をお客様のアプリケーションに追加できます。開発にアクロバットやアドビリーダーは必要ありません!

詳しい機能についてぜひ製品ページをご覧ください。
製品ページ:
https://www.antenna.co.jp/pdfviewersdk/


PDFの組み込み用SDK『Antenna House PDF Viewer SDK V3.5』

弊社では、独自のPDFリーダーの開発に利用できる Windows 向けの SDK を販売しております。

PDFの表示以外にも PDFの表示イメージから指定した矩形範囲内をSVG保存すること や、画像保存、テキスト抽出など、PDFデータの再利用にもご使用いただけます。
その他、Acrobatを使用せずにPDFを印刷したい場合にもご利用いただけます。

是非、評価版にてお試しください。

評価版のお申込
評価版のお申込ページ


PDF Viewer SDK V4.0 のご紹介:システム製品販売開始!

『Antenna House PDF Viewer SDK』はこれまでOEM販売のみ行っておりましたが、2018年10月よりV4としてシステム製品販売を開始しております。

自社のシステムやサービスでご利用になる場合などソフトウェア再頒布の必要がなければ、契約手続き不要でお気軽にご購入していただき早期の導入が可能になりました。
また、評価版やデベロッパライセンスもご用意しておりますので、事前の製品評価や、デベロッパライセンスをご購入いただいてまずは開発を進めるといったこともできます。

評価版のお申込みページよりダウンロードしてお気軽にお試しいただけます。これまで製品を試してみたいけれど、OEM専用販売製品ということで躊躇されていたお客様も、ぜひ一度『Antenna House PDF Viewer SDK』をお試しください。

『Antenna House PDF Viewer SDK』は、独自のPDFリーダーの開発に利用できる Windows 向けの SDK です。PDFの表示に加えて、プログラムからの自動印刷や、テキスト抽出や画像ファイルへの変換にも利用できます。
また、注釈やページ移動など PDF 編集ができる GUI コントロールを提供しております。コントロールを組み込むことで簡単にPDFの表示・編集機能をお客様のアプリケーションに追加できます。開発にアクロバットやアドビリーダーは必要ありません!

詳しい機能についてぜひ製品ページをご覧ください。
製品ページ:
https://www.antenna.co.jp/pdfviewersdk/

評価版をご用意しております。ぜひこの機会にお試しください!
評価版のお申し込み:
https://www.antenna.co.jp/pdfviewersdk/trial.html


Pages: 1 2 Next