トラスト・ソフトウェア・システム
トラスト・ソフトウェア・システム

PDF Printer(PDF文書印刷) VB6.0サンプル

「PDF Printer」ソフトは、PDF文書を印刷するためのコンポーネントです。

このコンポーネントは高いパフォーマンスと統合のし易さが特徴で、以下の3つのバージョンで提供しています。
  • APIバージョンではアプリケーションに印刷機能を追加でき、それを制御します。
  • コマンドライン(バッチ処理)での大量印刷。
  • バックグラウンドでの自動印刷を行うサービス。
印刷するPDF文書は、インターネット上の文書をHTTPで指定できます。

表示しているPDF文書を印刷する場合は、PDFViewer(PDF表示)でも印刷できます。

他にC++C#Java のサンプルを公開しています。
無償評価版(リンク先は英語)はこちらです。 ダウンロード手順
価格見積り

無償評価版のダウンロードとインストール

 ライブラリ(評価版API)は無償でダウンロード(試用)できますので、PDF Printer ダウンロード手順を参照してダウンロードください。
 ファイルをダウンロードしてから、インストールもしくは適当なフォルダーに展開します。以下のようなフォルダーができあがりますので、適宜ご利用ください。
binライブラリやライセンスマネージャーなど
doc使用説明書やjavadocなど
includeC/C++用のヘッダー(.h)ファイル
jarPRNA.jar(Javaのラッパー)
libC/C++用のlibファイル
samples各種開発言語のサンプル
サンプルの実行前に、bin/PdfPrintAPI.dllをサンプル実行イメージと同じフォルダーにコピーしてください。また、無償評価版と共にダウンロードしたライセンスキーをbin/LicenseManager.exeを使って登録してください。 ライセンスキーの登録方法はこちらです。

プロジェクトの作成と参照設定

  1. 標準 EXEプロジェクトを新規に作成します。
  2. PDF Printerライブラリを参照する設定をします。
  3. Visual Basic6.0のメインメニューで、「プロジェクト(P)」→「参照設定(N)...」を選択します。
    以下のようなダイアログが表示されますので、「3-Heights(TM) PDF Printer API〜」を探して、チェックをします。この項目が見つからない場合は、ダイアログの参照ボタンを押下して、「PDF Printer」をインストールもしくは展開したフォルダー内の PdfPrinterAPI.dll を指定します。
    PDF Printer参照設定
  4. フォームにボタンなどを貼り付け、そのClickハンドラーを準備しておきます。
  5. 次に、このハンドラーにコードを追加して印刷できるようにします

1っのPDF文書を1っのプリンターで印刷する

 以下のコードをボタンなどのハンドラーに追加すると、1っのPDFを1っのプリンターで印刷する機能を実装できます。
 複数のPDF文書を複数のプリンターに振り分けて印刷する場合は、「複数のPDF文書を1っのプリンターで印刷する」を参照してください。
Private Sub Print_SingleDoc_to_SinglePrinter_Click()
    Dim printer As New PDFPrinter
    printer.PrintFile("some.pdf","")
End Sub
PDFPrinter PDFを印刷するためのクラスです。 はじめに、このクラスのインスタンスを生成します。
PrintFile() 指定のPDF文書を指定のプリンターで印刷します。
このサンプルの場合は、""を指定していますので、デフォルトのプリンターで印刷します。
各引数には以下の値を指定します。
第一引数印刷するPDFファイル名 (インターネット上のPDFを指定する場合)
第二引数プリンター名
null("")文字を指定すると、デフォルトのプリンターで印刷
第三引数PDFが暗号化されている場合のパスワード(省略可)
暗号化されていない場合は、null("")文字を指定
第四引数印刷を開始するページ番号(省略可)
省略すると、第1ページから印刷を開始
第五引数印刷する最終のページ番号(省略可)
省略または-1を指定すると、最後のページまで印刷

1っのPDF文書を1っのプリンターで印刷する(別の方法)

 以下のコードをボタンなどのハンドラーに追加すると、1っのPDFを1っのプリンターで印刷する機能を印刷ジョブの開始と終了をコントロールするように実装できます。
Private Sub Print_SingleDoc_toSinglePrinter_2_Click()
    Dim printer As New PDFPrinter

    'プリンター
    printer.OpenPrinter("")

        '印刷ジョブを開始
        printer.BeginDocument("My Print Job")

            'PDF文書を開く
            printer.Open("some.pdf")
                printer.PrintPage(1)
            printer.Close

        '印刷ジョブを終了
        printer.EndDocument

    printer.ClosePrinter
End Sub
PDFPrinterPDFを印刷するためのクラスです。 はじめに、このクラスのインスタンスを生成します。
OpenPrinter指定のプリンターとの接続を開始します。
BeginDocument印刷ジョブを開始します。
Open印刷するPDF文書を開きます。 (インターネット上のPDFを開く場合)
PrintPage 印刷するページを指定します。この指定は、BeginDocumentとEndDocumentの間で実行します。
すべてのページを印刷する場合は、以下のようにします。
For n = 1 To printer.PageCount
    printer.PrintPage(n)
Next n
ClosePDF文書をクローズします。
EndDocument印刷ジョブを終了します。
Closeprinter プリンターとの接続を終了します。
接続を終了する前には、開始した印刷ジョブを必ず終了します。

複数のPDF文書を1っのプリンターで印刷する

 以下のコードをボタンなどのハンドラーに追加すると、複数のPDF文書を1っのプリンターで印刷する機能を実装できます。
 この実装では、2っのPDF文書それぞれ1ページめを同一のプリンターで1っのプリントジョブとして印刷します。
Private Sub Print_MultiDocs_to_SinglePrinter_Click()
    Dim printer As New PDFPrinter

    'プリンター
    printer.OpenPrinter("")

        '印刷ジョブ開始
        printer.BeginDocument("my print job")

            '1っめのPDF文書
            printer.Open("first.pdf")
                printer.PrintPage(1)           '最初のページを印刷
            printer.Close

            '2っめのPDF文書
            printer.Open("second.pdf")
                printer.PrintPage(3)           '3ページめを印刷
            printer.Close

        '印刷ジョブ終了
        printer.EndDocument

    printer.Closeprinter
End Sub
PDFPrinter PDFを印刷するためのクラスです。 はじめに、このクラスのインスタンスを生成します。
OpenPrinter プリンターとの接続を開始します。
BeginDocument 印刷ジョブを開始します。
Open印刷するPDF文書をオープンします。 (インターネット上のPDFをオープンする場合)
PrintPage オープンされたPDF文書の印刷するページを指定します。
すべてのページを印刷する場合は、以下のようにします。
For n = 1 To printer.PageCount
    printer.PrintPage(n)
Next n
ClosePDF文書をクローズします。
2っめ以降のPDFはそれ以前のPDFをCloseした後にOpenし、PrintPageで印刷するページを指定します。
EndDocument 印刷ジョブの指定を終了します。
印刷ジョブを終了する前には、オープンしたPDF文書を必ずクローズします。
ClosePrinter 印刷処理を終了します。
印刷処理を終了する前には、開始した印刷ジョブを必ず終了します。

1っのPDF文書を複数のプリンターで印刷する

 以下のコードをボタンなどのハンドラーに追加すると、1っのPDF文書を複数のプリンター(複数の印刷ジョブ)で印刷する機能を実装できます。
 この実装では、1っのPDF文書の1ページめと、2から3ページめをそれぞれ別のプリンターで印刷します。
Private Sub Print_SingleDoc_to_MultiPrinters_Click()
    Dim printer As New PDFPrinter     '(1)

    'PDF文書を開く
    printer.Open("some.pdf")          '(2)

        '1っめのプリンター
        printer.OpenPrinter("")       '(3)

            '印刷ジョブ
            printer.BeginDocument("my print job")   '(4)
                printer.PrintPage(1)  '(5)
            printer.EndDocument       '(6)

        printer.ClosePrinter          '(7)

        '2っめのプリンター
        printer.OpenPrinter("The second printer")   '(8)

            '印刷ジョブ
            printer.BeginDocument("my print job")   '(9)
                printer.PrintPage(2)  '(10)
                printer.PrintPage(3)  '(11)
            printer.EndDocument       '(12)

        printer.ClosePrinter          '(13)

    'PDF文書を閉じる
    printer.Close                     '(14)
End Sub
(1)PDFPrinter PDFを印刷するためのクラスです。 はじめに、このクラスのインスタンスを生成します。
(2)Open印刷するPDF文書をオープンします。 (インターネット上のPDFをオープンする場合)
(3)OpenPrinterプリンターをオープンします。
このサンプルでは、最初にデフォルトのプリンターを指定します。
(4)BeginDocument印刷ジョブを開始します。
(5)PrintPag1ページめを印刷するように指定します。
(6)EndDocument印刷ジョブを終了します。
(7)ClosePrinter最初にオープンしたデフォルトのプリンターをクローズします。
(8)OpenPrinterプリンター名を指定してオープンします。
このサンプルでは、デフォルトのプリンターではなくプリンター名を指定しています。
(9)BeginDocument2っめの印刷ジョブを開始します。
同じ名前を指定しても別のジョブになります。
(10)PrintPage2ページめを印刷するように指定します。
(11)PrintPage3ページめを印刷するように指定します。
(12)EndDocument2っめの印刷ジョブを終了します。
(13)ClosePrinter2っめにオープンしたプリンターをクローズします。
(14)Close印刷処理を終了します。

インターネット上のPDF文書を指定して印刷する方法

PDF Printerは、PDF文書を指定する際にHTTPプロトコルでファイルを指定できます。以下の形式で指定します。
http://[username:password@]domain[:port][/resource]
"username"および"password"は基本認証(Basic Authentication)のユーザー名とパスワード指定です。
このように指定すると、ネットワーク上のPDF文書を直接指定のプリンターで印刷できます。複数のPDF文書を指定する場合は、ローカルのPDFとネットワーク(Web)上の(リモート)PDFを混在させることもできます。
具体的には、以下のようにファイルを指定します。
printer.Open("http://www.pdf-tools.trustss.co.jp/data/Receipt2.pdf")

サンプルコード

 VB6.0 PDF Printer サンプル(MS Visual Basic6.0 Project) PDFprnVb6.zip

ご質問、お問い合わせ

 メールで support@TrustSS.co.jp 宛てにお送りください。
または、質問のページからお送りいただくようお願いします。ご要望も承っております。(匿名で送れます。)

(記載の会社名および製品名は、各社の登録商標および商標です。)
PDF製品 VB6.0サンプル
PDF Security
PDF Validator
PDF to PDF/A Converter
PDF to Image Converter
Image to PDF Converter
PDF Printer
PDF Prep Tool Suite
PDF Optimizer
PDF Command Line Suite
PDF Extract