2012-07-05 2 views
0

conserve Pardonnez-moi, je suis perdu et désorienté!C# OpenXML - Comment puis-je définir une riche chaîne de texte dans un contrôle de contenu et le formatage

J'ai un document avec plusieurs contrôles de contenu de texte brut. Jusqu'à présent, je peux énumérer les SdtElements dans le document, trouver tous les SdtBlocks d'intérêt et remplacer le texte si nécessaire ok.

Ensuite cependant, j'ai un champ au format RichText que je peux récupérer à partir d'une base de données en tant que chaîne et maintenant besoin d'insérer cela dans le document. J'ai mis en place un contrôle de contenu RTF dans le document mais comment puis-je le définir/le remplacer par la chaîne de texte enrichi et conserver le formatage correct? Juste pour me rendre plus confus, quand j'ouvre le document avec le "Word 2007 Content Control Toolkit" il montre tous les contrôles de contenu comme prévu et identifie correctement celui en tant que type RTF. Cependant, quand j'ouvre le document à l'aide du « Open XML SDK 2.0 outil de productivité », il montre le contrôle de texte riche comme SdtBlock simple, simple qui apparaît complètement impossibles à distinguer des contrôles de contenu en texte clair et le code réfléchi semble identique?

Comment alors définir la chaîne RichText dans le document?

Répondre

0

Texte brut et des contrôles riches de contenu de texte se distinguent par une propriété dans les propriétés du contrôle du contenu (w: SDT/w: sdtPr).

Un contrôle de contenu de texte enrichi peut contenir des paragraphes et des tables WordML, ou du contenu en ligne, etc. selon son niveau (bloc, ligne, ligne de table, cellule de tableau).

Vous devez donc soit convertir le contenu de votre base de données en WordML approprié, soit inclure un altChunk dans le contrôle de contenu, et laisser Word le faire pour vous.

Questions connexes