完全还原是不可能的,由于PDF是面向打印的格式。另有大量私有软件和SaaSS号称可以将PDF比较可靠地还原为ODT或DOCX,不过据本人分析,所谓的“可靠性”很可能仅限于那些本身嵌入了一份ODT或DOCX副本的PDF文件。
经过一些查证工作,本人选择了poppler-utils作为处理PDF的工具。基本套路是分别处理文本和图片。利用pdftohtml输出为HTML,利用pdfimages提取图片。(pdftohtml不加-i参数同时输出文本和图片效果不佳。)利用LibreOffice打开此HTML,另存为FODT。
以下是我用的命令:
pdfimages -j filename.pdf image
pdftohtml -s -i -noframes filename.pdf filename.html
用LibreOffice打开后,需要对文本进行大量修补工作。例如本人在处理Self-publishing using LibreOffice Writer 6一书的PDF(原作者没有提供可编辑的ODT)时,本人手动处理了以下问题:
1, 页面背景为灰色:进入页面样式进行修改
2, 去除页面背景色之后,所有“空格”仍为灰色:选中一个灰色的空白字符,粘贴到“查找与替换”中的“查找”一栏,在“替换”一栏输入普通空格,全部替换(耗时较长)
3, 由于是从PDF转换而来,会引入大量换行符(Shift+Enter):在“查找与替换”中选中“正则表达式”,查找\n,替换为空,全部替换
余下的主要问题:
1, 转换之后,页眉、页脚、页码、脚注、尾注、旁注、批注等都成了普通文本,需要手动删除之后重新创建
2, 重新编排目录和索引(需要设置标题样式和索引项)
3, 重新插入表格和图片
经过一些查证工作,本人选择了poppler-utils作为处理PDF的工具。基本套路是分别处理文本和图片。利用pdftohtml输出为HTML,利用pdfimages提取图片。(pdftohtml不加-i参数同时输出文本和图片效果不佳。)利用LibreOffice打开此HTML,另存为FODT。
以下是我用的命令:
pdfimages -j filename.pdf image
pdftohtml -s -i -noframes filename.pdf filename.html
用LibreOffice打开后,需要对文本进行大量修补工作。例如本人在处理Self-publishing using LibreOffice Writer 6一书的PDF(原作者没有提供可编辑的ODT)时,本人手动处理了以下问题:
1, 页面背景为灰色:进入页面样式进行修改
2, 去除页面背景色之后,所有“空格”仍为灰色:选中一个灰色的空白字符,粘贴到“查找与替换”中的“查找”一栏,在“替换”一栏输入普通空格,全部替换(耗时较长)
3, 由于是从PDF转换而来,会引入大量换行符(Shift+Enter):在“查找与替换”中选中“正则表达式”,查找\n,替换为空,全部替换
余下的主要问题:
1, 转换之后,页眉、页脚、页码、脚注、尾注、旁注、批注等都成了普通文本,需要手动删除之后重新创建
2, 重新编排目录和索引(需要设置标题样式和索引项)
3, 重新插入表格和图片