Sto tentando di scrivere il codice di ricerca/sostituzione per i documenti di Word utilizzando l'automazione di Word tramite Interop.Word (11.0). Tutti i miei documenti hanno vari campi (che non vengono visualizzati in Document.Fields) circondati da parentesi, ad es., <DATE>
deve essere sostituito con DateTime.Now.Format("MM/dd/yyyy")
. La ricerca/sostituzione funziona correttamente. Tuttavia, parte del testo che viene sostituito è giustificato a destra e, al momento della sostituzione, il testo viene spostato sulla riga successiva. C'è un modo in cui posso mantenere la giustificazione quando eseguo la sostituzione? Il codice è qui sotto:Usando Interop.Word, c'è un modo per fare una sostituzione (usando Find.Execute) e mantenere la giustificazione del testo originale?
using Word = Microsoft.Office.Interop.Word;
Word.Application wordApp = null;
try
{
wordApp = new Word.Application {Visible = false};
//.... open the document ....
object unitsStory = Word.WdUnits.wdStory;
object moveType = Word.WdMovementType.wdMove;
wordApp.Selection.HomeKey(ref unitsStory, ref moveType);
wordApp.Selection.Find.ClearFormatting();
wordApp.Selection.Find.Replacement.ClearFormatting(); //tried removing this, no luck
object replaceTextWith = DateTime.Now.ToString("MM/dd/yyyy");
object textToReplace = "<DATE>";
object replaceAll = Word.WdReplace.wdReplaceAll;
object typeMissing = System.Reflection.Missing.Value;
wordApp.Selection.Find.Execute(ref textToReplace, ref typeMissing,
ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing,
ref typeMissing, ref typeMissing, ref typeMissing, ref typeMissing,
ref replaceTextWith, ref replaceAll, ref typeMissing, ref typeMissing,
ref typeMissing, ref typeMissing);
// ... save quit etc....
}
finally
{
//clean up wordApp
}
TIA.
Dopo l'applicazione uscire oggetto rilascio dalla memoria usando Marshal.ReleaseComObject (l'oggetto). – KFP