我有一个Word文档,其中包含不同的字体和不同的语言。一个例子是英文文本和相应的古希腊语翻译。对于古希腊部分,使用TrueType字体(https://fonts2u.com/greek-regular.font)。 现在,这种方法非常不适合共享这些文件,我想将古希腊部分转换为相应的unicode字符。
我尝试使用python软件包python-docx导入文件。尽管可以成功导入和查看文件内容,但是我找不到找到仅选择古希腊字符并将其转换为相应的unicode字符的方法。
我正在考虑使用TrueType字体字符映射,并使用相应的unicode字符查找和替换这些字符。但是,查看内容后,我无法仅选择古希腊字符。
问:是否可以使用VBA,python或以不同编码导出文件,以将古希腊字符“翻译”为相应的unicode字符?
答案 0 :(得分:1)
哇,听起来很尴尬,复合的破碎!
鉴于字体正在使用其自己的字符编码的非标准定义,使用XML解析器直接处理文件可能会更容易。我之所以这样做,主要是因为这是我想到的最容易选择文本相关错误编码部分的方式。
类似:
ElementTree
)。请注意,DOCX文件实际上是一个ZIP文件,其中包含一个名为word/document.xml
的文件以及其他适当的相关图片/杂项您想要切换为在其标准unicode代码点中使用希腊字符的字体,您可以在原始XML中执行此操作,或者只是在Word中重新打开文件并在各处设置字体
答案 1 :(得分:1)
我正在使用python-docx包搜索并根据其字体名称选择字符
import docx
doc = docx.Document('greek_text.docx')
doc.paragraphs[3].runs[10].font.name
例如返回“希腊语”
for run in doc.paragraphs[3].runs:
if run.font.name == "Greek":
for char in run.text:
print (char +" "+ str(hex(ord(char))))
g 0x67
u 0x75
n 0x6e
»0xbb
返回unicode字符和相应的十六进制值。这样就可以将这些值映射到其希腊字符的正确unicode值。