ここでは、VB.NET, C# でPDF ファイルをフォーム上に表示して印刷するサンプルコードを掲載しています。
スポンサーリンク
Acrobat SDK をダウンロードする ( 事前準備 )
Windows フォーム上で PDFを表示したり印刷するのに、Adobe から提供されているブラウザコントロールをプロジェクトに組み込むまでの手順になります。準備が整っている方はこの部分は読み飛ばしも問題ないです。
まずは、下記のサイトから Adobe SDK を取得します。
※ SDK 8.2 はユーザー登録が必要でした。
DLL ファイルの取得 ( 事前準備 )
上記で取得した SDK 内のサンプルプロジェクト AcrobatActiveXVB をコンパイルすると、以下の2つの dll ファイルが作成されますので、プロジェクトの参照設定で追加すれば PDF ブラウザコントロールが使用できるようになります。
- AxInterop.AcroPDFLib.dll
- Interop.AcroPDFLib.dll
PDF ファイルをフォーム上に表示
プロジェクトに参照設定で追加した PDF ブラウザコントロール上に、PDF ファイルを表示するサンプルコードです。
VB.NET
' ブラウザコントロールの作成 Dim pdfOcx As New AxAcroPDFLib.AxAcroPDF() pdfOcx.Dock = DockStyle.Fill ' フォーム全体に表示する() Me.Controls.Add(pdfOcx) ' フォームにコントロールを追加 ' PDF ブラウザコントロールに指定したPDFファイルを表示する pdfOcx.LoadFile("E:\test.pdf")
C#
// ブラウザコントロールの作成 AxAcroPDFLib.AxAcroPDF pdfOcx = new AxAcroPDFLib.AxAcroPDF(); pdfOcx.Dock = DockStyle.Fill; // フォーム全体に表示する this.Controls.Add(pdfOcx); // フォームにコントロールを追加 // PDF ブラウザコントロールに指定したPDFファイルを表示する pdfOcx.LoadFile(@"E:\test.pdf");
PDF ファイルを印刷する
Adobe Reader を起動することなく、PDF ブラウザコントロールから印刷を行うこともできます。詳細はサンプル内のコメントを参照ください。
VB.NET
' ブラウザコントロールの作成 Dim pdfOcx As New AxAcroPDFLib.AxAcroPDF() pdfOcx.Dock = DockStyle.Fill ' フォーム全体に表示する() Me.Controls.Add(pdfOcx) ' 注意!! ' フォームへコントロール追加後に非表示にしないと例外発生 pdfOcx.Visible = False ' 非表示にする 'pdfOcx.Hide() ' 非表示 ' PDF ファイルの読み込み pdfOcx.LoadFile("E:\test1.pdf") ' 以下のコードでもOK(URL指定でも多分OK) 'pdfOcx.src = "E:\test1.pdf; pdfOcx.printAll() ' 問答無用で全ページ印刷(デフォルトプリンタ) pdfOcx.printPages(1, 2) ' 印刷範囲を指定して印刷(デフォルトプリンタ) pdfOcx.printWithDialog() ' 印刷ダイアログを出力
C#
// ブラウザコントロールの作成 AxAcroPDFLib.AxAcroPDF pdfOcx = new AxAcroPDFLib.AxAcroPDF(); // フォームにコントロールを追加 this.Controls.Add(pdfOcx); // 注意!! // フォームへコントロール追加後に非表示にしないと例外発生 pdfOcx.Visible = false; // 非表示にする //pdfOcx.Hide(); // 非表示 // PDF ファイルの読み込み pdfOcx.LoadFile(@"E:\test1.pdf"); // 以下のコードでもOK(URL指定でも多分OK) //pdfOcx.src = @"E:\test1.pdf"; pdfOcx.printAll(); // 問答無用で全ページ印刷(デフォルトプリンタ) pdfOcx.printPages(1, 2); // 印刷範囲を指定して印刷(デフォルトプリンタ) pdfOcx.printWithDialog(); // 印刷ダイアログを出力