2011-06-20 45 views
1

Open XML SDKの使用私は、ワードドキュメント内のブックマークまたはテキスト文字列をプログラム的に探し出し、新しいコンテンツを挿入することに成功しました。私はOpenXmlPowerTools.SearchAndReplacerを使ってテキストの検索と置換を行い、このポストのブックマークの答えをReplace bookmark text in Word file using Open XML SDKOpenXMLを使用したWord 2010のテキストボックスの置換

と置き換えようとしているときに、これはすべて失敗します。

どちらのアプローチもテキストボックス内で動作しないのはなぜですか? Texboxを使用してコンテンツを置き換えようとしているWord文書がレイアウト用に用意されており、問題の内容を解決できません。

問題の原因は何ですか?おかげ

+0

Aのdocx文書を太字テキスト(のような1語と複数の実行が存在しない場合には、テキストボックス上で動作basicly XML文書であるあなたはおそらく言及アプローチを検索します。 TextBoxには、コードが無視するタグとはまったく異なるタグがあるかもしれませんが、TextBoxを持つドキュメントの基礎となるXMLをチェックし、そこにどのように保管されているかを確認します。 –

答えて

1

は、ここにそれで単語テストを持つ単純なテキストボックスのためのXMLれる:ブックマーク内のテキストを検索するときにテキストボックスが実際として保存されているので、あなたが構造を見ることができます

<w:pict xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> 
    <v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml"> 
    <v:stroke joinstyle="miter" /> 
    <v:path gradientshapeok="t" o:connecttype="rect" /> 
    </v:shapetype> 
    <v:shape id="_x0000_s1027" style="position:absolute;margin-left:0;margin-top:0;width:186.35pt;height:110.6pt;z-index:251660288;mso-width-percent:400;mso-height-percent:200;mso-position-horizontal:center;mso-width-percent:400;mso-height-percent:200;mso-width-relative:margin;mso-height-relative:margin" type="#_x0000_t202" xmlns:v="urn:schemas-microsoft-com:vml"> 
    <v:textbox style="mso-fit-shape-to-text:t"> 
     <w:txbxContent> 
     <w:p w:rsidR="00B558B5" w:rsidRDefault="00B558B5"> 
      <w:proofErr w:type="gramStart" /> 
      <w:r> 
      <w:t>test</w:t> 
      </w:r> 
      <w:proofErr w:type="gramEnd" /> 
     </w:p> 
     </w:txbxContent> 
    </v:textbox> 
    </v:shape> 
</w:pict> 

は、異なっています画像。この異なる構造を扱うように検索アルゴリズムを調整すると、テキストを見つけて置き換えることができるはずです。

2

私はこれをしなかった - それは

​​
関連する問題