利用poppler-utils将PDF尽可能还原为ODT - 可打印的版本 +- WeHack BBS (https://bbs.wehack.space) +-- 版块: 计算机技术 (https://bbs.wehack.space/forum-5.html) +--- 版块: GNU/Linux 讨论区 (https://bbs.wehack.space/forum-6.html) +--- 主题: 利用poppler-utils将PDF尽可能还原为ODT (/thread-221.html) |
利用poppler-utils将PDF尽可能还原为ODT - nadebula - 01-25-2021 完全还原是不可能的,由于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, 重新插入表格和图片 RE: 利用poppler-utils将PDF尽可能还原为ODT - vimacs - 01-26-2021 直接用LibreOffice Writer打开PDF文件也可以吧,LibreOffice用的也是poppler. 另外只要文本的话可以考虑mutool draw,但不一定能输出有效的文本。 RE: 利用poppler-utils将PDF尽可能还原为ODT - nadebula - 01-26-2021 (01-26-2021, 09:11 AM)vimacs 提到: 直接用LibreOffice Writer打开PDF文件也可以吧,LibreOffice用的也是poppler. 如上所述,除非该PDF在创建时同时嵌入了ODT,否则会用Draw打开。原帖更新了一些内容。总的来说,如果预先准备好了一套样式(按老谭风格说,样式是LibreOffice的灵魂),从已有的PDF进行转换还是能节省一些操作步骤。 Bruce Byfield的新书Designing Ebooks本人将会持续关注。 RE: 利用poppler-utils将PDF尽可能还原为ODT - vimacs - 01-26-2021 (01-26-2021, 09:27 AM)nadebula 提到: 如上所述,除非该PDF在创建时同时嵌入了ODT,否则会用Draw打开。原帖更新了一些内容。总的来说,如果预先准备好了一套样式(按老谭风格说,样式是LibreOffice的灵魂),从已有的PDF进行转换还是能节省一些操作步骤。 LibreOffice是支持用Writer或者Impress打开PDF的,在选择文件的窗口里面选择文件类型为"PDF - Portable Document Format (Writer)"就是用Writer打开。 RE: 利用poppler-utils将PDF尽可能还原为ODT - nadebula - 01-26-2021 (01-26-2021, 03:02 PM)vimacs 提到: LibreOffice是支持用Writer或者Impress打开PDF的,在选择文件的窗口里面选择文件类型为"PDF - Portable Document Format (Writer)"就是用Writer打开。 那么我可能一直没有注意这列表里还有这么多类型,包括天朝的UOF…… 现在的问题是Self-publishing using LibreOffice Writer 6这作者用的是私有字体Georgia,如果替换为默认的Liberation Serif会变宽。我在想到底是改一堆段落样式还是干脆改页面样式(增大纸张尺寸),反正不必须和原书拥有相同的物理尺寸。 RE: 利用poppler-utils将PDF尽可能还原为ODT - nadebula - 08-10-2021 2021年8月更新: 我处理Self-publishing一书的时候最终没有采用ODF/PDF格式,直接编辑好markdown利用pandoc处理成HTML了,图片则是通过poppler-utils提取之后(选择提取全部类型的图片),在HTML中插入引用来处理。 Designing ebooks新书也将采用类似方式处理。因为制作ODF/PDF不仅费时,而且反而不利于在诸如手机等设备上阅读,失去了一定的灵活性。 |