CentOS 6でlibreofficeを使用しています。ODTファイルをPDFに変換できます。
libreoffice --headless --convert-to pdf *.odt
しかし、問題はlibreofficeで開いているドキュメントがない場合にのみ機能することです。
この質問 のコメントの1つで提案されているように--env:UserInstallation=file:///path/to/some/directory
を指定しても、役に立ちません。
何が悪いのですか? beforeコマンドを実行する前にすべてのlibreofficeインスタンスを閉じるのは面倒です。
コメントの提案が不完全であるだけで(一部のディレクトリを指定することはできません)、正しくない(_--env:...
_は_-env:..
_である必要があるため、これは機能しそうにありません。推奨事項は次のとおりです。
_--headless
_を指定せずにコマンドラインからlibreofficeを起動します。
_libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt
_
_/home/username
_をホームディレクトリに置き換える必要があります(CentOSにない場合は_.config
_を調整してください。UbuntuとLinux Mintでこれを行いました)。上記は、.configディレクトリに代替libreofficeの新しい設定ディレクトリを作成します。これがないと、Javaが見つからないというエラーが表示されます。
/home/username/.config/libreoffice-alt
_が作成されているはずです。コマンドラインから別のlibreoffice
を開始します(これにより、2番目のインスタンスの開始時に問題が発生した場合にいくつかの有用なメッセージを表示できます)。_-env:...
_は使用しません。使用する変換:
_libreoffice -env:UserInstallation=file:///home/username/.config/libreoffice-alt --headless --convert-to pdf *.odt
_
可能なアプローチの1つは、unoconv
をインストールすることです(まだインストールされていない場合)。
unoconv file.odt
詳細はman unoconv
をご覧ください
unoconv
は、LibreOfficeがインポートできる任意のファイル形式を、LibreOfficeがエクスポートできる任意のファイル形式に変換できるコマンドラインユーティリティです。unoconv
は、非インタラクティブな変換にLibreOfficeのUNOバインディングを使用します...
一部のプラットフォームでは、libreoffice-headless
\thanks {Aaron}もインストールする必要があります
これはまったく異なるアプローチです。
最近では、一連の新しい変換パスがPandoc'sODTファイルを読み取るために新しく取得した機能によって開かれたため、可能です。 。
Pandocがファイル形式を読み取る場合、それを「ネイティブ」(JSONの形式)の内部形式に変換します。
ネイティブ形式から、ドキュメントを他のさまざまな形式にエクスポートできます。 PDFだけでなく、DocBook、HTML、EPUB、DOCX、ASCIIdoc、DokuWiki、MediaWiki、その他...
ここで必要な出力形式はPDFなので、Pandocがpdf-engineと呼んでいるものによって提供される別のパスの選択肢があります。ここに現在利用可能なPDFエンジンのリストがあります(Pandoc v2.7.2以降で有効です-以前のバージョンはより小さなリストしかサポートしていません):
pdflatex:これには、Pandocに加えてLaTeXをインストールする必要があります。
xelatex:これには、Pandocに加えてXeLaTeXをインストールする必要があります(追加パッケージとしても利用可能)一般 TeXディストリビューション )。
context:これには、Pandocに加えてConTeXtをインストールする必要があります。 ConTeXtは、最も一般的な TeXディストリビューション )の追加パッケージとして利用できます。
lualatex:これには、Pandocに加えてLuaTeXをインストールする必要があります(一般的な追加パッケージとしても利用できます TeXディストリビューション )。
pdfroff:これには、Pandocに加えてGNU Roffをインストールする必要があります。
wkhtml2pdf:これには、Pandocに加えてwkhtmltopdfをインストールする必要があります。
prince:これには、Pandocに加えてPrinceXMLをインストールする必要があります。
weasyprint:これには、Pandocに加えてweasyprintをインストールする必要があります。
いくつかの新しいPDFエンジンがPandocに統合されました。これはまだ使用していませんが、現在は詳しく説明できません:tectonicおよびlatexmk。
警告:元のドキュメントの外観がすべてのPDF印刷物への出力で同一であることを期待しないでくださいプレビューまたはPDF ODTのエクスポート!Pandoc、変換時はレイアウトを保持しません、contentsとドキュメントの構造:段落は段落のまま、強調された単語は強調されたまま、見出しは見出しのままです。しかし、全体的な外観は大幅に変わる可能性があります。
pdflatex:
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
ConTeXt:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=context
GNU troff:
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
weasyprint:
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のマージンがあります)。