72

Pandoc を使用してビルドを自動化し、Markdown ファイルを DOCX ファイルに変換しました。最終的なドキュメントのスタイリングに参照ドキュメントを使用したことさえあります。私が使用するコマンドは次のとおりです。

pandoc -f markdown -t docx --data-dir=docs/rendering/ mydoc.md -o mydoc.docx

reference.docxPandoc によって取得され、Pandoc は参照ドキュメントと同じスタイルでdocs/renderingレンダリングします。mydoc.docx

ただし、reference.docxスタイルだけではありません。会社のロゴ、プリアンブルなどが含まれています。

のスタイルとコンテンツの両方を使用して、Markdown コンテンツのマージを自動化するにはどうすればよいですかreference.docx。私のソリューションは Linux で動作する必要があります。

4

4 に答える 4

31

アップデート

ユーザー Christian Long によって提案されたパイプ バージョンを使用します。

pandoc -t latex mydoc.md | pandoc -f latex --data-dir=docs/rendering/ -o mydoc.docx

これが来るのが遅いことはわかっていますが、最初の質問から3年経っても、人々はまだこの問題の解決策を探していると思います-私はそうでした.

私の解決策は、Markdown と docx の間の仲介として LaTeX を使用することでした (実際には、org-mode から変換していましたが、同じ違いです)。したがって、あなたの場合、ワンライナーソリューションは次のようになると思います。

pandoc -f markdown -t latex -o mydoc.tex mydoc.md && \
pandoc -f latex -t docx --data-dir=docs/rendering/ -o mydoc.docx mydoc.tex

それはあなたをあなたの目標に近づけるかもしれません。もちろん、Pandoc には約 100 の引数があり、これをもっときれいにする方法はおそらくあります。また、最初に質問を投稿して以来、かなりの数の更新が行われています。

于 2017-01-03T14:21:12.880 に答える
13

理想的には、カスタム docx テンプレートを使用できますが、pandoc はまだそれをサポートしていません。ファイルは、新しく作成されたreference.docxdocx ファイルにカスタム スタイルを埋め込むことのみを許可します。

幸いなことに、docx の代わりに odt を使用してこれを概算できます。デフォルトの OpenDocument テンプレートをかなり簡単に変更して、カスタム ロゴ、プリアンブル、およびその他のものを含めることができます。カスタム テンプレートをファイルと組み合わせて使用​​して、reference.odtすべてのスタイルとカスタム コンテンツを取得します。

ファイルを odt 形式にしたら、任意の数のコマンド ライン ツールを使用して odt から docx に変換できます。たとえば、Linux では次のように実行できます。

libreoffice --invisible --convert-to docx test.odt

または OS X の場合:

/Applications/LibreOffice.app/Contents/MacOS/soffice.bin --invisible --convert-to docx test.odt
于 2014-02-07T00:16:07.733 に答える
11

理想的には、PanDoc はこの機能を拡張しますが、すぐには実現しないようです。

仕事を直接行うツールについては知りませんが、おそらくマージreference.docxとコードで生成された PanDoc にフォールバックすることができmydoc.docxます。

.docx 形式は、(ほとんどの) XML ファイルの ZIP アーカイブです。最も重要なのはword/document.xml. XML ツールを使用してdocument.xml1 つのファイルから (大部分) を取得し、それを別のファイルに挿入すると、必要なものに近いものが得られます。

イラストが役に立てば、たとえば Ruby で例をハックすることができます。

于 2013-11-22T14:41:09.473 に答える