0

現在、3 つのドキュメントを 1 つの新しいドキュメントにマージするプロジェクトに取り組んでいます。それらを追加するために、ドキュメントを含める AltChunk メソッドを作成しています。

私の質問は、3 つの間のスタイリングに矛盾があるということです。つまり、下に赤いテキストがあるテーブルを保存するということです。ただし、3 つがマージされて新しいドキュメントになると、そのドキュメントのスタイルはプレーンな黒のテキストにリセットされます。3 つすべてのスタイルをこの新しいドキュメントにマージする方法はありますか?

以下は、ドキュメントをマージする方法のコードです (これまでのところすべて問題ないため、上部は示していません)。

using (WordprocessingDocument package = WordprocessingDocument.Create(fileName, DocumentFormat.OpenXml.WordprocessingDocumentType.Document))
{
    ...
    #region Append Non-Standard Section Template
    var nssAltChunkId = "AltChunkIdNSS" + this.AopPlanId.Value.ToString();
    var nssChunk = package.MainDocumentPart.AddAlternativeFormatImportPart(
                     AlternativeFormatImportPartType.WordprocessingML, nssAltChunkId);
    using (var fileStream = new MemoryStream(nssBuffer))
    {
        nssChunk.FeedData(fileStream);
    }

    var nssAltChunk = new DocumentFormat.OpenXml.Wordprocessing.AltChunk();
    nssAltChunk.Id = nssAltChunkId;
    package.MainDocumentPart.Document.Body.InsertAfter(nssAltChunk, package.MainDocumentPart.Document.Body.Elements<Paragraph>().Last());
    #endregion

    ... //Next 2 documents are the same way

    package.MainDocumentPart.Document.Save();
}

どんな助けでも大歓迎です。ありがとう。

編集: PowerTools から DocumentBuilder を使用するように変更しましたが、それでもスタイルのマージの問題は解決しません。任意の提案をいただければ幸いです。

4

1 に答える 1

2

Word が書式設定 (「スタイル」) で行うことは、書式設定の競合を処理する方法に関する Word 固有の書式設定とアルゴリズムの起源によって異なります。あなたが提供する情報に基づいて、これらのドキュメントの状況を正確に知ることは困難ですが、いくつかの経験則があります:

  1. Word は直接書式設定を保持します (太字や斜体をクリックするなど)。

  2. 着信ドキュメントに、ターゲット ドキュメントに既に存在するスタイルと同じ名前のスタイルがある場合、着信スタイルはターゲット ドキュメント内のスタイルの定義を引き継ぎます。これは、Word がアーカイブ ツールではなくドキュメント作成ツールとして考えられていたため、仕様によるものです。

(2)はあなたが直面している状況だと思います。スタイル定義を保持する唯一の方法は、最初にスタイルに別の名前を付けて、別のスタイル セットを定義し、それらを既存のスタイルの代わりにテキストに適用することです。たとえば、2 つのドキュメントの法線スタイルが異なるように定義されている場合、スタイル定義を新しいスタイル (Normal1 など) にコピーしてから、ドキュメントを構成するさまざまなパーツで法線に使用される ID をNormal1 に使用される ID。

私が試したことのないことは、最後のステップが必要ないように、ID と名前を Normal に変更することです。ただし、Word が文書内にあると想定しているため、「古い」ID と名前を使用して標準スタイルを作成する必要がある場合があります。(ただし、ドキュメントが無効であると見なさずに Word が自動的に作成する可能性があるため、なしで試すこともできます)。

于 2015-10-23T18:06:41.083 に答える