私は、数多くのコンテンツコントロールを含む単語ドキュメントを用意しています。これらはカスタムXML部分にマップされます。その場でドキュメントをビルドするために、カスタムXML部分を上書きするだけです。カスタムXMLパーツを使用してWordコンテンツコントロールを非表示にする
問題は、特定のアイテムを定義しなければ、ドキュメントのスペースがドキュメント内に表示され、その下にあるアイテムを押し下げて残りのドキュメントと矛盾して見えるということです。ここで
は、私のコードの基本的な例です:
var path = HttpContext.Current.Server.MapPath("~/Classes/Word/LawyerBio.docx");
using (WordprocessingDocument myDoc = WordprocessingDocument.Open(path, true))
{
//create new XML string
//these values will populate the template word doc
string newXML = "<root>";
if (!String.IsNullOrEmpty(_lawyer["Recognition"]))
{
newXML += "<recognition>";
newXML += _text.Field("Recognition Title");
newXML += "</recognition>";
}
if (!String.IsNullOrEmpty(_lawyer["Board Memberships"]))
{
newXML += "<boards>";
newXML += _text.Field("Board Memberships Title");
newXML += "</boards>";
}
newXML += "</root>";
MainDocumentPart mainPart = myDoc.MainDocumentPart;
//delete old xml part
mainPart.DeleteParts<CustomXmlPart>(mainPart.CustomXmlParts);
//add new xml part
CustomXmlPart customXml = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml);
using(StreamWriter ts = new StreamWriter(customXml.GetStream()))
{
ts.Write(newXML);
}
myDoc.Close();
}
は、これらのコンテンツコントロールが実際に/非表示を折りたたむようにする方法はありますか?
私はこれも今実行中です。これを達成するための最良の方法についての洞察はありますか? 2013年には、コンテンツコントロールの繰り返しで機能させることを望んでいますが、直感的ではなく、ハッキングのように感じます。 – JoeBrockhaus
@JoeBrockhausそれは数年経ちましたが、私はコンテンツコントロールにそれが見えないようにするオプションがあるのを覚えているようです。私はこれがコードではなくWordのレイアウトを通して設定されたと思います。うまくいけば、それは正しい道を導きます。 –