CTI::DriverManager - CTI ドライバ
ドキュメント変換サーバーに接続して、各種操作を行います。
use CTI::DriverManager; # セッションを取得する $uri = 'ctip://localhost:8099/'; $session = CTI::DriverManager::get_session($uri, user => 'user', password => 'kappa'); $driver = CTI::DriverManager::get_driver($session); $session = $driver->get_session($uri, user => 'user', password => 'kappa');
# メッセージを表示する $session->set_message_func(sub { my ($code, $message, @args) = @_; printf "%X %s: %s\n", $code, $message, join(",", @args); });
# 進行状況を表示する $session->set_progress_func(sub { my ($length, $read) = @_; print "[$read / $length]\n"; });
# バージョン情報を表示する print $session->get_server_info('http://www.cssj.jp/ns/ctip/version');
# 出力先を設定する $session->set_output_as_stream(*STDOUT); $session->set_output_as_file("out.pdf"); $session->set_output_as_directory("out", "", ".png"); # プロパティを設定する $session->property('input.include', '**'); # サーバー側で文書を取得して変換する $session->transcode('http://www.yahoo.co.jp/');
# クライアント側のリソースを送る $session->start_resource(*STDOUT, 'test.css', mime_type => 'text/css'); open(my $fp, '<test.css'); while (<$fp>) {print}; close($fp); $session->end_resource(*STDOUT);
# サーバーの要求に応じてクライアント側のリソースを送る $session->set_resolver_func(sub { my ($uri, $open) = @_; if (-e $uri) { my $fp = $open->(); open(my $rfp, "<$uri"); while (<$rfp>) {print $fp $_}; close($rfp); } return undef; });
# クライアント側の文書を送って変換する $session->start_main(*STDOUT, 'main.html', mime_type => 'text/html'); open(my $fp, '<main.html'); while (<$fp>) {print}; close($fp); $session->end_main(*STDOUT); # 初期状態に戻す $session->reset(); # セッションを閉じる $session->close();
get_session に渡すことが出来る、オプションは次のとおりです。
ユーザーID。
パスワード。
start_main, start_resource および、 set_resolver_func のコールバック関数に渡されるコールバック関数に渡すことが出来る、オプションは次のとおりです。 全てのオプションは省略可能です。
データのMIME-TYPE。 省略した場合は、自動判別されます。
データのキャラクタ・エンコーディング。 省略した場合は、自動判別されます。 バイナリデータの場合は設定しても無視されます。
データの予想されるバイト数。
基本的に省略して構いません。
設定しておくと、若干の処理速度の向上が期待できることと、 メインデータの場合は、set_progress_func で設定した関数に元データの長さが渡されるようになります。
1だと、データからCGIの出力等のヘッダ(先頭から空行までの間)を除去する。
これは既存のCGIプログラムの出力をキャプチャして変換する場合に有効です。 省略した場合は、全ての内容が入力データとして扱われます。
$Date: 2010-12-22 12:57:45 +0900 (水, 22 12 2010) $ MIYABE Tatsuhiko
get_driver URI
指定されたURIに接続するためのドライバを返します。
接続先アドレス
CTI::Driver
get_session URI [OPTIONS]
指定されたURIに接続し、セッションを返します。
接続先アドレス
接続オプション user => 'ユーザー名', password => 'パスワード'
CTI::Session