0

我想使用 Python 脚本在 MS Word 文档中处理一些双向文本(乌尔都语和英语),该脚本将文本转换为表格标记。我无法直接访问 Word 文档中的双向文本,因为它是二进制格式,即使我将 Word 文档中的文本复制粘贴到文本编辑器,所有双向文本都会错误地呈现方向性。

例子:

以下文本从我复制它的原始 MSWord 文本(涉及乌尔都语文本)以相反的方向呈现:

图片 پر ہے۔

那么如何处理这样的双向文本,以便在像notepad++这样的文本编辑器中正确呈现,从而可以用Python脚本忠实地处理呢?

4

1 回答 1

0

首先,不要依赖在 Word 文件中正确显示的双向文本。它不能保证在其他环境中相同的文本会正确显示。Microsoft Word 在当前和旧版本中有自己的处理双向文本的方式,这不一定是符合 Unicode 的文本编辑器(如gedit)处理该文本的方式。这最终可能会或可能不会得到解决,因为 Microsoft 将在产品中实施更新版本Unicode 双向算法

其次,您看不到复制文本的原因是您的文本环境(包括此处)不正确支持双向文本,甚至无法显示从右到左的文本。我在符合 Unicode 的文本编辑器中复制了您的示例字符串,并将方向更改为右,这是正确的结果。

Unicode 兼容编辑器中从右到左的文本示例

现在,为了能够使用 Python 处理该 Word 文件中的文本,您需要进行一些即兴创作。您可以将文本内容导出为 Unicode 文本,然后使用 Python 进行处理。或者,如果您想就地(在 Word 中)处理文本内容,您可能能够从 Python 的 OLE 组件脚本中获得一些令人满意的结果。请参阅此处的相关问题。

于 2013-04-16T20:26:08.840 回答