LibreOffice 命令行使用方法

351 阅读3分钟

LibreOffice

discover_flat.png

首先 Libreoffice 是一个强大的开源的办公软件,类似于微软的Office系列办公软件,但他默认使用开放文档格式 (OpenDocument Format , ODF), 并且也支持 *.docx, *.xlsx, *.pptx 等其他格式。

它包含了 Writer, Calc, Impress, Draw, Base 以及 Math 等基本的办公组件,可用于处理文本文档电子表格演示文稿绘图以及公式编辑

总的来说是一个可以替换office系列的办公软件,来进行处理 *.docx, *.xlsx, *.pptx等文件格式的软件。

安装

在 Ubuntu 系统上安装使用如下命令:

sodu apt install libreoffice libreoffice-common

其他系统上的安装,参考官网指南: zh-cn.libreoffice.org/get-help/in… 以及源码编译安装: zh-cn.libreoffice.org/download/so…

libreoffice 命令

LibreOffice 软件是可以通过libreoffice是通过从命令行启动的,同时可以指定各种参数。利用这些参数,可以让开发者根据需求来使用LibreOffice的功能,这也是写这篇文章的目的,就是如何利用libreoffice命令来处理office系列文档。比如,将*.wmf*.emf 等在windows才好处理的图片,利用Linux上Libreoffice转换为更为通用的*.svg*.png*.jpeg*.pdf等文件格式。

仅建议有经验的用户使用命令行参数。因为该命令要求用户具备较多的 LibreOffice 软件或Open Office XML 软件技术的背景知识。

截图 2024-01-11 09-08-05.png

官网帮助地址: help.libreoffice.org/7.6/zh-CN/t…

转换PPTX为PDF

命令格式: librefoff --headless --convert-to pdf source.pptx

  • --headless选项: 以「无界面模式」启动,此模式允许不通过用户界面使用应用程序。
  • --convert-to pdf选项: 转换为指定格式的文件,比如这里指定转换pptx文件为PDF文件。

效果如下:

➜  / ✗ libreoffice --headless --convert-to pdf ppt20240110180530.pptx 
Warning: failed to launch javaldx - java may not function correctly
convert /ppt20240110180530.pptx -> /ppt20240110180530.pdf using filter : impress_pdf_Export
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile

截图 2024-01-11 09-40-29.png

转换指定页

在最新版的libreoffice中,还支持指定额外参数的方式,来控制导出PDF格式文件的幻灯片页数, 比如:

libreoffice --convert-to 'pdf:writer_pdf_Export:{"PageRange":{"type":"string","value":"2-3"}}' examples1.pptx

对于命令行中的 pdf:writer_pdf_Export:{"PageRange":{"type":"string","value":"2-3"}} 参数字段

  • pdf: 表示转换的目标文件格式类型
  • writer_pdf_export: 表示转换时使用的筛选器,这里表示使用Writer 模块的writer_pdf_Export 筛选器。更多其他类型的筛选器,参考官网筛选器列表: help.libreoffice.org/7.6/zh-CN/t…
  • {"PageRange":{"type":"string","value":"2-3"}}: 传递给筛选器的参数, 类似于函数调用时的参数, 更多的参数类型,参考官网PDF文件参数: help.libreoffice.org/7.6/zh-CN/t…

转换PDF为PNG

在遇到通用的PDF格式文件时,我们可能想要将PDF文件转换为更为通用的图片格式,参考以下命令:

libreoffice --headless --convert-to png ppt20240110180530.pdf

注意, 这里转换的结果,可能只是第一页PDF的图片,如果想要批量将每页PDF转换为PNG图片,需要先将多页的PDF文件,分割成多个只含一页的PDF文件,再进行转换.

效果如下:

image.png

转换EMF为PNG

在特殊场景时(解析pptx文件),可能会遇到需要将emf格式的图片文件,转换为更为通用的其他格式的文件, 比如: PNGWEBPSVG 等等。

libreoffice 命令同样可以完成这项工作,示例如下:

libreoffice --headless --convert-to png image3.emf
libreoffice --headless --convert-to svg image3.emf
libreoffice --headless --convert-to webp image3.emf

效果如下:

image.png

注意,这里转换的结果文件大小可能为整个页面的大小,如果只要形状区域的大小,可使用inkscape转换。

转换WMF为PNG

这里的转换示例,就留作作业吧,与将EMF转换为PNG差不多, 就不多此一举了。

最后

今天要介绍的内容就这么多,欢迎留言与评论!以及给予更多的建议。