CubePDF 1.0.3

CubePDF

CubePDF 1.0.3 をリリースしました。修正点は下記の 2 点です。

環境変数 TMP/TEMP の設定方法を変更

Ghostscript API による変換中にエラーが発生しました

CubePDF を利用する際、場合によって「Ghostscript API による変換中にエラーが発生しました。(-100)」と言うエラーが発生する事があります。該当のエラーは CubePDF が利用している Ghostscript と言うライブラリに起因するもので、エラーコード -100 は原因が不明である事を表します。そのため、残念ながらこの情報だけではエラー内容を特定する事はできません。

ただ、開発環境による検証やユーザのフィードバックから、この原因の一つとして、作業領域に関わるものが含まれている事が分かっています。Ghostscript は自らの作業領域として、Windows の環境変数 TMP または TEMP に設定されているパスを利用しますが、このパスに日本語等の非 ASCII 文字が含まれていると変換に失敗する事があります。そのため、CubePDF はこれまで一時的に環境変数 TMP/TEMP の値を変更してエラーを回避していましたが、検証を重ねる内に、この変更がエラーの原因となる場合がある事が分かってきました。

そこで、CubePDF 1.0.3 では、必要と判断した場合のみ、環境変数 TMP/TEMP を一時的に変更するように修正しました(具体的には、TMP または TEMP に設定されているパスに非 ASCII 文字が含まれる場合)。

作業領域からの移動方法を変更

IOException

最近、「別のプロセスで使用されているため、プロセスはファイル path/to にアクセスできません。(IOException)」と表示される不都合報告をいくつか受けています。検証を行った結果、このエラーは CubePDF が作業領域からファイルを移動する際に発生している事が分かりました。

エラー内容としては、CubePDF の生成した一時ファイルに対して他のプロセスがアクセスするため、該当ファイルの移動に失敗すると言うものです。報告を頂いたユーザからの聞き取り調査によると、メモ帳や Microsoft Excel 等では問題なく特定のアプリケーションでのみ発生するようなので、現時点では、直接的な原因は該当のアプリケーションにあると結論付けています。

その上で、CubePDF 側での回避手段として、1.0.3 では、作業領域からのファイルの移動に失敗した場合、代わりにファイルのコピーを試みるように修正しました。

尚、上記のような現象が発生した場合、CubePDF の作成した一時ファイルが削除されずに残ったままになる可能性が考えられます。CubePDF を実行していない状態で C:\ProgramData\CubeSoft\CubePDF に Log フォルダー以外のファイルやフォルダーが存在する場合、お手数ですが、手動で削除をお願いします。