これを行うためのツールはありますか? OpenOfficeを自動化するPython/Javaツールをいくつか見てきましたが、これを確実にスクリプト化して複数のファイルを実行し、.docファイルを含むフォルダー/ディレクトリツリーを繰り返して、変換された.txtファイルと.htmlファイルを次に配置します。その場所の元のファイルに。
@slhckソリューションはほぼ機能しますが、出力はすべてのファイルが連結されたディスプレイ/ STDOUTになります。出力として個別の.txtファイルが必要です。理由は、出力のファイル名を考慮していないためです。
フォルダー階層をトラバースする必要があることを回避するにはWindowsで* .docを検索し、結果をフォルダーにコピーして、すべてをフラット化した1つのフォルダーに配置すると、Ubuntuを起動して次のコマンドを実行できます。
(ファイル/フォルダーの再帰コードがどこかにあり、後で掘り下げて追加します。)しかし、今のところ、上記のようにファイル階層をフラット化するだけで十分です。
ちなみに、catdocはantiwordよりもうまく機能します。これは、antiwordがWordドキュメントではないファイルがあると文句を言うためです。これらは、ドキュメント内のフレームとして編成されたフォーマットとテキストのブロックを持つ.docファイルである傾向があります。 catdocは私のすべてのドキュメントを変換しているようです。
#!/usr/bin/Perl -w
use File::Basename;
my $okFiles = "";
my $couldntGet = "";
@files = <*>;
foreach $file (@files)
{
if ( $file =~ m/\.doc/ )
{
my ( $filenameOnly, $dir, $ext ) = fileparse($file, qr/\.[^.]*/);
if ( ( defined $filenameOnly ) && ( defined $ext ) )
{
$okFiles .= "file: ".$file." filename only:".$filenameOnly." extension:".$ext."\n";
system( "catdoc \"".$file."\" > \"".$filenameOnly.".txt\"" );
}
else
{
$couldntGet .= "*file: ".$file." - couldn't get filename only and extension\n";
}
}
print $okFiles;
print $couldntGet;
}
私が知っているUnixツールは2つあります。
catdoc
antiword
find
を使用して、フォルダーを再帰的に調べることができます。
find . -name "*.doc" -exec <command> {} \;
どこ <command>
は、catdoc
またはantiword
のいずれかを使用して、.docファイルを.txtファイルに変換するための適切なアクションです。
同じツールを使用できますが、たとえば Homebrew を使用してインストールする必要があります。これを行うには、ターミナルに入力します。
Ruby -e "$(curl -fsSL https://Gist.github.com/raw/323731/install_homebrew.rb)"
その後:
brew install catdoc
brew install antiword
catdocとantiwordのファイル形式のサポートは非常に限られており、理解できる最新バージョンはWord2000です。
LibreOfficeをスクリプト化して、理解できるファイルをテキストまたはpdfに変換できることは知っていますが(これはMediaGoblinが行うことです)、正確にそれを行う方法がわかりません。