如何用LibreOffice将可选文本PDF转为纯文本DOCX?
解决方案
调整LibreOffice PDF导入参数
LibreOffice的writer_pdf_import过滤器默认会保留PDF原布局,将文本放入文本框中。你可以通过添加ImportTextIntoFrames=false参数,强制将文本转为流式普通段落,避免文本框问题。
直接转换命令
替换原命令为以下内容:
libreoffice --headless --infilter="writer_pdf_import:ImportTextIntoFrames=false" --convert-to docx --outdir /pdfOutput myPdf.pdf
补充参数(若上述命令无效)
如果遇到配置加载干扰,可添加--norestore参数:
libreoffice --headless --norestore --infilter="writer_pdf_import:ImportTextIntoFrames=false" --convert-to docx --outdir /pdfOutput myPdf.pdf
备选方案:分两步转换(PDF→ODT→DOCX)
部分LibreOffice版本对ODT格式的PDF导入支持更稳定,可拆分转换流程:
# 第一步:将PDF转换为ODT libreoffice --headless --infilter="writer_pdf_import:ImportTextIntoFrames=false" --convert-to odt --outdir /tmp myPdf.pdf # 第二步:将ODT转换为DOCX libreoffice --headless --convert-to docx --outdir /pdfOutput /tmp/myPdf.odt
替代工具方案(若LibreOffice仍不满足需求)
如果上述方法无效,可先用pdftotext提取纯文本,再用pandoc生成DOCX:
# 提取PDF中的纯文本 pdftotext myPdf.pdf myPdf.txt # 将纯文本转换为DOCX格式 pandoc -s myPdf.txt -o /pdfOutput/myPdf.docx
内容的提问来源于stack exchange,提问作者user2757185
相关产品推荐
相关产品推荐

