我在ubuntu中使用pdf2txt(pdfminer python工具)从一些挪威语pdf中提取文本。
此工具与某些pdf的即时使用完美配合,并且我在.txt文件中获取了提取的文本,但是一半的pdf或多或少都会引发此错误:< / p>
追踪(最近一次呼叫最后一次):
文件&#34; / usr / bin / pdf2txt&#34;,第101行,在模块中 如果名称 ==&#39; 主要&#39;:sys.exit(main(sys.argv))
文件&#34; / usr / bin / pdf2txt&#34;,第95行,在main中 caching = caching,check_extractable = True)
文件&#34; /usr/lib/python2.7/dist-packages/pdfminer/pdfinterp.py" ;,第832行,在process_pdf中 interpreter.process_page(页)
文件&#34; /usr/lib/python2.7/dist-packages/pdfminer/pdfinterp.py",第757行,在process_page中 self.render_contents(page.resources,page.contents,ctm = ctm)
文件&#34; /usr/lib/python2.7/dist-packages/pdfminer/pdfinterp.py",第770行,在render_contents中 self.execute(list_value(流))
File&#34; /usr/lib/python2.7/dist-packages/pdfminer/pdfinterp.py" ;,第795行,执行中 FUNC(*参数)
文件&#34; /usr/lib/python2.7/dist-packages/pdfminer/pdfinterp.py",第605行,在do_BDC中 self.device.begin_tag(tag,props)
文件&#34; /usr/lib/python2.7/dist-packages/pdfminer/pdfdevice.py",第160行,在begin_tag中 在sorted(props.iteritems()))
File&#34; /usr/lib/python2.7/dist-packages/pdfminer/pdfdevice.py" ;,第159行,in s =&#39;&#39; .join(&#39;%s =&#34;%s&#34;&#39;%(enc(k),enc(str(v)))for( K,v)
File&#34; /usr/lib/python2.7/dist-packages/pdfminer/utils.py" ;,第164行,in enc 返回x.encode(编解码器,&#39; xmlcharrefreplace&#39;)
UnicodeDecodeError:&#39; ascii&#39;编解码器不能解码位置0中的字节0xfe:序数不在范围(128)
中
我会理解他们中的任何一个都有效,或者所有这些都有效,但他们都在Norweigan,所以他们使用相同的角色。为什么有些人会工作而有些人没有?
当我尝试从第1页提取文本时,甚至有一些pdf会引发此错误,并且可以很好地从第2页中提取文本。
这是我使用的命令:
pdf2txt -t tag -p 4 -A -o out / route / tag.txt in / route / 405448.pdf
这里有两个pdf即时使用的例子。
This one works perrfectly for me: http://54.171.169.37/tilbud/pdf/magazines/404707/404707.pdf
This one dosen't work in any page: http://54.171.169.37/tilbud/pdf/magazines/404635/404635.pdf
And this one, just works in some pages : http://54.171.169.37/tilbud/pdf/magazines/401944/401944.pdf
知道发生了什么? TY提前
编辑: 我已经意识到,如果我以正常模式而不是标签模式(pdf2txt -t标签)提取文本,它可以在之前没有工作的页面上工作。所以&#34;标签&#34;是一个问题提取类型。