Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在MS Word脚本中格式化符号重字体时出错_Python_Fonts_Ms Word - Fatal编程技术网

Python 在MS Word脚本中格式化符号重字体时出错

Python 在MS Word脚本中格式化符号重字体时出错,python,fonts,ms-word,Python,Fonts,Ms Word,我最近编写了一个Python程序,它可以自动将文本文件的字体更改为Times New Roman字体。该程序总体上运行良好,但不幸的是,我想转换为Times New Roman字体的一些文本包含大量的科学符号 有时,这些特殊字符显示为方框,这是不可取的。我还希望避免使用耗时而无法执行的脚本(即循环使用单个字符,用font=“Symbol”标识字符,并跳过这些特定字符的格式设置),因为理想情况下,此脚本将用于通过自动化节省时间 我试图更改的文本的Unicode符号如下: 25.0升铀+F0BB铀+

我最近编写了一个Python程序,它可以自动将文本文件的字体更改为Times New Roman字体。该程序总体上运行良好,但不幸的是,我想转换为Times New Roman字体的一些文本包含大量的科学符号

有时,这些特殊字符显示为方框,这是不可取的。我还希望避免使用耗时而无法执行的脚本(即循环使用单个字符,用font=“Symbol”标识字符,并跳过这些特定字符的格式设置),因为理想情况下,此脚本将用于通过自动化节省时间

我试图更改的文本的Unicode符号如下:

25.0升铀+F0BB铀+F020铀+F032铀+F035铀+F02E铀+F035铀+F030千克

我也一直在寻找python之外的方法来解决这个问题(比如寻找可以将文本从一种符号类型转换为另一种符号类型的宏?),但到目前为止都是空的。 任何帮助都将不胜感激

对于字体“Symbol”,具体来说,您可以使用位于的表格。这是一个符号到Unicode的映射表。从符号字体代码值中减去0xF000,并在该图表的第二列中查找结果值。第一列中的值是Unicode。因此,使用上述示例,您将得到:

 0xF0BB -> 0xBB -> U+2248 -> '≈'
 0xF020 -> 0x20 -> U+0020 -> ' '
 0xF032 -> 0x32 -> U+0032 -> '2'
 0xF035 -> 0x35 -> U+0035 -> '5'
 0xF02E -> 0x2E -> U+002E -> '.'
 0xF035 -> 0x35 -> U+0035 -> '5'
编写一些Python代码,从图表中简单查找符号字体代码->Unicode(实际上是一个简单的dict),这将是非常简单的

但是(总是有一个但是!)虽然这对您的示例可能有效,但有一些非常重要的注意事项需要理解:

  • 并非图表中的所有代码都映射到有用的Unicode。最值得注意的是多部分圆括号、方括号和大括号,以及其他一些映射到该图表中专用Unicode的部分
  • 该图表仅对符号字体有用。还有许多其他字体(Wingdings、Zapf Dingbats等)也使用这种“符号编码”(U+F0xx代码),但其他字体中的字形形状不同。该图表无法正确处理这些问题(在许多情况下,没有等效的Unicode)
  • 你愿意吗?