0

odfpy を使用して、Open Document Presentation ファイルに添付されたメモをテキストに変換しようとしています。ファイルを開き、「メモ」オブジェクトのリストを作成し、そこから段落と思われるものを抽出することができました。エラーを引き起こす特殊文字 (ドイツ語のウムラウト öäü) を含むメモを印刷しようとするまで、何とか機能します。 :

UnicodeEncodeError: 'ascii' コーデックは位置 17-19 の文字をエンコードできません: 序数が範囲外です (128)

ここで、エンコーディングの問題に遭遇したのは私が最初ではないことがわかりました。喜んでテキストの再エンコーディングに取り掛かりたいと思います。私の問題は、音符を適切な文字列に変換する方法がわからないことです。これが私のコードです:

import sys
from odf.presentation import Notes
from odf.opendocument import load
from odf import text

doc=load(sys.argv[1])
slides=doc.presentation
notes=slides.getElementsByType(Notes)

for page in notes:
    pars = page.getElementsByType(text.P)
    for p in pars:
        print p

単純に要素を反復処理して印刷しようとするだけで、メモのテキストが魔法のように表示されることを期待しています。問題を説明するために、 https://spideroak.com/browse/share/enno_middelberg/public/publicにサンプル プレゼンテーション ファイルを置きました。

テキストを ODF 要素から文字列に変換する方法を教えてもらえますか?

どうもありがとう、

エンノ

4

1 に答える 1

2

str(p)pASCII 以外のテキストが含まれているため、失敗します。

使用するprint unicode(p)

于 2013-11-29T13:46:10.837 に答える