如何将LibreOffice Calc表格转换为不含文件名和页码的PDF文件?
如何将LibreOffice Calc表格转换为不含文件名和页码的PDF文件?
刚好碰到过一模一样的需求,给你分享两种实用方法,分别适配GUI可视化操作和命令行批量转换的场景:
GUI操作步骤
如果你习惯用图形界面操作,按以下步骤来就能搞定:
- 打开需要转换的Calc表格文件
- 点击顶部菜单栏的「格式」→「页面样式」,弹出页面样式设置窗口
- 分别切换到「页眉」和「页脚」标签页:
- 页眉区域:如果看到自动插入的文件名(一般是通过「插入字段」添加的),直接选中并删除对应的内容,也可以直接勾选「关闭页眉」来完全禁用页眉
- 页脚区域:同理,删除页码内容,或者勾选「关闭页脚」禁用页脚
- 确认设置后点击「确定」,然后选择「文件」→「导出为PDF」
- 在导出对话框里,保持默认参数即可(如果之前没改过导出配置),点击「导出」就能得到不带文件名和页码的PDF了
命令行(CLI)操作方法
如果需要批量转换或者在无图形界面的服务器上操作,推荐用宏配合LibreOffice的无头模式来实现:
- 先写一个简单的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文件,放在方便调用的路径下。
- 用以下命令执行转换(替换成你的表格文件名):
soffice --headless --convert-to pdf --macro "remove_header_footer.bas!RemoveHeaderFooter" your_spreadsheet.ods
注意: 运行命令前要确保没有其他LibreOffice实例在后台运行,否则可能会导致转换失败。如果需要批量处理,可以写个简单的shell脚本循环处理所有.ods文件。
备注:内容来源于stack exchange,提问作者kammamuri




