使用LibreOffice通过命令行将.xls转换为.pdf
我试图通过Ubuntu上的命令行使用LibreOffice将.xls
文件转换为.pdf
。 在单元格背景中有一些颜色的.xls
文件。
问题是当我转换.xls
文件时, .pdf
丢失了原始格式。 每个页面几乎被打破了一个页面的内容显示在两个不同的页面。
- 有谁知道如何通过命令行将
.xls
文件转换为.pdf
保持原始格式? - 或者一些诀窍来设置
.pdf
页面的大小不中断页面? (也通过命令行)
我用来进行转换的代码是:
soffice --headless --convert-to pdf:"impress_pdf_Export" filename.xls
如果您使用LibreOffice将Microsoft Excel(XLS)文件转换为PDF文档,则这是一个两步骤的过程(即使您的命令看起来像是一个一步的过程):
- 将XLS导入LibreOffice(即使以
--headless
)。 - 从LibreOffice导出PDF。
如果结果看起来不像您期望的(与Excel的本地PDF导出不相似),那么从debugging上面的第一步开始:
-
在GUI中使用LibreOffice打开XLS文件。 它看起来像你期望它看起来? 或者是一些格式选项看起来不可思议?
从那里导出PDF(使用GUI)。 你期望的页面尺寸? 你有没有设置你喜欢的? 像你想要的边缘? etc.pp. …
如果您正在使用Windows,则可能还需要考虑OfficeToPDF.exe 。 它被托pipe在CodePlex上,并获得了Apache 2.0许可证,并以二进制和源代码forms提供。
它需要安装Office 2013,Office 2010 或 Office 2007。 但是,它可以命令行和批量转换为PDF各种基于MS Office的文件格式,包括XLS(X),PPT(X),DOC(X),VSD(X)和PUB以及基于Libre / OpenOffice ODT,ODS和ODC文件。
虽然这与最初的问题有点相似(如果你有Office套件和Windows机器,你不需要Office Libre)
我很欣赏库尔特提供的后续工作。 它促使我发布以下Gist提供了一些关于如何在for循环中使用.exe的明确说明。