IM-PDFDirectPrint for Accel Platform プログラミングガイド 第9版 2023-10-01

チュートリアル

前提条件

このチュートリアルでは、 JavaEE開発モデル におけるプログラミングの方法について説明します。
このチュートリアルでは、直接印刷機能(利用するAPI は jp.co.iothe.pdfdirectprint パッケージ)のサンプルを作成します。

このチュートリアルで作成したプログラムは、C:\temp\sample.pdf ファイルをサンプルデータとして利用しますので、サンプルデータを作成してください。
プリンタ名は環境に合わせて指定ください。

用語解説

  • Resin をインストールしたディレクトリを %RESIN_HOME% と略します。
  • Apache HTTP Server をインストールしたディレクトリを %APACHE_HOME% と略します。
  • Storage として使用するディレクトリを %PUBLIC_STORAGE_PATH% と略します。
  • Webサーバ利用時の静的コンテンツを配置するディレクトリを %WEB_PATH% と略します。
  • 直接印刷エンジン をインストールしたディレクトリを %PDFPRINTX% と略します。

環境

チュートリアルを学ぶための環境です。
このドキュメント内では、ここで示す環境を前提として解説しています。

サーバ環境

intra-mart Accel Platform と IM-PDFDirectPrint for Accel Platform が、正常にインストールされていることを前提とします。

IM-PDFDirectPrint for Accel Platform 環境

サーバには IM-PDFDirectPrint for Accel Platform が正しくインストールされ、APIが正常に動作している状態であることが前提です。
サーバは Windows Server 2012 で動作しているものとして説明をします。
また、Java はOracle JDK がインストールされているものとします。

準備

このドキュメントではC:\temp をプログラム作成の作業領域として説明しています。
このフォルダが存在しない場合には、予め作成しておいてください。
別なフォルダで作業をする場合には、その環境に合わせてドキュメントを読みすすめてください。
プログラム作成には、テキストエディタが必要です。プログラム作成のできるテキストエディタをご用意ください。

サンプルプログラムの場所

document/tutorial/DirectPrintSample.jsp
にサンプルプログラムを用意しておりますので参照してください。

サンプルデータの用意

C:\temp\sample.pdf ファイルを用意ください。

JSPプログラムの作成

このサンプルでは、JSPから IM-PDFDirectPrint for Accel Platform の 直接印刷機能を呼び出します。
テキストエディタを起動して、以下のプログラムを記述します。
この時、ファイル名の大文字・小文字は厳密な意味を持ちますので、注意してください。
作成した JSPファイルは、以下のフォルダに保存してください。
ファイル名 保存場所
DirectPrintSample.jsp %RESIN_HOME%/webapps/{アプリケーション名}/
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<%@ page import="java.util.Date" %>
<%@ page import="java.text.ParseException" %>
<%@ page import="java.text.SimpleDateFormat" %>

<%@ page import="jp.co.iothe.pdfdirectprint.DirectPrint" %>
<%@ page import="jp.co.iothe.pdfdirectprint.intra_mart.IMDirectPrintFactory" %>
<%@ page import="jp.co.iothe.pdfdirectprint.PaperOrientation" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui" %>
<%
	// 環境に合ったインスタンスを生成
	DirectPrint directPrint = IMDirectPrintFactory.createDirectPrint();
	//DirectPrint directPrint = IMDirectPrintFactory.createDirectPrint("http://localhost:8080/pdfdirectprint/webapi/directprint", 60, 600);

	// 印刷対象PDFファイル
	String fileName = "C:\\temp\\sample.pdf";
	String printerName = "PrinterName";
	String password = "";
	String resultMessage = "";

	// 印刷部数
	directPrint.setCopies(1);					//  部数を指定

	// 部単位でまとめて印刷する
	directPrint.setCollate(false);				// 部単位で印刷しない
	directPrint.setCollate(true);				// 部単位で印刷する

	// 印刷ページ範囲
	directPrint.setPrintRange("1,2");			// 1ページ、2ページ
	directPrint.setPrintRange("1-5");			// 1ページ目から5ページ目
	directPrint.setPrintRange("1-5,10-");		// 1ページ目から5ページ目、10ページ目から最終ページまでを印刷
	directPrint.setPrintRange("*");				// 全ページ

	// プリンタ名
	directPrint.setPrinterName("def");			// デフォルトプリンタ(環境設定で指定されているプリンタ)
	directPrint.setPrinterName(printerName);	// プリンタ指定

	// 用紙サイズ
	directPrint.setPaperSize("A2");				// A2     : A2 420×594mm
	directPrint.setPaperSize("A3");				// A3     : A3 297×420mm
	directPrint.setPaperSize("A4");				// A4     : A4 210×297mm
	directPrint.setPaperSize("A5");				// A5     : A5 148×210mm
	directPrint.setPaperSize("A6");				// A6     : A6 105×148mm
	directPrint.setPaperSize("B4");				// B4     : B4 257×364mm
	directPrint.setPaperSize("B5");				// B5     : B5 182×257mm
	directPrint.setPaperSize("legal");			// legal  : リーガル 8 1/2×14インチ
	directPrint.setPaperSize("letter");			// letter : レター 8 1/2×11インチ
	directPrint.setPaperSize("def");			// def    : 印刷するPDFファイルの用紙サイズ

	// 用紙の向き
	directPrint.setPaperOrientation(PaperOrientation.Landscape);	// 横向き
	directPrint.setPaperOrientation(PaperOrientation.Portrait);		// 縦向き
	directPrint.setPaperOrientation(PaperOrientation.Default);		// 自動(PDFに合わせる)

	// 縮尺率
	directPrint.setScale("50");					//  50%
	directPrint.setScale("100");				// 100%
	directPrint.setScale("def");				// 用紙に合わせる

	// 画像変換する
	directPrint.setImage(false);				// PDFファイルのまま印刷
	directPrint.setImage(true);					// 画像に変換してから印刷

	// 中央配置する
	directPrint.setCenter(false);				// 用紙の端に配置
	directPrint.setCenter(true);				// 用紙の中央に配置

	// 印刷処理実行
	int ret = directPrint.print(fileName, password);

	if(ret != 0) {
		Exception e = directPrint.getException();
		if(e != null) {
			resultMessage = e.getMessage();
		}
	}
	else{
		resultMessage = "Success !!";
	}
%>
<imui:head>
  <title>IM-PDFDirectPrint-チュートリアル-JavaEE開発モデル-DirectPrint</title>
</imui:head>

<div class="imui-title">
  <h1>IM-PDFDirectPrint チュートリアル JavaEE開発モデル DirectPrint</h1>
</div>

<div class="imui-form-container">
  <div class="imui-chapter-title"><h2>実行結果</h2></div>
    <form>
      <table class="imui-table">
        <tbody>
          <tr>
            <th class="wd-225px">出力PDFファイル</th>
            <td><%= fileName %></td>
          </tr>
          <tr>
            <th class="wd-225px">プリンター</th>
            <td><%= printerName %></td>
          </tr>
          <tr>
            <th class="wd-225px">戻り値</th>
            <td><%= ret %></td>
          </tr>
          <tr>
            <th class="wd-225px">メッセージ</th>
            <td><%= resultMessage %></td>
          </tr>
        </tbody>
      </table>
    </form>
</div>

コラム

プリンタ名は環境に合わせて指定ください。

プログラム実行

準備

実行させるための準備の手順を説明します。

メニュー設定

  1. テナント管理者でログインし、以下のメニューを設定します。

  2. [テナント管理]-[メニュー]画面を開きます。

  3. フォルダを作成します。

    ../../_images/tutorial_1.png
  4. URLに、DirectPrintSample.jsp を設定し、メニューを追加します。

    ../../_images/tutorial_2.png
  5. メニュー設定は完了です。

    ../../_images/tutorial_3.png

プログラム実行

メニューで『DirectPrintSample』を選択してください。作成したJSPファイルが実行されます。
JSP の実行エラー(コンパイルエラー)になってしまった場合には、エラーメッセージの内容に従いJSP プログラムを修正してください。
JSP プログラムが正しく動作しているにも関わらず実行時エラーになってしまう場合は、エラーの内容にしたがって環境を正しく構築してください(環境を変更した場合は、サーバの再起動が必要になる場合があります)。

コラム

PDFファイルを画像に変換してから印刷する機能(setImage)は、特殊な図面やプリンタ向けの機能です。通常は設定不要です。

確認

プログラムが正しく実行されると IM-PDFDirectPrint for Accel Platform が、指定プリンタに出力します。
指定プリンタから正しく出力されればすべての処理が正しく行われたことになります。