2025/11/17 TechnoStyle

printToPdfFromDocuWorksFile 仕様

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

DocuWorks Viewerの印刷機能※を使用して、DocuWorks文書をPDFファイルに変換します。

※ "Microsoft Print to PDF" や "DocuWorks PDF" などの仮想プリンターを使用します。物理プリンターを指定すればプリンターへの印刷を行うこともできます。

printToPdfFromDocuWorksFile
コマンド実行
dwviewer
文書1.xdw
印刷を使用した
PDF作成
文書1.pdf

仮想プリンターを使用してPDFを出力するので、DocuWorks文書がテキストを持っていれば、出力されるPDFもテキストを保持したPDFとなります。

DocuWorks Viewerを使った印刷の問題点

DocuWorks Viewer (dwviewer.exe)はコマンド実行時のオプションを指定することで、指定のDocuWorks文書を印刷することができます。

しかし、dwviewer.exeの仕様に以下の問題があり、無条件で呼び出すだけでは自動処理としては問題が生じます。

dwviewer.exeで印刷中のダイアログを表示しない「/spt」や「/oopnocancel」オプションを指定しても、XDWファイルが破損している場合や、プリンターのスプーラーがメモリ不足になった場合などは、エラーダイアログがでてしまう。

サービスプログラムや常駐アプリから実行した場合には、ダイアログが表示されてしまうケースがあるとダイアログを閉じることができないため、そこで処理が停止してしまいます。自動処理では致命的な問題となります。

そのため、printToPdfFromDocuWorksFileは以下の様な対策を行っています。

DocuWorks文書のセキュリティや破損をチェック

printToPdfFromDocuWorksFileが、dwviewer.exeを呼び出す前にDocuWorks文書がオープンできるかチェックします。

正常にオープンできなかった場合は、dwviewer.exeの呼び出しは行わず、エラー処理を行い処理を終了します。

DocuWorks Viewer及び、DocuWorks PDFのダイアログ表示のチェック

DocuWorks ViewerやDocuWorks PDFがダイアログを表示すると、自動処理ではダイアログが表示されたままになり、DocuWorks Viewerのプロセスが残ったままの状態になります。

そこでprintToPdfFromDocuWorksFileは、DocuWorks ViewerやDocuWorks PDFのダイアログ表示を検出して、閉じる処理を試行します。その後プロセスが終了すれば、エラー処理を行います。

printToPdfFromDocuWorksFileがダイアログを閉じる直前のスクリーンショットを保存する事もできます。

一定時間、ダイアログを閉じる処理を試行してもプロセスが終了しない場合は、エラー処理を行います。その場合、最終的にDocuWorks Viewerのプロセスが残ったままになる可能性があります。

プリンターの印刷ジョブ数をコントロール

"Microsoft Print to PDF" や "DocuWorks PDF"などの仮想プリンターに大量の印刷指示を行うと、仮想プリンターの動作が不安定になります。

printToPdfFromDocuWorksFileは仮想プリンターの印刷ジョブ数を確認して、最大で3つ以上にならないように待機します。

Windows11のバージョン24H2対応

Windows11のバージョン24H2でプリンターキューを開いた状態でDocuWorks PDFやDocuWorks Viewerを使ってPDF変換を行うと、不完全なPDFが作成される問題が発生しています。

printToPdfFromDocuWorksFileを使用時はプリンターキューを開かないでください。printToPdfFromDocuWorksFileはプリンターキューが開かれていることを検出すると処理中のファイルをエラー処理します。

印刷ページ毎のタイムアウトによるエラー処理

印刷ジョブから印刷中のページ数を取得できるため、一定時間ページ数に変化がない場合は、印刷に問題が発生している可能性があると判断できます。-pptoオプションを指定すると、指定した秒数の間ページ数が変化しない場合に、印刷ジョブをキャンセルしてエラー処理を行うようになります。

タイムアウト値によるエラー処理

上記の対策を行うことでdwviewer.exeがエラーダイアログを出力することは、ほぼなくなりますが、未知の問題や仮想プリンター側の問題等で印刷が正常終了しないケースがあるかもしれません。

printToPdfFromDocuWorksFileはそのようなレアケースでも対処できるように、-ptoオプションを指定するとdwviewer.exeを呼び出したあと、一定時間制御が戻らない場合はprintToPdfFromDocuWorksFileのエラー処理を行います。

具体的には、印刷ジョブに対して一時停止、キャンセル処理を行います。通常はキャンセルを行ったあと、dwviewer.exeのプロセスは自動的に終了します。

キャンセルしてもdwviewer.exeのプロセスが終了しないケースがある場合は、-ftwtoを指定することでdwviewer.exeのプロセスに対して強制終了の指示を行うことができます。

デフォルト(-ptoオプションを指定しない場合)ではページ数が多いなど、様々なサイズのDocuWorks文書に対応する為、印刷処理が完了するまで待ち続けるようになっています。(処理時間の制限は設けていません)
DocuWorks Viewerや印刷処理が停止してしまう事がある場合は、-ptoオプションで適切なタイムアウト値を設定してください。

使用方法

書式

printToPdfFromDocuWorksFile.exe -i 入力DocuWorks文書ファイル名 -p プリンター名 [ドライバー名 [ポート名]] [-o 出力PDFファイル名] [-wf 作業フォルダ名] [-mdtw] [-sdf 文書変換成功時のDocuWorks文書ファイル移動フォルダ名] [-fdf 文書変換失敗時のDocuWorks文書ファイル移動フォルダ名] [-srdf] [-async] [-apmc 文書変換非同期プロセス最大数] [-asp] [-pto 文書変換タイムアウト] [-ppto ページ出力タイムアウト] [-ftwto] [-ssjbcd スクリーンショットファイル名] [-slf ログファイル名] [-flf エラーログファイル名] [-z 結果ファイル名] [-ec] [-debug-dncdf]

「name 1.txt」のように値にスペースが含まれる場合は、"name 1.txt" のようにダブルクォートで括ってください。

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

-i 入力DocuWorks文書ファイル名

変換元のDocuWorks文書ファイル名を指定します。

DocuWorks文書ファイルのドキュメントとバインダーに対応しています。 (拡張子 .xdw .xbd)

-p プリンター名 [ドライバー名 [ポート名]]

変換に使用するプリンター名、ドライバー名、ポート名を指定します。

仮想プリンターの場合

-p "DocuWorks PDF" -o "D:\出力\test.pdf"

-oを指定した場合、プリンター名のみ指定を行うと、プリンター名と同じ名前をドライバー名として使用します。

物理プリンターの場合

-p "Canon LBP622C"

-o 出力PDFファイル名

出力するPDFファイル名を指定します。仮想プリンターを使用する場合に、出力ファイル名を指定します。物理プリンターを使用する場合は-oは指定しません。

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

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

-pでポート名を指定した場合はポート名を-oで指定した出力PDFファイル名で上書きします。

-oを指定すると指定した出力PDFファイルが作成されるまで待機する動作となります。

-wf 作業フォルダ名

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

-mdtw

文書変換前にDocuWorks文書ファイルを作業フォルダーに移動します。

-mdtw スイッチを指定する時は、-sdf スイッチ、-srdf スイッチの何れかと -fdf スイッチで変換処理後のDocuWorks文書ファイル移動フォルダーなどを指定してください。

-sdf 文書変換成功時の入力DocuWorks文書ファイル移動フォルダー名

文書変換成功時のDocuWorks文書ファイル移動フォルダを指定します。

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

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

-mdtw スイッチを指定した時に適用されます。

-fdf 文書変換失敗時の入力DocuWorks文書ファイル移動フォルダー名

文書変換失敗時のDocuWorks文書ファイル移動フォルダを指定します。

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

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

-mdtw スイッチを指定した時に適用されます。

-srdf

文書変換成功時にDocuWorks文書ファイルを削除します。

-mdtw スイッチを指定した時に適用されます。

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

-async

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

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

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

-async スイッチを指定した時に適用されます。

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

-asp

2つのプロセスが平行して印刷を行います。

複数のPDFファイル変換が全て完了するまでの時間が短縮されますが、CPU負荷率は高くなります。

-async スイッチを指定した時に適用されます。

使用するプリンターや印刷設定の組み合わせなどで、-aspを指定するとプリンターが応答不能な状態になる場合があります。限られた条件でしか動作しないので、基本的には使用しないでください。

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

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

DocuWorks Viewerの起動からプリンターがPDFファイルを出力し終わるまでの時間が対象となります。

タイムアウト発生時には印刷ジョブをキャンセルします。(状況によっては印刷ジョブが残ってしまう事があります)

省略した時はタイムアウトの処理は行いません。

-ppto ページ出力タイムアウト

ページ出力のタイムアウト値を秒で指定します。

指定した時間が経過しても印刷ジョブのページ数が変化しなかった時にタイムアウトとなります

タイムアウト発生時には印刷ジョブをキャンセルします。(状況によっては印刷ジョブが残ってしまう事があります)

省略した時はタイムアウトの処理は行いません。

-ftwto

文書変換のタイムアウト発生時にDocuWorks Viewerが起動していた場合は、DocuWorks Viewerを強制終了します。

-pto または -ppto を指定した時に適用されます。

省略した時は強制終了の処理は行いません。

-ssjbcd スクリーンショットファイル名

DocuWorks Viewer がダイアログを表示した際に保存するスクリーンショットファイル名を指定します。

スクリーンショットファイルの拡張子は .png, .jpeg (.jpg), .tiff (.tif), .bmp の何れかです。

スクリーンショットを保存する際にファイル名の末尾にプロセスIDと日時の文字列を付与します。
例)
screenshot.png → screenshot.6548.20251113_143734.567.png

省略した時はスクリーンショットの保存は行いません。

-slf ログファイル名

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

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

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

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

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

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

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

-z 結果ファイル名

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

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

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

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

変換元のDocuWorks文書ファイルのチェックを行わないようにします。

テストなどで DocuWorks Viewer にダイアログを表示させたい時に使用します。

非同期実行について

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

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

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

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

printToPdfFromDocuWorksFile.exe -i "入力DocuWorks文書ファイル名" -p "Microsoft Print to PDF" -o "出力PDFファイル名" -async -mdtw -sdf "文書変換成功時の入力DocuWorks文書ファイル移動フォルダ名" -fdf "文書変換失敗時の入力DocuWorks文書ファイル移動フォルダ名" -slf "ログファイル名" -flf "エラーログファイル名" -wf "作業フォルダ名"

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

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

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

監視フォルダ
文書1.xdw
コマンド実行
printToPdfFromDocuWorksFile
PDFファイル変換失敗
エラーフォルダ
文書1.xdw

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

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

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

画質について

変換後のPDFファイルの画質等については、PDFファイルを出力するプリンターの印刷設定画面の内容が反映されます。余白などの設定も対象となるようです。

エラー処理について

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

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

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

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

  3. DocuWorks Viewer を起動して、指定のPDFファイルを出力するプリンターへの印刷を行う。

    DocuWorks Viewer が終了せず戻ってこない場合(-ptoオプションを指定してタイムアウトになった場合)は、以下の処理を試行します。

    • 作業フォルダに移動された入力ファイルを-fdfで指定されたフォルダ (文書変換失敗時移動先)に移動する。
    • 文書変換失敗時移動先のフォルダに移動が失敗した場合は、printToPdfFromDocuWorksFile.exeのフォルダに移動する。
    • 出力されたPDFが存在する場合は削除する。
  4. 指定のPDFファイルの出力が完了するまで待機する。

    PDFファイルの出力が完了しない場合(-ptoオプションを指定してタイムアウトになった場合)は、以下の処理を試行します。

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

スイッチ -mdtw を使用した場合、DocuWorks文書ファイルを作業フォルダーに移動してから処理を行います。

処理が完了するまでに、停電や強制終了などでアプリケーションが終了してしまうと、作業フォルダーに対象ファイルが残った状態となります。

printToPdfFromDocuWorksFileは、起動時に作業フォルダー内の状態をチェックして、正常に終了しなかったファイルを検出したら、移動元フォルダへの復元や作業フォルダーの削除などを行っています。※

※但し、これらのリカバリ処理は完全な動作を保証するものではありません。

処理詳細

メイン処理

起動と初期化

通常起動

親プロセスとして子プロセスの生成と管理を行う。

非同期子プロセスとして起動

非同期子プロセスとして起動され印刷(PDF生成)の処理を行う。

引数解析

引数のエラーチェック。

入力検証

入力ファイルの存在チェックや検査。

非同期処理分岐

-async スイッチが指定された場合

新しい非同期プロセスを生成。

親プロセスは即座に終了。

-async スイッチが指定されていない場合

メインプロセスで印刷処理を実行。

処理完了まで待機。

プリンター準備

プリンターサーバー接続成功

プリントキューの取得。

プリンターサーバー接続失敗

エラー終了。

リカバリー処理

前回の処理で異常終了などの理由で作業フォルダーにファイルが残っている場合は、移動元に戻したり、不要ファイルを削除したりする処理を行う。

作業フォルダー管理

作業フォルダーの作成とファイル移動。

印刷キュー管理

ループ処理(印刷ジョブ数監視)

プリンターキューの印刷ジョブ数が指定数未満になったらループ終了。

印刷ジョブ情報リスト取得のメソッドで例外が発生した際にリトライする。失敗した場合は「印刷ジョブ情報取得失敗フラグ」を立てる。

DocuWorks Viewer起動

ループ処理(DocuWorks Viewerを監視)

DocuWorks Viewerが存在している間ループを続ける。

Viewerのプロセス確認

Viewerのプロセスが存在しない時はループ終了。

対象ファイルの印刷ジョブ情報リスト取得

印刷ジョブ情報の「ジョブ名」の文字列に対象ファイル名が含まれているかを判定。

印刷ジョブ情報リスト取得のメソッドで例外が発生した際にリトライする。失敗した場合は「印刷ジョブ情報取得失敗フラグ」を立てる。

印刷中ページチェック

印刷ジョブ情報からスプール中のページ数を取得して一定時間ページ数に変化がない場合は「ページ出力タイムアウトフラグ」を立てる。

印刷ジョブ情報の取得に失敗した場合はページチェックを終了する。

DocuWorks Viewerのダイアログの対応

ウィンドウを検出した場合

1秒後に対象ウィンドウが存在している

対象ウィンドウにクローズメッセージを送信。

10秒後に対象ウィンドウが存在している

♻️タイムアウト処理

印刷キューアプリケーションのチェック

印刷キューアプリケーションを検出したら「印刷キューアプリケーションフラグ」を立てる。

印刷キューアプリケーションが起動していると、DocuWorks PDFが不完全なPDFファイルを出力してしまう現象が発生する為、印刷キューアプリケーションを検出したらエラー扱いとしている。(Windows 11 24H2 不具合対応。)

文書変換タイムアウト

文書変換タイムアウト値を超えたら「文書変換タイムアウトフラグ」を立てる。

エラー処理

以下の何れかのフラグが立っていたらタイムアウト処理を実行する。

  • 文書変換タイムアウトフラグ
  • ページ出力タイムアウトフラグ
  • 印刷キューアプリケーションフラグ
  • 印刷ジョブ情報取得失敗フラグ

♻️タイムアウト処理

印刷監視

ループ処理(印刷中)

印刷中の間ループを続ける。

印刷ジョブ情報のステータスが終了

ループ終了。

印刷ジョブ情報のメソッドやプロパティを使用中に例外が発生しても無視する。

例外を無視した時は印刷ジョブが終了したとみなして印刷終了待ちのループを抜ける。

無視するだけなのでエラー処理は無し。

エラーが発生しなかった場合

スイッチで指定された内容に応じてファイルをコピーしたり移動したりする。

ファイルのコピーや移動でエラー発生

「印刷後処理エラーフラグ」を立てる。

後処理

エラーが発生した場合

以下のフラグに対応したエラーメッセージを出力する。

  • 文書変換タイムアウトフラグ
  • ページ出力タイムアウトフラグ
  • 印刷後処理エラーフラグ
  • 印刷キューアプリケーションフラグ
  • 印刷ジョブ情報取得失敗フラグ

クリーンアップ

作業フォルダーの削除などの後処理を行う。

♻️共通処理

♻️タイムアウト処理

印刷ジョブ情報が存在する

対象印刷ジョブのキャンセル

対象印刷ジョブが終了するまで待つ

上記2つの処理で例外が発生しても無視する。

「DocuWorks Viewerを強制終了する」スイッチが指定されている

DocuWorks Viewerを強制終了する。

ループ終了

「DocuWorks Viewerを強制終了する」スイッチが指定されていない時は、DocuWorks Viewerのプロセスが残る事になる。

使用例

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

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

printToPdfFromDocuWorksFile.exe -i "C:\XDWからPDF変換\10_PDF変換\領収書_20160321.xdw" -p "DocuWorks PDF" -o "C:\XDWからPDF変換\20_変換済み\領収書_20160321.pdf" -async -mdtw -sdf "C:\XDWからPDF変換\30_処理済みXDW" -fdf "C:\XDWからPDF変換\15_エラー" -slf "C:\XDWからPDF変換\90_System\90_Log\CommandLog\log_20210708.txt" -flf "C:\XDWからPDF変換\90_System\90_Log\CommandLog\Errorlog_20210708.txt" -wf "C:\XDWからPDF変換\90_System\80_Tool\printToPdfFromDocuWorksFile"

終了コード

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

-2 印刷ジョブ情報の確認中に印刷ジョブ情報が使用不可となった為、印刷終了は確認できませんでした。
-1 非同期プロセス数が上限に達しています。
0 正常終了
1 対象外のスイッチが指定されています。 'スイッチ'
2 入力DocuWorks文書ファイルが指定されていません。
3 出力PDFファイルが指定されていません。
4 結果ファイルが指定されていません。
5 結果ファイルの書き込みに失敗しました。
6 入力DocuWorks文書ファイルが存在しません。 '入力DocuWorks文書ファイル名'
7 ログファイルが指定されていません。
8 エラーログファイルが指定されていません。
9 作業フォルダが指定されていません。
10 作業フォルダの作成に失敗しました。 '作業フォルダ'
11 文書変換成功時のDocuWorks文書ファイル移動フォルダー、文書変換成功時にDocuWorks文書ファイルを削除、何れも指定されていません。
12 文書変換成功時のDocuWorks文書ファイル移動フォルダの作成に失敗しました。 '文書変換成功時のDocuWorks文書ファイル移動フォルダ'
13 文書変換失敗時のDocuWorks文書ファイル移動フォルダが指定されていません。
14 文書変換失敗時のDocuWorks文書ファイル移動フォルダの作成に失敗しました。 '文書変換失敗時のDocuWorks文書ファイル移動フォルダ'
15 文書変換非同期プロセス最大数は1以上の整数を指定してください。 '文書変換非同期プロセス最大数'
16 文書変換タイムアウトは10以上の整数を指定してください。 '文書変換タイムアウト'
17 ページ出力タイムアウトは10以上の整数を指定してください。 'ページ出力タイムアウト'
18 スクリーンショットを保存する時は、スクリーンショットファイル名を指定してください。
19 入力DocuWorks文書ファイルを作業フォルダへ移動する際にエラーが発生しました。
20 入力DocuWorks文書ファイルを作業フォルダへコピーする際にエラーが発生しました。
21 作業フォルダのDocuWorks文書ファイルを変換成功時のフォルダへコピーする際にエラーが発生しました。
22 作業フォルダのDocuWorks文書ファイルを変換失敗時のフォルダへコピーする際にエラーが発生しました。
23 作業フォルダのDocuWorks文書ファイルをDocuWorks文書ファイル退避フォルダへコピーする際にエラーが発生しました。
24 作業フォルダのPDFファイルを出力PDFファイルフォルダへコピーする際にエラーが発生しました。
25 文書変換タイムアウトが発生しました。 '入力DocuWorks文書ファイル名'
26 文書変換に失敗しました。 '入力DocuWorks文書ファイル名'
27 DocuWorksがインストールされていません。
28 DocuWorksインストールパスの取得に失敗しました。 'エラーメッセージ'
29 DocuWorks Viewerが見つかりません。 'DocuWorks Viewer ファイル名'
30 文書変換可能なDocuWorks文書ファイルはドキュメントとバインダーです。 (拡張子 .xdw .xbd) '入力DocuWorks文書ファイル名'
31 入力DocuWorks文書ファイルのページ数が0です。 '入力DocuWorks文書ファイル名'
32 入力DocuWorks文書ファイルのオープンに失敗しました。 '入力DocuWorks文書ファイル名'
33 プリンター名が指定されていません。
34 プリンター情報の取得に失敗しました。
35 印刷キューアプリケーションが実行中です。印刷キューアプリケーションを終了してください。
99 例外が発生しました。 'エラーメッセージ'

注意事項

  • 本アプリケーションは、DocuWorks PDFなどの仮想プリンターを使用してPDF変換を行います。プリンターへの印刷はPCに大きな負荷をかけるため、できるだけ複数のアプリケーションから同時に印刷を行わないようにしてください。

    PCに高い負荷がかかっている場合や、仮想プリンターに他のアプリから大量に印刷が行われている場合は、変換に失敗したり、印刷ジョブがなくなるまで待機する動きとなり、変換が行われない場合があります。

  • DocuWorks Viewerのふでばこやウインドウ化されたツールバーなどのウインドウを閉じておいてください。

    DocuWorks Viewerがエラーダイアログを表示した場合に自動でウインドウを閉じる操作を行っていますが、それらの誤動作の原因になる可能性があります。

  • ページ数の多いDW文書を変換(印刷)中に他のDW文書をDocuWorks Viewerで開こうとすると、印刷が終了するまでDocuWorks Viewerの画面が表示されない現象が発生します。

    これはDocuWorks Viewerの仕様によるものと考えられます。本アプリケーションを使ってPDF変換を行うPCではDocuWorks Deskでの操作や他のDW文書を開く操作はできるだけしないで下さい。

  • 本アプリケーションは、印刷を行うプリンターによって動作環境が変わります。

    仮想プリンターによって作成されるPDFの品質が変わったり、安定性が低下したりする場合があります。

    DocuWorks PDFはバージョンが変わることで将来使用できなくなる可能性もあります。長期間の運用を望むユーザー様は、その点を十分にご理解の上ご利用ください。

  • DocuWorks9.1のDocuWorks PDFは印刷設定を細かく指定できますが、圧縮オプションのカラー/グレースケール画像の圧縮方法にJPEG2000を選択すると不安定になる頻度が高いようです。JPEGかZipを選択することをお奨めいたします。

  • DocuWorks PDFに並列で印刷を行うと、印刷設定の内容により異常終了する現象を確認しています。

    障害が発生しているアプリケーション名: spoolsv.exe、バージョン: 10.0.26100.2454、タイム スタンプ: 0x02df797c
    障害が発生したモジュール名: DocuWorks PDF Driver.dll、 バージョン: 0.3.7522.2、タイム スタンプ: 0x6557116b
    例外コード: 0xc0000005
    フォールト オフセット: 0x00000000003433f9
    フォールト プロセス ID: 0x4308
    アプリケーションのフォールトの開始時刻: 0x1DB51F2C69DB1A3
    Faulting アプリケーション パス:  C:\WINDOWS\System32\spoolsv.exe
    Faulting モジュール パス:  C:\WINDOWS\system32\spool\DRIVERS\x64\3\DocuWorks PDF Driver.dll
    Report Id: 1172aa71-b72c-4865-8a09-62201104acf9
    Faulting パッケージの完全名: 
    Faulting パッケージ相対アプリケーション ID: 

    この障害が発生するとプリンターが応答不能になりますが、Print Spoolerサービスが停止してしまうことが原因のようです。 DocuWorks PDF Driver.dllが異常終了することで、 Print Spoolerサービスも異常終了してしまうと考えられます。

    Print Spoolerサービスが停止状態となるので、他のプリンターの印刷もできない状態となります。

    この情報は2024年12月19日にDocuWorks 9.1.8で確認した内容です。将来のアップデートで修正される可能性があります。

    停止状態となったPrint Spoolerサービスを、サービスのコントロールパネルから開始すれば、プリンターが使用できるようになります。

    また、サービスのコントロールパネルから、Print Spoolerサービスの回復タブのエラー時の処理をすべて「サービスを再起動する」にしておくことをお奨めいたします。

  • printToPdfFromDocuWorksFileは、Windowsで利用できるPDFプリンターとDocuWorks Viewerを呼び出して利用するアプリケーションです。

    PDFプリンターとDocuWorks Viewerで不具合が発生しても弊社では修正できません。

    printToPdfFromDocuWorksFileはPDFプリンターとDocuWorks Viewerを、できるだけ不具合を起こさないように使用するためのアプリケーションであるということをご理解ください。

  • Windows11のバージョン24H2でプリンターキューを開いた状態でDocuWorks PDFやDocuWorks Viewerを使ってPDF変換を行うと、不完全なPDFが作成される問題が発生しています。printToPdfFromDocuWorksFileを使用時はプリンターキューを開かないでください。printToPdfFromDocuWorksFileはプリンターキューが開かれていることを検出すると処理中のファイルをエラー処理します。

ライセンスについて

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

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

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

.NET Framework 4.6.2 以降

DocuWorks 9.1 ~ 10

更新履歴

2025/11/17 Version 1.0.2

  • DocuWorks 10のDocuWorks Viewerが表示するダイアログに対応。
  • DocuWorks ViewerやDocuWorks PDFがダイアログを表示した際にスクリーンショットを保存するスイッチ -ssjbcd を追加。
  • 対象プリンターの印刷キューから印刷ジョブ情報リストを取得する際に、印刷ジョブ情報リストの取得に失敗しても一定時間リトライするように変更。
  • 取得した対象印刷ジョブ情報の状態取得に失敗した際に、「OSが対象印刷ジョブ情報を印刷キューから削除した」とみなして正常処理とするように変更。その際、終了コードは -2 となり、出力されるメッセージは「印刷終了は確認できませんでした」のような警告メッセージとなります。
  • ログに記録する情報を調整。プロセス起動日時を追加。メッセージステータス(正常、警告、エラーの3種類)を追加。
  • プリンター関連のエラーが発生した際に、詳細なエラーメッセージや状況メッセージを出力するように調整。
  • 一部のプリンターが生成する印刷ジョブ情報の判定が想定通り行われない事がある問題を修正。

2025/03/05 Version 1.0.1

  • タイムアウト発生時にDocuWorks Viewerを強制終了するスイッチ -ftwto を追加。
  • 指定した時間が経過しても印刷ジョブのページ数が変化しなかった時にタイムアウトとするスイッチ -ppto を追加。
  • 文書変換失敗時に入力DocuWorks文書ファイルをエラーフォルダーへ移動した際のログに、入力DocuWorks文書ファイルのフルパスを記録するように変更。
  • ログ出力の際に、自身のプロセスのプロセスIDを記録するように変更。 (printToPdfFromDocuWorksFileのプロセスID)
  • 起動したDocuWorks ViewerのプロセスIDをログに記録するように変更。
  • 印刷ジョブを制御して、タイムアウト発生時の印刷ジョブのキャンセルや、印刷終了の判定などを行うように変更。(出力PDFファイルをqpdfでチェックしないように変更。)
  • DocuWorks PDFが表示するエラーダイアログを検出した時に閉じるように変更。
  • 印刷キューアプリケーションを検出した時に印刷処理を中断してエラー処理を行うように変更。

2024/12/22 Version 1.0.0

  • 新規リリース。