ドキュメントをhtml、txtからpdf、odt、またはその逆に変換しようとしています。しかし、odtからpdfのみが機能するようです。他のファイル形式は変換されません。
これが私のコマンドです
libreoffice --headless --convert-to pdf test.html [Not working]
libreoffice --headless --convert-to odt test.html [Not working]
libreoffice --headless --convert-to pdf test.docx [Not working]
libreoffice --headless --convert-to pdf test.odt [Working]
これは、バージョン5.3.0で修正されたLibreOfficeの 既知の問題 です。この修正の前は、LibreOfficeのインスタンスが実行されているときに--convert-toまたは他のコマンドを実行すると、何もせずにサイレントで終了していました。
お使いのバージョンがそれより古い場合は、ここで Frank Yinが提案したソリューション を検討できます。これは、変換を実行する前に、開いているすべてのLibreOfficeドキュメントを閉じます。
開いているすべてのLibreOfficeドキュメントを閉じて変換を実行できない場合、または不便である場合は、元のバグへのコメントで提案されている solution を試すことができます。
LibreOfficeバージョンが4.5より前の場合実行
soffice -env:UserInstallation=file:///$HOME/.libreoffice-headless/ \
--headless --convert-to pdf test.docx
LibreOfficeバージョンを実行している場合、4.5と5.3の間を実行します。
soffice -env:UserInstallation=file:///$HOME/.libreoffice-headless/ \
--convert-to pdf test.docx
ここに $HOME/.libreoffice-headless
は、メインのLibreOfficeプロファイルとは異なる新しいプロファイルディレクトリです。
コマンドを実行する前に、実行中のLibreOfficeのインスタンスをすべて閉じてください。これが私の痛みの根本的な原因でした。
本当の問題は、libreoffice/sofficeコマンドラインがエラーメッセージやデバッグ情報を提供しないことです。そのため、それはすべて推測です。あなたがそれまでなら、ヒントのためにstraceを試してください。
私の場合(Linux)、正しいパッケージがインストールされていませんでした。たとえば、スプレッドシートを変換するには、libreoffice-calcが必要です(duh)、libreoffice-headless(double-duh)。しかし、コマンドラインはそれを教えてくれません-ハングするか、実行されて何もしません。
以下の作品
libreoffice --invisible -convert-to pdf myFile.html
libreoffice --invisible -convert-to docx myFile.odt
オプション --invisible
はGUIを起動しませんが、コマンドラインで何が起こっているかについての手がかりを与えます。
Linux Mint 13でテスト済み。
これはLibreOffice 4.2/Linuxで私のために働きました:
soffice --headless --convert-to txt:Text /path_to/document_to_convert.odt
クレジット: http://ask.libreoffice.org/en/question/14130/how-do-i-install-filters-for-the-soffice-command/
私のために。私が抱えていた問題は、ローカルのlibreofficeプロセスが既にドキュメントを開いている場合、-headlessが機能しないこと、AT ALL(15ミリ秒で戻るだけ))でした。
LibreOfficeでまだ開いていないドキュメントに対してのみヘッドレス操作を実行するようにしてください。
私にとって、CentOS 7でヘッドレスdocxからpdfへの変換を機能させるには、次の2つのパッケージが最低限必要でした。
yum install libreoffice-headless libreoffice-writer
Windowsで次の問題が発生しました。次のコマンドを使用して、すべてのDOCファイルをPDFに変換しました。
soffice --invisible --convert-to pdf *.doc
エラーメッセージなしで失敗しました。しかし、*.doc
の代わりに、ファイルの1つのファイル名を指定すると、うまくいきました。そのため、*.doc
でワイルドカードを解決するときに問題が発生したようです。上記とまったく同じコマンドを実行しますが、通常のコマンドプロンプト(cmd.exe)ではなく、Git Bashから実行します。出来た。さらに:Git Bashでは、進捗情報と有益なメッセージが表示されました!
だから私のアドバイスは:Windowsでsoffice.exeを実行していて出力が得られない場合は、Git Bashからコマンドを実行します( Git for Windows をインストールするとGit Bashを取得できます)。
Libreofficeで遭遇した問題の1つは、空のスペースの問題でした。名前(テスト「documnet.docx」ではなく「test-document.docx」)をスラッグした後、完全に機能しました。バージョン4.2.8.2から5.3まで。