ここでは、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(); // 印刷ダイアログを出力