Je génère un document Word en remplaçant un texte de remplacement dans le document modèle par mes valeurs. Pour ce faire, j'utilise GemBox.Document, et plus précisément le code suivant Rechercher et remplacer ejemplo:
var document = DocumentModel.Load("input.docx");
var firstPlaceholder = document.Content.Find("%Text1%").First();
firstPlaceholder.LoadText("Value 1");
var secondPlaceholder = document.Content.Find("%Text2%").First();
firstPlaceholder.LoadText("Value 2");
document.Save("output.docx");
Cela fonctionne très bien.
Mais j'ai maintenant un scénario dans lequel les valeurs qui remplaceront les caractères de remplacement dépendent de leur emplacement, plus précisément, si le caractère de remplacement apparaît avant ou après un paragraphe spécifique du document.
J'ai essayé d'utiliser quelque chose comme ceci :
Paragraph separator = ...
string firstPlaceholderText = "%Text1%";
string separatorText = seperator.Content.ToString();
string wholeDocumentText = document.Content.ToString();
if (wholeDocumentText.IndexOf(firstPlaceholderText) < wholeDocumentText.IndexOf(separatorText))
{
// The placeholder is before the separator...
}
else
{
// The placeholder is after the separator...
}
Cependant, ce même separatorText
peut apparaître à plusieurs endroits dans le document. string.IndexOf()
n'est pas une solution viable pour moi.
Existe-t-il un autre moyen d'effectuer cette comparaison ou de déterminer l'emplacement d'un espace réservé par rapport à un autre élément du document ?