2

私は、docx ファイルを処理する必要があるアプリケーションに取り組んでいます。docx ファイルは、zip ファイル内の xml/images/others ファイルに過ぎないことを知っています。

私のアプリケーションは次のようにする必要があります。

  1. docx ファイルをインポートし、その表現 (テキストだけでなく、スタイル、警察、フォントなどのプレゼンテーションに関連するものもすべて) をデータベースに保存します。

  2. Web ページ上の各文のテキストを変更する方法を提供します。

  3. スタイル/プレゼンテーションを維持しながら、新しいテキストを含む docx ファイルをエクスポートします。

複雑なのは、ネストされたタグをサポートする必要があることです。たとえば、文を含むタグには、単語を太字にするタグを含めることもできます。

データベースに関する要件はありません。それは何でもかまいません。

私の質問は、XML を解析する方法ではなく、データを処理して表現する方法と、要件を処理する方法に関するものです。

ありがとう !

4

1 に答える 1

2

質問は簡単ではありません。

ここに私が答えたいくつかの関連する質問があります: iOS で RTF 、 DOC 、または DOCX を作成する

それを読んだ後、実際の単語の例を次に示します。

<w:p w:rsidP="00CA7135" w:rsidR="00137C91" w:rsidRDefault="00137C91">
            <w:r>
                <w:t>Hello</w:t>
            </w:r>
            <w:r w:rsidR="008C194D">
                <w:t xml:space="preserve"/>
            </w:r>
            <w:r>
                <w:t>My name</w:t>
            </w:r>
        </w:p>
        <w:p w:rsidP="00CA7135" w:rsidR="008C194D" w:rsidRDefault="00137C91">
            <w:r>
                <w:t xml:space="preserve">is</w:t>
            </w:r>
            <w:r w:rsidR="008C194D" w:rsidRPr="00E92392">
                <w:rPr>
                    <w:b/>
                </w:rPr>
                <w:t xml:space="preserve">John Doe</w:t>
            </w:r>
            <w:proofErr w:type="spellStart"/>
            <w:r w:rsidR="008C194D" w:rsidRPr="00E92392">
                <w:rPr>
                    <w:b/>
                </w:rPr>
                <w:t/>
            </w:r>
            <w:proofErr w:type="spellEnd"/>
            <w:r w:rsidR="008C194D" w:rsidRPr="00E92392">
                <w:rPr>
                    <w:b/>
                </w:rPr>
                <w:t xml:space="preserve"/>
            </w:r>
            <w:r w:rsidR="008C194D">
                <w:t xml:space="preserve"/>
            </w:r>
            <w:r>
                <w:t>I want to</w:t>
            </w:r>
            <w:r w:rsidR="008C194D">
                <w:t xml:space="preserve"/>
            </w:r>
            <w:r>
                <w:t>show</w:t>
            </w:r>
            <w:r w:rsidR="00E92392">
                <w:t xml:space="preserve">how difficult it is</w:t>
            </w:r>
        </w:p>

ご覧のとおり、1 つの段落内のテキストは決して 1 つのストロークだけではありません。

質問への回答:

  1. データベースにdocxを保存する唯一の方法は、完全なXMLと画像(またはdocxをByteArrayとして)を保存することだと思います
  2. 1 つの段落のテキストを変更するには、すべてのタグを検索し<w:t>て、同じタグでグループ化し<w:p>ます。たとえば、'Hello' と 'My name' は同じ<w:p>です。次に、テキストが挿入された場所を知る方法を見つけて、右側にテキストを挿入します。<w:t>
  3. これは、XML と画像を一緒に圧縮するだけです
于 2013-06-05T09:48:20.100 に答える