package jp.cssj.cti.examples;

import java.io.BufferedOutputStream;
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.helpers.StdioErrorHandler;

/**
 * サーバーでデータを取得して変換します。
 */
public class ServerResource {
	/** 接続先のホスト名。 */
	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());

				// ハイパーリンクとブックマークを作成する
				session.setProperty("output.pdf.hyperlinks", "true");
				session.setProperty("output.pdf.bookmarks", "true");

				// http://www.cssj.jp/以下にあるリソースへアクセスする
				session.includeResource("*/**");
				// index.htmlを変換
				session.formatMain("http://www.yahoo.co.jp/");
			} finally {
				out.close();
			}
		} finally {
			// セッションを閉じる(忘れやすいので注意!)
			session.close();
		}
	}
}