我正在尝试从PDF文件中读取文本,然后再使用Python将相同的文本写回另一个PDF。读入文本后,将字符串打印到控制台时字符串的表示形式为:
Officially, it’s called
但是,当我打印此文本字符串的repr()
时,我看到:
O\xef\xac\x83cially, it\xe2\x80\x99s called
这对我来说很有意义 - 这些是来自PDF的符号的连字,即\ xef \ xac \ x83代表'ff'的连字。问题是,当我使用reportlab库将此字符串写入PDF时,PDF会有黑色符号,如下所示:
这只发生在某些连字上。我想知道我能做什么,以便我写入PDF的字符串不包含这些连字,或者是否有一种有效的方法来替换所有连字符。
答案 0 :(得分:0)
您的输入似乎是正确的,但要查看输出中的ffi
字符,请使用具有一个字体的字体。
您在这里使用的字体是沼泽标准Arial,它不包含它。
一些建议(主要取决于您的平台,但其中一些是开源):
如果您不想要或无法更改字体,请在将文字写入PDF之前,将序列\xef\xac\x83
替换为程序中的普通字符ffi
。 (和你提到的其他某些连字类似。)
答案 1 :(得分:0)
我最终做的是将文字文件中的字符复制出来并对它们进行.replace。即str.replace(' ff',' ff') - 如果看起来相同,那就相同了。左边的参数是连字符,右边的参数是两个f。另外,不要忘记# - - 编码:utf-8 - - 。