.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