环境:centos8.2 libreoffice7.5
使用命令将excel转出pdf,下拉框数据丢失了。excel中下拉框的数据是来自另一个sheet.
执行命令:
libreoffice7.5 --headless --convert-to pdf dockerSample.xlsx
libreoffice7.5 --headless --convert-to pdf:writer_pdf_Export dockerSample.xlsx
libreoffice7.5 --headless --invisible --convert-to pdf:writer_pdf_Export dockerSample.xlsx
原文删了,发现LibreOffice的表单的确可以通过设置“标签”来达到相同的效果。
那么就是LibreOffice的缺陷了,完全不建议用LibreOffice处理来自MS Office的文档。
就文件名而言,您可能是负责网上填报模块的技术人员,我的建议如下:
- 尝试Python模块:docx2pdf。该方法利用主机的MS Office实例来完成转换,所以您可能还需在主机上安装MS Office。也可以研究python-docx。
- 重做表格。
- 下拉框不仅能用控件实现,还能用数据验证(LO称为数据有效性)来做。在MSO中,控件的文本并不保存在“标签”中,而LO却保存在“标签”中,导致用LO打开时,很多文本丢失。经实验,数据验证在两软件之间是通用的。
- 既然是用LO来转换,那就用LO来做原始表。如果不能接受,就研究调用MSO来转换的方法。
- 将文件填报转为网上填报。用php等工具设计填报表,在网上填写,保存,提交,打印,都会方便很多。python也有很多处理pdf的工具,如MuPDF,可以作为从数据到pdf的中间层。