CentOS 6でlibreofficeを使用しています。次のコマンドを使用してODTファイルをPDFに変換できます。
libreoffice --headless --convert-to pdf *.odt
しかし、問題は、libreofficeに開いている文書がない場合にのみ機能することです。
--env:UserInstallation=file:///path/to/some/directory
コメントの1つが提案したとおりに指定した場合この問題 、役に立ちません。
私は何が間違っていましたか? before コマンドを実行する前にすべての libreoffice インスタンスを終了するのは面倒です。
答え1
1つの可能な方法はインストールすることですunoconv
(まだインストールされていない場合)。
unoconv file.odt
unoconv
詳しくは男をご覧ください
unoconv
LibreOfficeがインポートできるすべてのファイル形式を、LibreOfficeがエクスポートできるすべてのファイル形式に変換できるコマンドラインユーティリティ。unoconv
LibreOfficeのUNOバインディングを使用した非対話型変換...
また、一部のプラットフォームではインストールが必要ですlibreoffice-headless
\thanks{Aaron}
答え2
コメントの提案が不完全で(ディレクトリを指定できない)、正しくないため(ディレクトリを指定する必要があります--env:...
)-env:..
、これは機能しません。
- libreoffice のすべてのインスタンスを停止します。
以下を指定せずにコマンドラインからlibreofficeを起動します
--headless
。libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt
/home/username
ホームディレクトリに置き換える必要があります(.config
CentOSにない場合は調整してください。私はUbuntuとLinux Mintでこれを行いました)。上記のコードは、.configディレクトリに代替libreoffice用の新しい設定ディレクトリを作成します。このディレクトリがないと、javaが見つからないというエラーが発生します。- libreoffice インスタンスの終了
/home/username/.config/libreoffice-alt
これでディレクトリを作成する必要があります。
libreoffice
コマンドラインから別のインスタンスを起動し(これを行うと、2番目のインスタンスの起動に問題がある場合は便利なメッセージが表示されます)、次の実行-env:...
中に変換を開始します。
libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt --headless --convert-to pdf *.odt
答え3
これはまったく異なるアプローチです。
これは、最近新しいコンバージョン経路のセットが開かれたために可能です。読書ODTファイルを読み取る機能を新しく入手しました。
Pandocはファイル形式を読み取ると、それを内部形式の「ネイティブ」(JSON形式)に変換します。
その後、文書を元の形式からさまざまな異なる形式にエクスポートできます。 PDFだけでなく、DocBook、HTML、EPUB、DOCX、ASCIIdoc、DokuWiki、MediaWikiなど...
ここで必要な出力形式はPDFなので、Pandocが提供する他のパスの別のオプションがあります。PDFエンジン。以下は現在利用可能なPDFエンジンのリストです(Pandoc v2.7.2以降 - 以前のバージョンはより小さいリストのみをサポートできます)。
PDFラテックス:これが必要ですエマルジョンPandocに追加インストールします。
エマルジョン:これが必要ですXeLaTeXPandocの他に追加インストール可能(ユニバーサルパッケージの追加パッケージとしてもインストール可能)TeXのデプロイ)。
コンテキスト:これが必要ですコンテキストPandocへの追加インストールは、最も多様なアドオンパッケージで提供されています。TeXのデプロイ)。
ルラテックス:これが必要ですルアテックスPandocの他に追加インストール可能(ユニバーサルパッケージの追加パッケージとしてもインストール可能)TeXのデプロイ)。
pdfroff:これが必要ですGNUロープPandocに追加インストールします。
wkhtml2pdf:これが必要ですwkhtmlをpdfにPandocに追加インストールします。
王子:これが必要ですPrinceXMLPandocに追加インストールします。
ウェイ印刷:これが必要ですウェイプリントPandocに追加インストールします。
Pandocに統合されているますます新しいPDFエンジンがありますが、私は自分で試したことがなく、現在では詳細に説明できません。設定そしてエマルジョン。
警告する:すべてのPDF出力で、元の文書がODTの印刷プレビューまたはPDF書き出しと同じように見えるとは思わないでください! Pandoc、変換時レイアウトを維持しない、これコンテンツそして構造文書の内容:段落はまだ段落であり、強調表示された単語はまだ強調表示され、タイトルは依然としてタイトルです。しかし、全体的な外観は大きく変わることがあります。
コマンド例
PDFラテックス:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=pdflatex
XeLaTeX:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=xelatex
LuaLaTeX:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=lualatex
コンテキスト:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=context
GNUチーム:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=pdfroff
wkhtmltopdf:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=wkhtml2pdf
PrinceXML:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=prince
ウェイ印刷:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=weasyprint
上記のコマンドは最も基本的な変換です。選択したPDFエンジンによっては、出力PDFファイルの外観を制御するための多くのオプションがあります。たとえば、LaTeXを介してルーティングされるすべてのパスに次の追加パラメータを追加できます。
-V geometry:"paperwidth=23.3cm, paperheight=1000pt, margin=11.2mm, top=2cm"
カスタムページサイズ(DIN A4よりわずかに大きく、上端の余白は2cm、他の3辺の余白は1.12cm)を使用します。
答え4
次のことを試すことができます。
$ libreoffice2 pdf *.odt
とにかく、このpb.は少なくともlibreoffice 6からlibreofficeチームがこの問題を解決しました。