Estoy intentando escribir código de búsqueda/reemplazo para documentos de Word utilizando Word Automation a través de Interop.Word (11.0). Todos mis documentos tienen varios campos (que no aparecen en Document.Fields) que están rodeados con corchetes, por ejemplo, <DATE>
debe reemplazarse por DateTime.Now.Format("MM/dd/yyyy")
. El buscar/reemplazar funciona bien. Sin embargo, parte del texto que se reemplaza está justificado a la derecha, y al reemplazarlo, el texto se ajusta a la siguiente línea. ¿Hay alguna manera de que pueda mantener la justificación cuando realizo el reemplazo? El código está a continuación:Usando Interop.Word, ¿hay alguna manera de hacer un reemplazo (usando Find.Execute) y mantener la justificación del texto original?
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.
Después de la aplicación renunció objeto de liberación de la memoria utilizando Marshal.ReleaseComObject (el objeto). – KFP