如何合并办公文件?

时间:2017-11-17 13:10:57

标签: python command-line merge libreoffice

情况是一些不同格式和不同布局/内容的办公文档:

  • {A,B,C}的.odt

  • {d,E,F}的.doc

  • {G,H,I} .DOCX

我无法找到合并任何格式的所有文档的好方法,因为没有命令行选项/工具[0,1,2]或布局混乱[3],例如ooo_cat。

预期结果应该是包含其他三个文件内容的单个文件,而不会破坏布局或其他不需要的副作用。遗憾的是,将基础模板文件合并到一个大模板中是不可取的。

以编程方式/ linux命令行顺利合并多个文档的最佳方法是什么?

[0] https://ask.libreoffice.org/en/question/19222/how-to-merge-multiple-documents-into-single-merged-document/

[1] https://forum.openoffice.org/en/forum/viewtopic.php?f=7&t=57435

[2] https://support.microsoft.com/en-us/help/2665750/how-to-merge-multiple-word-documents-into-one---eeekb

[3] https://askubuntu.com/questions/482277/how-to-merge-odt-documents-from-the-command-line

1 个答案:

答案 0 :(得分:1)

  1. 使用--headless启动LibreOffice收听。
  2. 在shell中以交互方式使用Python,并以import uno开头。或者这可以使用Python脚本完成。一个很好的教程是http://christopher5106.github.io/office/2015/12/06/openoffice-libreoffice-automate-your-office-tasks-with-python-macros.html
  3. 根据问题中的链接[1],调用插入 - >文档就像记录的基本代码一样。
  4. dim args(1) as new com.sun.star.beans.PropertyValue
    args(0).Name = "Name"
    args(0).Value = "file:///path/to/the_document.odt"
    args(1).Name = "Filter"
    args(1).Value = "writer8"
    dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, args())