フォルダ監視サービス

フォルダ監視サービスはクライアント側のプログラムで、指定したフォルダにコピーされた文書を自動的に感知し、変換結果を Web Interface V6.0 を利用して指定されたフォルダに出力します。

Folder Monitoring Overview

このサービスを使ってリクエストを処理するためには、Web Interface V6.0 のサーバプログラムが動作している必要があります。

フォルダ監視サービスが開始すると、監視フォルダ内のファイルの処理を行います。開始後でも、フォルダ内に新しくコピーされたファイルの処理も行います。サービスはそれぞれのファイルに対して、次のような処理を行います。

  1. ファイルの内容(変換対象のファイルと、変換内容を指示しているファイル)から Web Interface V6.0クライアントプログラムのコマンドラインを生成します。
  2. リクエストを Web Interface V6.0 のサーバプログラムに送信します。
  3. Web Interface V6.0 のサーバプログラムから返ってきた結果を出力フォルダに格納します。

サーバアドレスのようなネットワークオプションはフォルダ監視サービスで使うデフォルトのコマンドファイルとして指定しておくことができます。または、監視されるフォルダ内にコピーする ZIP ファイル内のコマンドファイルで指示することができます。

プログラムの起動

Web Interface V6.0 のフォルダ監視サービスの JAR ファイルは xds-folder-monitor.jar です。

監視するフォルダと出力先フォルダの位置をコマンドラインで次のように指定します。

java -jar xds-folder-monitor.jar [options] <first directory to watch> <first directory output> <second directory to watch> <second directory output> ...
  
java -jar xds-folder-monitor.jar C:\folder1 C:\folder1\output
  
注意: 初期設定では、フォルダ監視サービスのログはインストールディレクトリ([install directory]/logs/folder-monitor.log)に書き込まれます。フォルダ監視サービスを開始するにあたってユーザはそのディレクトリへの書き込み権限が必要です。ログファイルの場所は起動時に -D Java仮想マシンオプションで指定した Log4j の設定ファイルで変更することができます。詳しくはロギングのページを参照してください。

出力先フォルダは監視フォルダのサブディレクトリでなければなりません。

環境変数 XDS_FOLDER_MONITOR_CONFIG を利用して、動作上の既定値とするコマンドラインオプションを記述したxmlファイルを絶対パスで指定することができます。ファイルの記述についてはオプションファイルを参照してください。

フォルダ監視コマンドラインオプション

パラメータ 既定値 機能
-threads Value 4 同時に処理できるファイルの最大数。0値は無限大のスレッドに使います。
-disable-formatter-log このオプションを指定していないとき、Antenna House Formatter でコンソール出力したログファイルは出力フォルダにも保存されます。
-default-command-file File ZIPアーカイブに含まれるコマンドファイルの前に読み込まれるデフォルトのコマンドファイルのパスを指定します。このコマンドファイル名は command.txt でなくても構いません。
-default-command-file C:\test\default_command.txt
-java-prop Property Value Javaシステムプロパティを指定します。例えば、ZIPコマンドファイルでeメールを送信する際に、SMTP_FROM キーの既定値である"mail.user"プロパティの値を設定するときに用います。eメール送信設定の詳細についてはeメールの送信を参照してください。
-help コマンドラインオプションをコンソールに表示します。

利用方法

フォルダ監視サービスを利用するには変換対象ファイルをZIPアーカイブし、ひとつのファイルとして監視フォルダに置きます。 フォルダ監視サービスが自動的にファイルを見つけて処理し、変換結果を出力フォルダへ置きます。

変換対象ファイルのアーカイブには次のファイルを含めることができます。

変換するファイルはすべてを一つのZIPファイルに圧縮する必要があります。入力文書から参照するメディアファイルはZIPファイル内で同じフォルダ構成を保つ必要があります。例えば、圧縮ファイルが次の内容を含むとします。

.-+- command.txt
  +- document.xml
  +- style.xsl
  +- images/
      +- pic01.png
      +- pic02.png

ZIP圧縮ファイルに加えて、単一のFOファイルのような単純な文書も監視フォルダに入れることができます。それらはフォルダ監視のデフォルトオプションを用いて変換が行われます。

コマンドファイル

コマンドファイルは変換オプションを指定し、クライアントプログラムの対応するリストを作るのに使用します。

デフォルトのコマンドファイルが-default-command-fileオプションで指定されているとき、ZIPアーカイブで指定されているものより前に評価されます。

コマンドファイルの内容は、各行が key = value という形式で各コマンドの内容を指定します。 指定方法は下記の書式となります。

ARGS=[space separated list of Client Program options]
ARGS_REMOVE=[comma separated list of Client Program options]
DOCUMENT=filename
STYLESHEET=filename
XSLT_PARAM=[key=value[,key=value...]]
OUTPUT_TYPE=[Antenna House Formatter output type:  pdf|svg|...]
OUTPUT_OPTION=[key=value[,key=value...]]
OUTPUT=filename
FORMATTER_TYPE=auto|html|xhtml|xmlcss|xslfo
EMAIL=[mailaddress[,mailaddress...]]
EXITLEVEL=1|2|3|4
SMTP_HOST=[mail server adress]
SMTP_PORT=[mail server port]
SMTP_PASSWORD=[mail server password]
SMTP_STARTTLS=[boolean value: 'true' or 'false']
SMTP_SSL=[boolean value: 'true' or 'false']
SMTP_FROM=[mailaddress]
SMTP_USER=[user login name]

ARGSキーを使ってオプションを指定する方法が推奨されます。

コマンドファイルの例

  ARGS = -xds-host 10.1.10.14 -d input.fo -o output.pdf -tpdf -x 4
  EMAIL = test@antenna.co.jp

ARGSARGS_REMOVE 以外のキーに空の値を指定すると(例:'EMAIL=')、オプションは消去されます。空の値を ARGSARGS_REMOVE に指定した場合は影響はありません。また例えば、デフォルトのコマンドファイルを設定する-default-command-fileで、'EAIL=test@antenna.co.jp' を指定したとすると、ZIP圧縮のコマンドファイル内の 'EMAIL=' の指定によりメールが送られるのを防ぎます。

各コマンドに関しての詳細情報と内容を次に示します。

キー 説明 省略時の動作
ARGS スペース区切りで、Antenna House Formatter のコマンドラインオプションを指定します。キーは複数指定できます。そして、クライアントプログラムのコマンドラインに追加して生成されます。
	ARGS = -xds-host 10.1.10.24
	ARGS = -d input.fo
	ARGS = -o output.pdf
	...
      
影響ありません。
ARGS_REMOVE カンマ区切りで Antenna House Formatter のコマンドラインオプションを指定します。キーは複数指定できます。クライアントプログラムのコマンドラインからオプションを除いて生成されます。追加の値の記載が必要なコマンドラインオプションについては、値の個数も指定してください。例えば、「-d input.fo」がこれから生成されるコマンドラインの一部にあるとき、「-d 1」と指定することで削除されます。つまり、「-d」オプションは1個の追加パラメータとともに削除されることになります。
	ARGS_REMOVE = -xds-host 1
	ARGS_REMOVE = -tpdf, -lpdf, -o 1
	...
      
影響ありません。
DOCUMENT 変換対象ファイル名を指定します。ファイル名はコマンドファイルからの相対パスで指定します。 データXMLファイルとして指定されていなければ、ルートで見つかる最初のfoが使われます。foが見つからずデータXMLファイルとしても指定されていなければ、ルートで見つかる最初のxmlが使われます。xmlも見つからなければ、xsl拡張やデータXMLファイルとして指定されずcommand.txtと名前がつけられていないルートで見つかった最初のファイルが使われます。
STYLESHEET スタイルシートファイル名を指定します。ファイル名はコマンドファイルからの相対パスで指定します(CSSファイルは、ここでは指定しないでください)。 変換対象アーカイブに含まれるファイルの中に .xsl の拡張子を持つファイルがあればそれをスタイルシートとみなします。
OUTPUT 出力ファイルを指定します。 出力ファイル名は、変換対象アーカイブのファイル名になります。拡張子は OUTPUT_TYPE で指定された出力形式と同じになります。例えば、変換対象アーカイブが Document.zip で、ARGS = -p @PDF ならば、出力ファイル名はDocument.pdf となります。
OUTPUT_TYPE 出力形式を指定します。 PDFで出力します。
OUTPUT_OPTION 出力形式に関するオプションを指定します。 カンマで区切ることで複数指定できます。 指定できるオプションは、描画オプションと同じです。 影響ありません。
XSLT_PARAM XSLT変換時のパラメータ xsl:param を指定します。 カンマで区切ることで複数指定できます。 影響ありません。
FORMATTER_TYPE 組版種別を指定します。 組版種別に 'auto'(自動判定)が指定されたものとみなされます。
EXITLEVEL 組版でエラーが発生した場合の処理の中止条件を指定します。値は 1~4 で指定してください。
  1. 情報
  2. 警告
  3. 回復可能エラー
  4. 致命的エラー
エラーレベルがここで指定した EXITLEVEL 以上の場合、組版を中止します。
既定値の 4 で出力を行います。
EXT_REPLACE "ARG = -o" や "OUTPUT = "を用いて出力する名前を指定しなかった場合に、デフォルトのファイル名に付く拡張子を指定した拡張子に置き換えます。例えば、変換対象アーカイブが Document.zip で、ARGS = -p @PDF のとき、出力ファイル名はデフォルトの Document.pdf となりますが、同時に EXT_REPLACE = PDF を指定することで Document.PDF となります。 影響ありません
EXT_APPEND "ARG = -o" や "OUTPUT = "を用いて出力する名前を指定しなかった場合に、指定した拡張子をデフォルトのファイル名の末尾に追加します。この場合はもとの拡張子は削除されません。例えば、変換対象アーカイブが Document.zip で、ARGS = -p @PDF のとき、出力ファイル名はデフォルトの Document.pdf となりますが、同時に EXT_APPEND = pdfを指定ことで、Document.zip.pdf となります。 影響ありません
EMAIL 変換結果を送信するメールアドレスを指定します。カンマで区切ることで複数指定できます。詳細はeメールの送信を参照してください。 影響ありません。
SMTP_HOST SMTPサーバのアドレスを指定します。 影響ありません。既定値は localhost です。
SMTP_PORT SMTPサーバのポート番号を指定します。 影響ありません。既定値は25です。
SMTP_USER SMTPサーバのユーザログイン名を指定します。 SMTPサーバでのユーザ認証を試みません。
SMTP_PASSWORD SMTPサーバのパスワードを指定します。 SMTPサーバでのユーザ認証を試みません。
SMTP_STARTTLS SMTPがStartTLSを使うかどうかを示唆する論理値(true あるいは false)で指定します。クライアントがサーバーの証明書を信頼できるよう、適切なトラストストアを構成する必要があることに注意してください。 既定値は false です。
SMTP_SSL SMTPがSSLを使うかどうかを示唆する論理値(true あるいは false)で指定します。 既定値は false です。
SMTP_FROM ユーザへの返信メールを指定します。サーバによってはこれを許可しない場合もあり、SMTP_USERと一致する必要がある場合があります。そのような場合、SMTP_USERと同じ値を指定してください。 SMTP_USERの値を使います。もしSMTP_USERが指定されていなければ、既定値として "mail.user" プロパティの値が使われます。 このプロパティも設定されていなかった場合はクライアントマシンの "user.name" Java システムプロパティの値が使われます。
  • #で始まる行はコメントとして扱われ無視されます。
  • キーの大文字小文字は区別されます。
  • 区切り文字( = および , )前後の空白は無視されます。
  • 値に空白やカンマなどを含めたいときは "..." で囲んでください。
  • 引用句を囲むときは\"を使ってください。

次は、Antenna House Formatter を使用してtest.xmltest.xsl というスタイルシートを適用し、PDFに変換して結果を output.pdf として作成して、結果を test@antenna.co.jp にメールで通知する変換指示ファイルの例です。

  ARGS=-xds-host 10.1.10.24
  ARGS=-d test.xml -s test.xsl -p @PDF -o output.pdf
  EMAIL=test@antenna.co.jp

変換結果

フォルダ監視サービスがモニタリングフォルダに置かれたファイルを処理する際に、モニタリングフォルダにbackupフォルダを作成し、処理済みのファイルをそこに保管します。Web Interface にドキュメントが送信された後、変換結果はフォルダ監視サービスのコマンドラインで指定した出力先フォルダに格納されます。

EMAIL オプションが指定されたとき、変換が成功したかどうかについてeメールを受け取ることができます。詳細についてはeメールの送信を参照してください。

EMAIL オプションを指定していないときは、出力先フォルダに変換結果が出ているかの確認をしてください。もし -disable-formatter-log オプションを指定しなかった場合は、出力先フォルダに Antenna House Formatter のコンソール出力が書かれたログファイルを作成します。全出力結果はフォルダ監視サービスのログファイルからも確認できます。

バックアップフォルダにはサブフォルダがあり、変換日時と時刻が表示されます。

  backup/20240118123456/2/archive.zip

更に、日時と時刻が命名されたフォルダには番号を振ったサブフォルダがあります。番号は同時に受信変換されたファイルを区別するために振られます。もしバックアップフォルダが不要であれば、いつでも削除が可能です。

Antenna House Formatter のログファイルは出力ファイルと同じ名前に-log.txtがプラスされた名前が付き、出力フォルダに保存されます。例えば、output.pdfのログファイル名は、それに関連してoutput-log.txtとなります。

eメールの送信

EMAILオプション指定するためには、eメールを送信するためのSMTPサーバ設定が必要です。SMTPサーバの設定については管理者等から情報を得てください。それぞれのキーの既定値については、キー一覧の「省略時の動作」を参照してください。 また、SMTPサーバによってはクライアントマシンからの接続許可が必要な場合がありますので、送信ができない場合は確認してください。

次は、SMTP認証が必要でStartTLSを用いて通信するサーバからメールを送信するコマンドファイルの例です。

EMAIL = test@antenna.co.jp
SMTP_HOST = smtp.example.com
SMTP_PORT = 25
SMTP_USER = example
SMTP_PASSWORD = password
SMTP_STARTTLS = true

変換に成功した場合は、以下のようなメッセージでログファイルが添付されたeメールを受け取ります。ログファイルは出力フォルダに保存されたフォルダ監視サービスのログと同一のものです。

Folder Monitor Results: 2024-01-18--12:00:00

Document conversion succeeded.

input file: C:\FolderMonitorTest\test.zip
output file: C:\FolderMonitorTest\output\test.pdf

ロギング

Web Interface V6.0 のフォルダ監視サービスはファイルとコンソールにロギング情報を出力することが可能です。ApacheのLog4jライブラリを使って、出力先やログの出力レベルが容易に変更することが可能です。詳しくはロギングを参照してください。もしログ設定ファイルがオプションで指定されていなければ、デフォルトのロギングの振る舞いは、DEBUGレベルのメッセージを[Install directory]/logs/folder-monitor.logとコンソールの両方に出力します。

描画オプション

描画オプションはキーワードと値の対で表現され、描画方法を制御します。キーワードは Antenna House Formatter のコマンドラインオプション AHFCmd の一部と同一です。詳細は Antenna House Formatter のマニュアルを参照してください。

キーワード 機能
pdfver 文字列 出力するPDFのバージョンを指定します。
tpdf 論理値 タグ付きPDFを出力するかどうかを指定します
lpdf 論理値 リニアライズドPDFを出力するかどうかを指定します。
encrypt 数値 作成するPDFの暗号化時のキー長を指定します。
userpwd 文字列 PDFに設定するユーザパスワードを指定します。
masterpwd 文字列 PDFに設定するマスタパスワードを指定します。
npt 論理値 作成するPDFを印刷不可にします。
ncg 論理値 作成するPDFを変更不可にします。
ncc 論理値 作成するPDFの内容をコピー不可にします。
nca 論理値 作成するPDFの注釈やフォーム追加不可にします。
nff 論理値 作成するPDFのフォームフィールドの入力と署名を不可にします。
nab 論理値 作成するPDFのスクリーンリーダデバイスのテキストアクセスを不可にします。
nad 論理値 作成するPDFのページの挿入、削除、回転を不可にします。
peb 文字列 作成するPDFに埋め込み可能なフォントを埋め込むかどうかを、以下のいずれかで指定します。
  • part : 指定されたフォントのみ(フォントは -pee で指定)
  • all : 欧文基本14フォントを除くすべてのフォント
  • base14 : 欧文基本14フォントを含むすべてのフォント
pee 文字列 作成するPDFに指定したフォントを埋め込みます。
pesub 文字列 作成するPDFに指定したフォントを埋め込むとき、指定した値(パーセンテージ)以上の使用率ならフォントをすべて埋め込みます。使用率が値に満たない場合は使用している文字のみ部分的に埋め込みます。パーセント値には、単位なしの値または % 値が指定できます(1.0 = 100%)。
pef 論理値 フォント埋め込みに失敗したときにエラーを発行しないようにします。
peg 論理値 フォントにグリフがなかったときにエラーを発行しないようにします。
pex 論理値 PDF/XやPDF/A、PDF/UA出力のときエラーがあっても、それを発行しないようにします。
ppa 数値 作成するPDFの印刷を許可するかどうかを指定します。
picc 数値 作成するPDFに格納するカラー画像の圧縮方法を指定します。
picg 数値 作成するPDFに格納するグレイスケール画像の圧縮方法を指定します。
picm 数値 作成するPDFに格納する白黒画像の圧縮方法を指定します。
pjq 数値 画像をJPEGに変換するときの画質を指定します。
pcs 論理値 作成するPDF中のテキストとラインアートを圧縮しないようにします。
plr 論理値 ローカルファイルで指定された外部へのリンクの方法を指定します。
prc 数値 作成するPDFのRGB色空間の変換方法を指定します。
prr 数値 ベクタイメージをラスタイメージに変換するときの解像度を指定します。
pcics 論理値 PDF/X、PDF/A出力のとき、含まれるRGB画像を自動的にCMYKに変換します。
p3da 論理値 3Dオブジェクトのインポートを有効にします。
pdfheight 数値 出力PDFの高さを拡大縮小します。
pdfwidth 数値 出力PDFの幅を拡大縮小します。
svgver 文字列 出力するSVGのバージョンを指定します。
svggzip 論理値 gzip 圧縮された SVG を出力します。
svgic 数値 SVGに直接格納できないラスタ画像形式のときの処理方法を指定します。
svgjq 数値 画像をJPEGに変換するときの画質を指定します。
svgrr 数値 ベクタイメージをラスタイメージに変換するときの解像度を指定します。

技術的資料


Copyright © 2005-2024 Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.