はじめに
最近では、業務連絡や申請書などをPDF文書で配布する機会が多くなってきています。印刷による配布はもちろんのこと、E-Mailに添付して関係者だけに配ることも多くなっています。重要な書類や機密性の高い文書を間違って違う相手にメールして見られたら大変なので、PDF作成アプリケーションのほとんどにパスワードを設定する機能が用意されています。
しかし、画像の機密保護に対してはどうでしょうか。被写体によっては機密性の高いものや勝手に配布されては困るものがあります。画像に対しても閲覧や編集/印刷などの制限をかけるセキュリティ設定ができるといいですね。
LEADTOOLS 16.5J Document ImagingのPDF Write Plug-Inには、画像をPDFに変換する機能とともに、PDF作成時に読み取りパスワードや文書の属性変更に制限をかける機能が用意されています。今回は、JPEGフォーマットの画像をPDF化し、読み取りとPDF文書の属性に制限をかけるアプリケーションを作成してみました。
対象読者
Visual Basic、Visual C# 2005/2008/2010を使ってプログラムを作ったことのある人
必要な環境
Visual Basic、Visual C#、Visual Studioの2005/2008/2010でプログラムが作れる環境。なお、本プログラムはWindows Vista上で動作するVisual Studio 2008を使用して作成し、動作確認を行っています。
LEADTOOLS 16.5Jを使って作成したアプリケーションを配布する場合、アセンブリファイルを添付する必要があります。今回作成するアプリケーションを正常に動作させるため、次のファイルを実行プログラムと同じフォルダにインストールしてください。
- Leadtools.dll
- Leadtools.Codecs.dll
- Leadtools.Codecs.Cmp.dll
- Leadtools.Codecs.Fax.dll
- Leadtools.Codecs.Pdf.dll
- Leadtools.WinForms.dll
- PdfDll32.dll(64ビットの場合はPdfDll64.dll)
なお、サンプルプログラムでは、JPEG画像のあるフォルダおよびPDF出力フォルダを「c:¥pdf」というフォルダに設定してあるため、プログラムを実行する際は、このフォルダを作成し変換したいJPEG画像を入れておいてください。
また、この記事はトライアル版にてサンプルソースを使用することを前提とした内容になっています。実際の製品版でPlug-In製品を使用するためには、別途購入する必要があるため、ご注意ください。
LEADTOOLS 16.5JをVisual Studio 2010(.NET Framework 4)で使用する場合には、プロジェクト内に生成される「App.config」ファイルの<startup>要素にuseLegacyV2RuntimeActivationPolicy属性を追加して「True」に設定する必要があります。
この設定を行わない場合、ビルド時にエラーが発生します。以下のように、「App.config」ファイル内の<startup>要素に「useLegacyV2RuntimeActivationPolicy」属性を追加してください。
<startup useLegacyV2RuntimeActivationPolicy="true">
また、作成するプロジェクトによっては、この「App.config」ファイルが生成されない場合があります。その場合は、テキストファイルでこの「App.config」ファイルを作成しプロジェクトに追加してください。作成するファイル名は必ず「App.config」にし、以下の内容を記述します。
<?xml version="1.0"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup> </configuration>
「App.config」ファイルを修正/追加しても、プログラム実行時に次のような実行エラーが出る場合があります。
この場合は、次の手順でプロジェクトのプロパティの「対象フレームワーク」を「.NET Framework 4 Client Profile」から「.NET Framework 4」に変更します。
- 「プロジェクト」メニューの[xxxのプロパティ]を選ぶ
- 「コンパイル」タブをクリックし、[詳細コンパイルオプション...]ボタンをクリックする
- 「対象のフレームワーク」を「.NET Framework 4 Client Profile」から「.NET Framework 4」に変更
- プロジェクトのプロパティを閉じ、プロジェクトを実行
- 再び同じ手順で「詳細コンパイルオプション」の「対象のフレームワーク」を「.NET Framework 4 Client Profile」に戻す