使用LibreOffice通过命令行将.xls转换为.pdf

时间:2014-09-16 21:49:25

标签: excel bash pdf xls libreoffice

我试图通过Ubuntu上的命令行使用LibreOffice将.xls文件转换为.pdf。我在.xls文件上有一种报告,在单元格的背景中有一些颜色等。

问题是当我转换.xls文件时,.pdf会丢失原始格式。每个页面几乎都在一半中断,一页的内容显示在两个不同的页面中。

  • 是否有人知道如何通过命令行将.xls文件转换为.pdf并保留原始格式?
  • 或者设置.pdf页面大小不打破页面的技巧? (也通过命令行)

我用来进行转换的代码是:

soffice --headless --convert-to pdf:"impress_pdf_Export" filename.xls

2 个答案:

答案 0 :(得分:1)

如果您使用LibreOffice将Microsoft Excel(XLS)文件转换为PDF文档,这是一个两步过程(即使您的命令看起来像是一步过程):

  1. 将XLS导入LibreOffice(即使以--headless开头)。
  2. 从LibreOffice导出PDF。
  3. 如果结果看起来不像您期望的那样(与Excel的本机PDF导出不够相似),那么请从上面的第一步开始调试:

    • 在GUI中使用LibreOffice打开XLS文件。您希望它看起来如何?或者一些格式化选项看起来很奇怪?

      从那里导出PDF(使用GUI)。页面尺寸是否符合预期?你有没有按照自己的喜好进行设置?边缘就像你想要的那样? etc.pp. ...


    如果您使用的是Windows,则可能还需要考虑 OfficeToPDF.exe 。它托管在CodePlex上,获得Apache 2.0许可,并以二进制和源代码提供。

    它需要运行Office 2013,Office 2010 Office 2007安装。但它可以命令行和批量转换为PDF各种基于MS Office的文件格式,包括XLS(X),PPT(X),DOC(X),VSD(X)和PUB以及基于Libre / OpenOffice的文件格式ODT,ODS和ODC文件。

答案 1 :(得分:0)

虽然这与初始问题略有不同(如果你有Office套件和Windows机器,你根本不需要Office Libre)

我非常感谢Kurt提供的跟进。它促使我发布以下Gist提供了一些关于如何在for循环中使用.exe的明确说明。

https://gist.github.com/einsty/2189cae4175f619cff0f