Javaプロセスを介してPdfToTextを実行しています。
File pdf = new File( "/path/to/test.pdf" );
File output = new File( "/path/to/output.txt" );
String[] cmd = { "pdftotext",
pdf.getPath(),
output.getPath()
};
ProcessBuilder pb = new ProcessBuilder( cmd );
Process pr = pb.start() ;
int exit = pr.waitFor();
これは問題なく実行されます。
ただし、ここで指定されているエンコードパラメータを追加すると、次のようになります。
String[] cmd = { "pdftotext",
"-enc " + encoding,
pdf.getPath(),
output.getPath()
};
次に、プロセスがハングします。つまり、実行しているテストは、ループでスタックしているかのように実行されます。
エンコーディングには間違いなく値が含まれており、生成されたコマンドをコピーしてコマンドターミナルに貼り付けると、pdftotextは問題なく実行されます。
誰かが私がこれでどこが間違っているのか指摘できますか?