В приведенном ниже фрагменте кода демонстрируется, как циклически проходить все фигуры в документе Word, проверять, является ли это текстовое поле (элемент чертежа), начинающийся с нужной строки, а затем искать в текстовом поле термин, который должен быть выделен жирным шрифтом, и выделять его жирным шрифтом. .
Можно проверить Shape.Type
, чтобы определить, является ли это текстовым полем. Shape.Type
- это Enum Office (поскольку объект Shape
является общим для многих приложений Office). Итак if (shapeType == Office.MsoShapeType.msoTextBox)
Чтобы выделить текст и отформатировать его, чаще всего лучше всего подходит функциональность Word Range.Find
. Позволяет найти и заменить форматирование, а также строковые значения. (Совет: при запуске проекта, который требует такого рода вещей, часто бывает полезно проверить в диалоговом окне (Ctrl + H) в пользовательском интерфейсе Word, чтобы определить правильную комбинацию параметров.)
Чтобы понять, для чего предназначены все параметры Find.Execute
, обратитесь к справке или посмотрите на Intellisense (или их комбинацию).
В этом примере важно отметить, что для форматирования целевого текста не указывается Replacement.Text
.
foreach (Microsoft.Office.Interop.Word.Shape shape in doc.Shapes)
{
Office.MsoShapeType shapeType = shape.Type;
// checks whether the shape is a Text Box
if (shapeType == Office.MsoShapeType.msoTextBox)
{
// checks whether the shape is the one I want to modify
// side note: there are more shapes in the file, so I specify it
if (shapeText.StartsWith("Concedemos"))
{
string textToBold = "M&A";
Word.Range rngTextBox = shape.TextFrame.TextRange;
Word.Find rngFind = rngTextBox.Find;
rngFind.Text = textToBold;
rngFind.Replacement.Font.Bold = -1;
object oFindStop = Word.WdFindWrap.wdFindStop;
object oTrue = true;
object oReplaceAll = Word.WdReplace.wdReplaceAll;
object missing = System.Type.Missing;
rngFind.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref oFindStop, ref oTrue, ref missing, ref oReplaceAll,
ref missing, ref missing, ref missing, ref missing);
}
}