You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将LibreOffice Calc表格转换为不含文件名和页码的PDF文件?

如何将LibreOffice Calc表格转换为不含文件名和页码的PDF文件?

刚好碰到过一模一样的需求,给你分享两种实用方法,分别适配GUI可视化操作和命令行批量转换的场景:

GUI操作步骤

如果你习惯用图形界面操作,按以下步骤来就能搞定:

  • 打开需要转换的Calc表格文件
  • 点击顶部菜单栏的「格式」→「页面样式」,弹出页面样式设置窗口
  • 分别切换到「页眉」和「页脚」标签页:
    • 页眉区域:如果看到自动插入的文件名(一般是通过「插入字段」添加的),直接选中并删除对应的内容,也可以直接勾选「关闭页眉」来完全禁用页眉
    • 页脚区域:同理,删除页码内容,或者勾选「关闭页脚」禁用页脚
  • 确认设置后点击「确定」,然后选择「文件」→「导出为PDF」
  • 在导出对话框里,保持默认参数即可(如果之前没改过导出配置),点击「导出」就能得到不带文件名和页码的PDF了

命令行(CLI)操作方法

如果需要批量转换或者在无图形界面的服务器上操作,推荐用宏配合LibreOffice的无头模式来实现:

  1. 先写一个简单的Basic宏,用来自动关闭页眉页脚:
Sub RemoveHeaderFooter
    Dim oDoc As Object
    Dim oStyleFamilies As Object
    Dim oPageStyle As Object
    
    oDoc = ThisComponent
    oStyleFamilies = oDoc.StyleFamilies
    ' 获取默认页面样式
    oPageStyle = oStyleFamilies.getByName("PageStyles").getByName("Default")
    
    ' 关闭页眉和页脚
    oPageStyle.HeaderIsOn = False
    oPageStyle.FooterIsOn = False
End Sub

把这段代码保存成remove_header_footer.bas文件,放在方便调用的路径下。

  1. 用以下命令执行转换(替换成你的表格文件名):
soffice --headless --convert-to pdf --macro "remove_header_footer.bas!RemoveHeaderFooter" your_spreadsheet.ods

注意: 运行命令前要确保没有其他LibreOffice实例在后台运行,否则可能会导致转换失败。如果需要批量处理,可以写个简单的shell脚本循环处理所有.ods文件。

备注:内容来源于stack exchange,提问作者kammamuri

火山引擎 最新活动