LibreOffice

首先 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 软件技术的背景知识。

官网帮助地址: 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
    

    转换指定页

    在最新版的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文件,再进行转换.

    效果如下:

    转换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
    

    效果如下:

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

    转换WMF为PNG

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

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