package jp.cssj.cti.examples;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

import jp.cssj.cti.CTIDriver;
import jp.cssj.cti.CTIDriverManager;
import jp.cssj.cti.CTISession;
import jp.cssj.cti.CTIUtils;
import jp.cssj.cti.helpers.StdioErrorHandler;

/**
 * クライアント側に置かれたファイルを変換します。
 */
public class ClientResource {
	/** 接続先のホスト名。 */
	private static final String HOST = "localhost";

	/** 接続先のポート番号。 */
	private static final int PORT = 8099;

	/** パスワード。 */
	private static final String PASSWORD = "kappa";

	public static void main(String[] args) throws Exception {
		// ドライバを取得
		CTIDriver driver = CTIDriverManager.createDriverFor(HOST, PORT);
		// 接続する(ユーザー名は"user"で固定)
		CTISession session = driver.createSession("user", PASSWORD);
		try {
			// test.pdfに結果を出力する
			OutputStream out = new BufferedOutputStream(new FileOutputStream(
					"test.pdf"));
			try {
				session.setOutput(out, "application/pdf");
				// エラーメッセージを標準出力に表示する
				session.setErrorHandler(StdioErrorHandler.getInstance());

				// 添付ファイル
				File file = new File("test/test.gif");
				session.setProperty("output.pdf.attachments.0.uri", file
						.toURI().toASCIIString());
				session
						.setProperty("output.pdf.attachments.0.name",
								"cssj.gif");
				session.setProperty("output.pdf.attachments.0.description",
						"CSSJのロゴ");
				CTIUtils.sendResourceFile(session, file, "image/gif", null);

				// スタイルシートを送る
				// MIME型はtext/css,キャラクタ・エンコーディングは省略
				CTIUtils.sendResourceFile(session, new File("test/test.css"),
						"text/css", null);

				// HTMLファイルを送る
				// MIME型はtext/html,キャラクタ・エンコーディングは省略
				CTIUtils.sendMainFile(session, new File("test/test.html"),
						"text/html", null);
			} finally {
				out.close();
			}
		} finally {
			// セッションを閉じる(忘れやすいので注意!)
			session.close();
		}
	}
}