我希望在wxPython中显示一个.pdf文件,就像用Windows Notepad打开所述.pdf文件一样。我的程序中的所有内容都可以工作,除非我的数据发送到txtctrl。我的代码的相关部分是:
def DoOpen(self):
"""Show file open dialog and open file"""
wildcard = "pdf Files (*.pdf)|*.pdf"
dlg = wx.FileDialog(self,message="Open a File",wildcard=wildcard,style=wx.FD_OPEN)
if dlg.ShowModal() == wx.ID_OK:
path = dlg.GetPath()
with codecs.open(path, 'rb','utf8','ignore') as handle:
text = handle.read()
print (text)
self.txtctrl.SetValue(text)
self.file = path
dlg.Destroy()
print语句打印到我的解释器,因为它应该出现在我的程序中。但是在数据通过SetValue方法传递之后,输出到wxPython的文本会在它到达我的第一个对象流时立即终止,就像我省略的那样,忽略'忽略'打开文件阅读时。
我已阅读http://wiki.wxpython.org/UnicodeBuild并且在此过程中变得更加困惑。想法?
答案 0 :(得分:0)
我的猜测是wx.TextCtrl
仅支持有效的 UTF-8输入。由于"字符"在PDF对象流中不是UTF-8,您可以在将其传递给wx.TextCtrl
之前对其进行转换。例如,您可以尝试使用raw_unicode_escape
编解码器而不是utf-8
进行解码。