如何用Python复刻pdf2txt -t xml命令的输出效果?
复刻pdf2txt命令行XML输出时的差异问题
我尝试用Python复刻命令行指令 pdf2txt -t xml samplePdf.pdf > test.xml 的功能,编写了以下代码:
import pdfminer.high_level from pdfminer.layout import LAParams laparams = LAParams() laparams.all_texts = True with open("out.xml", 'w') as out: with open('./samplePdf.pdf', 'rb') as pdf: pdfminer.high_level.extract_text_to_fp( pdf, out, 'xml', codec="", laparams=laparams)
生成的结果与命令行输出类似,但文本框(textbox)和/或文本行(textline)的数量存在差异,我不清楚原因。
补充说明
- 测试使用的是一篇科学论文PDF
- 发现的第一个差异:命令行输出的第一行是
<? xml version = "1.0"?>,未提及编码信息;而Python代码生成的XML声明中指定了encoding="utf-8"。尝试传入"utf-8"作为codec参数会触发值错误,因此代码中只能将该参数留空。
内容的提问来源于stack exchange,提问作者Teo7
相关产品推荐
相关产品推荐

