%20%E3%81%8B%E3%82%89%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%80%81%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B.png)
LibreOffice Writer には優れた品質があることに気付きました。.docx ファイルを読み込んですぐに保存すると、保存されたファイルの構造が元のファイルとは少し異なりますが、これは良い意味で、.docx 構造の問題などが解決されるようなものです (これにより、後で Apache POI を使用してより適切に処理できるようになります)。
私は、コマンドラインから、または何らかの方法で Writer 関数を直接呼び出して、.docx ファイルを読み込んですぐに保存することで、.docx ファイルを修正するためにこれを使用したいと思います。
解決策のヒントをいただければ幸いです。
答え1
CLIツールを使うとlibreoffice
、ファイルを変換するオプションがあり--convert-to
、希望する形式に変換することができます。出力ディレクトリを指定せずにこれを使用すると、上書きするただし、元のファイルには別の出力ファイル名が付けられないため、別の出力ファイル名を付けることはできません。この問題を回避するには、まずファイルを変換し/tmp/
、その後で元に戻します。
libreoffice --convert-to docx --outdir /tmp/ NAME.DOCX && mv /tmp/NAME.DOCX ./NEWNAME.DOCX
太字の大文字部分を変更するだけで、NAME.DOCX
入力ファイル名にNEWNAME.DOCX
希望する出力ファイル名に変更します。
コマンドラインではbash
、これを次のように短縮できます。
libreoffice --convert-to docx --outdir /tmp/ NAME.DOCX && mv !#:4!#:5 ./NEWNAME.!#:2
これはbash
歴史の拡張パスとファイル名を何度も入力する必要がなくなり、変更するだけで済みます。NAME.DOCX
入力ファイル名にNEWNAME
拡張子を除いた希望の出力ファイル名に変更します。