Windows でサブプロセスを使用して IrfanView を起動し、コマンド ライン スイッチを使用して TIFF ファイルを PDF に変換しています。
私は TIFF のいくつかのフォルダーを処理しており、各ファイルに対してコマンドを呼び出しています。PDF を保存するとき、IrfanView は「Save PDF」というタイトルのダイアログを表示して進行状況を示します。
ダイアログはほんの一瞬しか表示されませんが、ウィンドウのフォーカスを取得するため、スクリプトがバックグラウンドで実行されている間はコンピューターを使用できません。値を使用subprocess.STARTUPINFO
してウィンドウを非表示にしようとしましたが、ダイアログが非表示になっている間、まだフォーカスをつかんでいるようです。
IrfanView アプリケーションを呼び出す方法を次に示します。
startup_info = subprocess.STARTUPINFO
startup_info.dwFlags = 1
startup_info.wShowWindow = 0
subprocess.call(['i_view32.exe', 'c:/input.tif', '/convert=c:/output.pdf'], startupinfo=startup_info)
ウィンドウを非表示にしてフォーカスを奪わずにアプリケーションを起動する方法を知っている人はいますか? 喜んでいくつか試してみます。そのようなプログラムが存在する場合は、IrfanView を呼び出すラッパー アプリケーションでも実行できます。これは Windows でのみ必要なので、クロスプラットフォーム ソリューションは必要ありません。
代わりに GraphicsMagick などを使用することもできますが、入力ファイルの圧縮形式を一致させるには IrfanView の方が優れているため、理想的には IrfanView を使用してこれを機能させたいと考えています。