SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(LEADTOOLS)

画像をパスワード付きPDFドキュメントに変換する.NETアプリケーションの作成

LEADTOOLS 16.5J Document ImagingのRasterImageViewerコンポーネントを使ったアプリケーションの作成

  • このエントリーをはてなブックマークに追加

フォームの作成

 では、さっそくプログラムを作成しましょう。

 今回は、LEADTOOLS 16.5JのPDF Write Plug-Inを使用します。作成するのは、「ファイルを開くダイアログ」でJPEG画像を選択し、閲覧用パスワードと保存するPDFファイル名を入力してボタンを押すと、閲覧パスワード機能とコピー/印刷/編集を禁止する制限をかけたPDFファイルに変換する、というプログラムです。

GUIのデザイン

 フォームには、これらの機能を実装するために、RasterImageViewerコントロールを1つと、Button・Label・TextBoxコントロールを2つ配置します。また、OpenFileDialogコントロールを1つ配置します。

 TextBoxコントロールは、パスワード入力用はMaxLengthプロパティを「16」に設定し、PDFファイル名入力用はTextプロパティに「sample-1.pdf」と入力しておきます。

フォームのレイアウト
フォームのレイアウト

PDF変換処理

 では、実際に画像をPDF化する処理を作成していきましょう。この処理は、フォームに配置した2つのButtonコントロールのClickイベントハンドラで行います。

画像ファイルを開く処理

 最初に、画像ファイルを開く処理を作成します。ここでは、ユーザーにファイルを開くダイアログを使って、PDF化したいJPEG画像を選んでもらいます。

 選択された画像は、RasterCodecsクラスのLoadメソッドを使用して、RasterImageViewerコントロールのImageプロパティに設定し表示します。Loadメソッドはオーバーロードメソッドですが、引数にファイル名を指定するだけのメソッドを使用します。

Loadメソッドの書式
Load(String)
  • パラメータ
    • fileName

       ロードする画像ファイルの名前を表すString

Visual Basic
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.WinForms

Public Class Form1
    Private codecs As RasterCodecs
    Private fname As String = ""

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ' 入出力ライブラリの起動に必要なデータを初期化
        RasterCodecs.Startup()
    End Sub

    Private Sub open_image_btn_Click(sender As System.Object, e As System.EventArgs) Handles open_image_btn.Click

        ' RasterCodecsオブジェクトを初期化
        codecs = New RasterCodecs()

        'ファイルを開くダイアログを表示
        OpenFileDialog1.Filter = "画像ファイル(jpeg)| *.jpg "
        OpenFileDialog1.FileName = "*.jpg"
        OpenFileDialog1.InitialDirectory = "c:\pdf"

        '開く画像ファイル名を取得
        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            fname = OpenFileDialog1.FileName

            ' 選択した画像をビューワにロード
            RasterImageViewer1.Image = codecs.Load(fname)
            RasterImageViewer1.SizeMode = RasterPaintSizeMode.Fit
        Else
            MessageBox.Show("PDF作成の画像を選んでください", "画像の選択", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If

    End Sub
C#
using Leadtools;
using Leadtools.Codecs;
using Leadtools.WinForms;

namespace Lead_PDF_cs
{
    public partial class Form1 : Form
    {
        private RasterCodecs codecs;
        private String fname = "";

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 入出力ライブラリの起動に必要なデータを初期化
            RasterCodecs.Startup();
        }
        private void open_image_btn_Click(object sender, EventArgs e)
        {
 
            // RasterCodecsオブジェクトを初期化
            codecs = new RasterCodecs();

            //ファイルを開くダイアログを表示
            openFileDialog1.Filter = "画像ファイル(jpeg)| *.jpg ";
            openFileDialog1.FileName = "*.jpg";
            openFileDialog1.InitialDirectory = @"c:\pdf\";

            //開く画像ファイル名を取得
            if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                fname = openFileDialog1.FileName;

            // 画像をビューワにロードします。
                rasterImageViewer1.Image = codecs.Load(fname);
                rasterImageViewer1.SizeMode = RasterPaintSizeMode.Fit;
            }else
            {
                MessageBox.Show("PDF作成の画像を選んでください", "画像の選択", 
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

次のページ
動作確認

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(LEADTOOLS)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6412 2012/02/29 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング