2013-04-01 4 views
0

텍스트를 테이블 마크 업으로 변환하는 Python 스크립트를 사용하여 MS Word 문서에서 우르두어와 영어로 된 일부 양방향 텍스트를 처리하려고했습니다. Word 문서의 양방향 텍스트는 이진 형식이므로 직접 액세스 할 수는 없으며 Word 문서의 텍스트를 텍스트 편집기에 붙여 복사해도 모든 양방향 텍스트가 방향성을 잃어 버리게 렌더링됩니다.텍스트 편집기와 파이썬의 우르두 양방향 텍스트 처리

예 : 다음 텍스트 그것을 복사 곳에서 원본 MS 워드 텍스트 (관여 우르두어 텍스트)에서 역방향으로 렌더링

:

이미지 پر ہے.

그런 bidi 텍스트를 어떻게 처리하여 메모장 + + 같은 텍스트 편집기에서 올바르게 렌더링하고 파이썬 스크립트로 충실하게 처리 할 수 ​​있을까요?

답변

0

먼저 Word 파일에 올바르게 나타나는 bidi 텍스트를 사용하지 마십시오. 다른 환경에서는 동일한 텍스트가 올바르게 표시되지 않을 수도 있습니다. Microsoft Word에는 유니 코드 호환 텍스트 편집기 (예 : gedit)가 해당 텍스트를 처리하는 방식 일 필요는없는 현재 버전과 레거시 버전에서 양방향 텍스트를 처리하는 자체 방식이 있습니다. Microsoft는 newer versionUnicode Bidirectional Algorithm으로 구현하므로 결국 해결 될 수도 있고 해결되지 않을 수도 있습니다.

둘째, 복사 된 텍스트가 제대로 표시되지 않는 이유는 텍스트 환경 (여기 포함)이 bidi 텍스트를 올바르게 지원하지 않으며 오른쪽에서 왼쪽으로 텍스트를 표시 할 수도 없습니다. 샘플 문자열을 유니 코드 호환 텍스트 편집기에 복사하고 방향을 오른쪽으로 변경했는데 이것이 올바른 결과입니다.

Sample right-to-left text in a Unicode-compliant editor

이제 조금 즉흥적으로 할 필요가 파이썬을 사용하여 해당 Word 파일에서 텍스트를 처리 할 수 ​​있습니다. 텍스트 내용을 유니 코드 텍스트로 내 보낸 다음 Python으로 처리 할 수 ​​있습니다. 또는 Word 내에서 텍스트 내용을 처리하려는 경우 Python의 OLE 구성 요소 스크립팅에서 만족스러운 결과를 얻을 수 있습니다. 관련 질문 here을 참조하십시오.