2022/12/23 TechnoStyle

createDocumentFromAppFile 仕様

createDocumentFromAppFileはコンソールアプリケーションです。コンソールアプリケーションは、eDocArrangementのコマンド実行から呼び出すことが可能です。

PDFやExcel文書等をDocuWorks文書に変換します。

入力ファイルがPDFの場合、DocuWorksの変換機能を使用して変換できます。

入力ファイルがPDF以外の形式はWindowsで関連付けされているアプリケーションの印刷機能を使用して変換を行います。(PDFも関連付けされているアプリケーションで変換することも可能です。)

但し、Windowsで関連付けされているアプリケーションの印刷機能を使用する場合、各アプリケーションの印刷機能の仕様に依存することになり、ファイルの形式や内容によっては、変換ができなかったり、変換の途中で停止してしまう場合があるため、自動処理でアプリケーションの印刷機能を使った変換を行うのはお勧めできません。

自動処理で利用する場合は、入力ファイルをPDFに限定して、DocuWorksの変換機能(-nusaオプション)を使用する方法を推奨いたします。

使用方法

書式

createDocumentFromAppFile.exe -i 入力アプリケーションファイル名 -o 出力文書ファイル名 [-wo] [-nusa] [-matw] [-wf 作業フォルダ名] [-saf 文書変換成功時のアプリケーションファイル移動フォルダ名] [-faf 文書変換失敗時のアプリケーションファイル移動フォルダ名] [-sraf] [-async] [-apmc 文書変換非同期プロセス最大数] [-pto 文書変換タイムアウト] [-slf ログファイル名] [-flf エラーログファイル名] [-z 結果ファイル名] [-ec]

[]は省略可能な引数です。 引数の仕様は以下の通りです。

-i 入力アプリケーションファイル名

変換元のアプリケーションファイル名を指定します。

ファイル名にスペースが含まれる場合は、"   " (ダブルクォート)で括ってください。

-o 出力文書ファイル名

出力する文書ファイル名を指定します。

出力先フォルダに同一ファイル名のファイルが存在する時は、ファイル名に連番を付与して重複しないファイル名で出力します。

出力先フォルダが存在しない時はフォルダを作成します。

ファイル名にスペースが含まれる場合は、"   " (ダブルクォート)で括ってください。

-wo 入力アプリケーションファイルをオリジナルデータとして出力文書ファイルに含めます。
-nusa

DocuWorksの文書変換機能を使用して文書変換を行います。

入力アプリケーションファイルがPDFファイルの時のみ有効です。

-matw

文書変換前にアプリケーションファイルを作業フォルダに移動します。

-matw スイッチを指定する時は、-saf スイッチ、-sraf スイッチの何れかと -faf スイッチで変換処理後のアプリケーションファイル移動フォルダなどを指定してください。

-wf 作業フォルダ名

文書変換で使用する作業フォルダを指定します。

フォルダ名にスペースが含まれる場合は、"   " (ダブルクォート)で括ってください。

-saf 文書変換成功時のアプリケーションファイル移動フォルダ名

文書変換成功時のアプリケーションファイル移動フォルダを指定します。

移動先フォルダに同一ファイル名のファイルが存在する時は、ファイル名に連番を付与して重複しないファイル名で移動します。

移動先フォルダが存在しない時はフォルダを作成します。

-matw スイッチを指定した時のみ有効です。

フォルダ名にスペースが含まれる場合は、"   " (ダブルクォート)で括ってください。

-faf 文書変換失敗時のアプリケーションファイル移動フォルダ名

文書変換失敗時のアプリケーションファイル移動フォルダを指定します。

移動先フォルダに同一ファイル名のファイルが存在する時は、ファイル名に連番を付与して重複しないファイル名で移動します。

移動先フォルダが存在しない時はフォルダを作成します。

-matw スイッチを指定した時のみ有効です。

フォルダ名にスペースが含まれる場合は、"   " (ダブルクォート)で括ってください。

-sraf

文書変換成功時にアプリケーションファイルを削除します。

-matw スイッチを指定した時のみ有効です。

-saf スイッチが指定されていた時は無視されます。

-async

文書変換を非同期実行します。文書変換を実行する別プロセスを起動後、自プロセスはすぐに終了します。

-apmc 文書変換非同期プロセス最大数

文書変換を実行する非同期プロセスの最大数を指定します。

-async スイッチを指定した時のみ有効です。

省略した際のデフォルト値は 8 です。

-pto 文書変換タイムアウト

文書変換のタイムアウト値を秒で指定します。

省略した際のデフォルト値は 180 です。

-slf ログファイル名

ログを出力するファイル名を指定します。

ログファイルが存在していた時は追加書き込みします。

ログファイルを出力するフォルダが存在しない時はフォルダを作成します。

ファイル名にスペースが含まれる場合は、"   " (ダブルクォート)で括ってください。

-flf エラーログファイル名

エラーログを出力するファイル名を指定します。

エラーログファイルが存在していた時は追加書き込みします。

エラーログファイルを出力するフォルダが存在しない時はフォルダを作成します。

ファイル名にスペースが含まれる場合は、"   " (ダブルクォート)で括ってください。

-z 結果ファイル名

処理結果をファイルに出力します。

結果ファイルが存在していた時は上書きします。

処理結果を出力するフォルダが存在しない時はフォルダを作成します。

ファイル名にスペースが含まれる場合は、"   " (ダブルクォート)で括ってください。

-ec 結果ファイルに出力される終了コードと、エラーメッセージの一覧を出力します。

非同期実行について

-asyncオプションを指定すると非同期で処理が実行されます。

非同期実行の場合、子プロセスを生成して実行を行います。親プロセスの処理はその後直ぐに終了します。

同時に大量のプロセスが生成されるのを防ぐために、実行中のプロセスが8プロセスの場合、実行は行わず、処理を終了します。この最大プロセス数は -apmc オプションで変更可能です。

eDocArrangementから呼び出す場合で、非同期実行を使用する場合、以下のような呼び出し方法を行うことを想定しています。

createDocumentFromAppFile.exe -i "入力アプリケーションファイル名" -o "出力ドキュメントファイル名" -nusa -async -matw -saf "文書変換成功時の入力アプリケーションファイル移動フォルダ名" -faf "文書変換失敗時の入力アプリケーションファイル移動フォルダ名" -slf "ログファイル名" -flf "エラーログファイル名" -wf "作業フォルダ名"

監視フォルダ
文書1.pdf
コマンド実行
createDocumentFromAppFile
XDW変換
変換先フォルダ
文書1.xdw
ファイル移動
処理済みフォルダ
文書1.pdf

createDocumentFromAppFileの-saf, -fafオプションを使って、変換処理後に入力ファイルを指定フォルダに移動します。

変換に失敗した場合は、エラーフォルダに移動されます。

監視フォルダ
文書1.pdf
コマンド実行
createDocumentFromAppFile
XDW変換失敗
エラーフォルダ
文書1.pdf

同時実行プロセスの上限に達した場合は、処理を行わず、入力ファイルの移動も行いませんので、次回のフォルダ監視で再処理されます。

監視フォルダ
文書1.pdf
コマンド実行
createDocumentFromAppFile
プロセス数上限
監視フォルダ
文書1.pdf

また、非同期実行の場合は、-slf, -flf オプションを指定してcreateDocumentFromAppFileでログの出力を行うことを推奨します。

エラー処理について

-matwオプションを指定した場合、以下のエラー処理を行います。

  1. -saf, -fafのフォルダが指定されていること。また、指定されたフォルダが有効なパスであること。

    条件を満たしていない場合は、処理を終了します。

  2. 入力ファイルを-wf で指定されたフォルダ(作業フォルダ)に移動する。

  3. XDW_BeginCreationFromAppFile API(DocuWorksプリンターへ印刷)を呼び出して処理を行う。

    XDW_BeginCreationFromAppFile APIが終了せず戻ってこない場合※1は、以下の処理を試行します。

    ※1 アプリケーションファイルの内容や関連付けの状態によって、XDW_BeginCreationFromAppFile APIが終了しないケースがあります。

    • 作業フォルダに移動された入力ファイルを-fafで指定されたフォルダ (文書変換失敗時移動先)に移動する。
    • 文書変換失敗時移動先のフォルダに移動が失敗した場合は、createDocumentFromAppFile.exeのフォルダに移動する。
  4. DocuWorksプリンターの印刷状態を取得して完了するまで待機する。
  5. 印刷完了後に出力されたXDW文書の存在確認を行い、ファイルが存在しない場合※2は、以下の処理を試行します。

    ※2 アプリケーションファイルの内容によって、XDW文書が出力されないケースがあります。

    • 作業フォルダに移動された入力ファイルを-fafで指定されたフォルダ (文書変換失敗時移動先)に移動する。
    • 文書変換失敗時移動先のフォルダに移動が失敗した場合は、createDocumentFromAppFile.exeのフォルダに移動する。

使用例

以下の内容でPDF文書をXDW文書に変換する。

  • DocuWorksの文書変換機能を使用する。(-nusa)
  • 非同期で実行する。(-async)
  • 作業フォルダを使用した変換を行う。(文書変換成功時、失敗時のファイル移動を行う) (-matw)
入力ファイル (-i) C:\PDFからXDW変換\10_XDW変換\領収書_20160321.pdf
出力ファイル (-o) C:\PDFからXDW変換\20_変換済み\領収書_20160321.xdw
変換成功時の入力ファイル移動先フォルダ (-saf) C:\PDFからXDW変換\30_処理済みPDF
変換失敗時の入力ファイル移動先フォルダ (-faf) C:\PDFからXDW変換\15_エラー
ログの出力先 (-slf) C:\PDFからXDW変換\90_System\90_Log\CommandLog\log_20210708.txt
エラーログの出力先 (-flf) C:\PDFからXDW変換\90_System\90_Log\CommandLog\Errorlog_20210708.txt
作業フォルダ (-wf) C:\PDFからXDW変換\90_System\80_Tool\createDocumentFromAppFile

createDocumentFromAppFile.exe -i "C:\PDFからXDW変換\10_XDW変換\領収書_20160321.pdf" -o "C:\PDFからXDW変換\20_変換済み\領収書_20160321.xdw" -nusa -async -matw -saf "C:\PDFからXDW変換\30_処理済みPDF" -faf "C:\PDFからXDW変換\15_エラー" -slf "C:\PDFからXDW変換\90_System\90_Log\CommandLog\log_20210708.txt" -flf "C:\PDFからXDW変換\90_System\90_Log\CommandLog\Errorlog_20210708.txt" -wf "C:\PDFからXDW変換\90_System\80_Tool\createDocumentFromAppFile"

以下の内容でWord文書をXDW文書に変換する。

  • Wordの印刷機能を使用する。(Wordがインストールされている必要があります。)
  • 非同期で実行する。(-async)
  • 作業フォルダを使用した変換を行う。(文書変換成功時、失敗時のファイル移動を行う) (-matw)
入力ファイル (-i) C:\アプリケーション変換\10_XDW変換\test.docx
出力ファイル (-o) C:\アプリケーション変換\20_変換済み\test.xdw
変換成功時の入力ファイル移動先フォルダ (-saf) C:\アプリケーション変換\30_処理済み
変換失敗時の入力ファイル移動先フォルダ (-faf) C:\アプリケーション変換\15_エラー
ログの出力先 (-slf) C:\アプリケーション変換\90_System\90_Log\CommandLog\log_20210708.txt
エラーログの出力先 (-flf) C:\アプリケーション変換\90_System\90_Log\CommandLog\Errorlog_20210708.txt
作業フォルダ (-wf) C:\アプリケーション変換\90_System\80_Tool\createDocumentFromAppFile

createDocumentFromAppFile\createDocumentFromAppFile.exe -i "C:\アプリケーション変換\10_XDW変換\test.docx" -o "C:\アプリケーション変換\20_変換済み\templateproposal.xdw" -async -matw -saf "C:\アプリケーション変換\30_処理済み" -faf "C:\アプリケーション変換\15_エラー" -slf "C:\アプリケーション変換\90_System\90_Log\CommandLog\log_20210708.txt" -flf "C:\アプリケーション変換\90_System\90_Log\CommandLog\Errorlog_20210708.txt" -wf "C:\アプリケーション変換\90_System\80_Tool\createDocumentFromAppFile"

終了コード

終了コードは以下の通りです。

-1 非同期プロセス数が上限に達しています。
0 正常終了
1 入力アプリケーションファイルが指定されていません。
2 出力ドキュメントファイルが指定されていません。
3 結果ファイルが指定されていません。
4 入力アプリケーションファイルが存在しません。 '入力アプリケーションファイル名'
5 ログファイルが指定されていません。
6 エラーログファイルが指定されていません。
7 作業フォルダが指定されていません。
8 作業フォルダの作成に失敗しました。 '作業フォルダ'
9 文書変換成功時のアプリケーションファイル移動フォルダー、文書変換成功時にアプリケーションファイルを削除、何れも指定されていません。
10 文書変換成功時のアプリケーションファイル移動フォルダの作成に失敗しました。 '文書変換成功時のアプリケーションファイル移動フォルダ'
11 文書変換失敗時のアプリケーションファイル移動フォルダが指定されていません。
12 文書変換失敗時のアプリケーションファイル移動フォルダの作成に失敗しました。 '文書変換失敗時のアプリケーションファイル移動フォルダ'
13 文書変換非同期プロセス最大数は1以上の整数を指定してください。 '文書変換非同期プロセス最大数'
14 文書変換タイムアウトは10以上の整数を指定してください。 '文書変換タイムアウト'
15 入力アプリケーションファイルを作業フォルダへ移動する際にエラーが発生しました。
16 入力アプリケーションファイルを作業フォルダへコピーする際にエラーが発生しました。
17 作業フォルダのアプリケーションファイルを変換成功時のフォルダへコピーする際にエラーが発生しました。
18 作業フォルダのアプリケーションファイルを変換失敗時のフォルダへコピーする際にエラーが発生しました。
19 作業フォルダのアプリケーションファイルをアプリケーションファイル退避フォルダへコピーする際にエラーが発生しました。
20 作業フォルダの文書ファイルを出力文書フォルダへコピーする際にエラーが発生しました。
21 文書変換タイムアウトが発生しました。 '入力アプリケーションファイル名'
22 文書変換に失敗しました。 '入力アプリケーションファイル名'
23 対象外のスイッチが指定されています。 'スイッチ'
24 作業フォルダーのアプリケーションファイルを削除する際にエラーが発生しました。 '作業フォルダーのアプリケーションファイル名'
99 例外が発生しました。 'エラーメッセージ'

注意事項

  • -nusaオプションを使用しない場合、Windowsで関連付けされているアプリケーションの印刷機能を使用して変換を行いますが、以下の様な問題が発生する可能性があります。

    • 変換が行われず、出力ファイルに指定したファイルが出力されない。
    • 印刷内容が期待した内容と異なる。(ページ数過不足、はみ出し等)
    • 変換時(印刷時)にダイアログが表示され処理が止まってしまう。
    • 印刷を行うアプリケーションが画面に表示されたままになる。
    • 関連付けされたアプリケーションが起動した状態で処理を実行すると、開いているファイルの内容が保存されず失われる可能性があります。
    • サービスからの実行では動作しません。

    上記のような問題が発生した場合、関連付けされたアプリケーションの印刷の仕様のため、弊社では対処することができません。また、アプリケーションの仕様により、データ消失など想定しない問題が発生する可能性があります。

  • ページ数の多いファイルを変換すると、印刷処理に時間がかかるため印刷後のステータスが完了になるまで時間がかかります。

    また、印刷指示を行ったあとに、アプリケーションの問題で印刷が完了せず停止してしまう場合があります。

    その場合、印刷中なのか、問題が発生して停止してしまったのかは、アプリケーション側からは判断ができません。

    そこで、文書変換タイムアウト(-ptoオプション)を実装しています。デフォルトでは180秒でタイムアウトになり印刷をキャンセルします。

    ページ数の多いファイルを変換する場合は、印刷が完了する前に、180秒でキャンセルしてしまうため、 -pto オプションを指定してタイムアウトの時間を長くしてください。

  • -nusaオプションを使用する場合、以下の様な問題が発生する可能性があります。
    • サービスからの実行も可能ですが、実行アカウントでDocuWorksの初期設定が行われている必要があります。初期設定が行われていない場合はエラーになります。(デスクトップにログインできるアカウントでないと実行できません。)

ライセンスについて

createDocumentFromAppFileは、eDocArrangementの購入者にライセンスされます。試用については、eDocArrangementと同じ期間、試用できます。

createDocumentFromAppFileは、eDocArrangementの製品の一部としての扱いとなり、eDocArrangementの使用許諾契約が適用されます。

動作に必要なライブラリー・ソフトウエア

.NET Framework 4.6.2 以降

DocuWorks 7.3 以降

DocuWorks 9 以降がインストールされたサーバー環境で利用する場合、PDFをDocuWorks文書に変換する機能(-nusaオプション)についてライセンス上制限されます。(デスクトップ利用の場合はライセンス不要)

-nusaオプションはDocuWorks8以降で使用可能です。

制限を解除するために、富士フイルムビジネスイノベーション様から、サーバーアプリケーション向けライセンス商品「DocuWorks OCR/PDF License for Development Tool Kit (サーバーアプリケーション用)」をご購入・設置していただく必要があります。

詳しくは、以下のサイトをご覧ください。

DocuWorks 9でのDocuWorks Development Toolkitのご利用について(富士フイルム ビジネスイノベーション株式会社 製品Webサイト)

https://www.fujifilm.com/fb/support/software/docuworks_9/info/contents/info_003.html

更新履歴

2022/12/23 Version 1.1.0

  • 「入力アプリケーションファイルが存在しない」などの、文書変換処理を始められないエラーはログファイルには書き込まれない仕様だったが、文書変換処理を始められないエラーであってもログファイルに記録するように修正。
  • スイッチ -sraf を追加。-matw を指定した際に、文書変換成功時にアプリケーションファイルを削除します。-saf が指定されていると -sraf は無視されます。
  • 入力アプリケーションファイルの移動や削除が完了するまで出力文書ファイルをロックするように変更。
  • 対象外のスイッチを指定した時にエラーとなるように修正。
  • 非同期プロセス数が上限に達しているエラーの終了コードが15になってしまう問題を修正。

2021/07/09 Version 1.0.0

  • 新規リリース。