1

Тема: Помогите разобраться с заменой в определенном шрифте.

Доброго времени суток.
Господа. Направьте на путь истинный.
Есть файл word, в нем писанина 3-мя шрифтами.
Есть ли возможность заменять символы только в определенном шрифте?.
Вопрос 2: возможно есть способ для работы через visual studio.
Шрифты
TMSIDOL.TTF - старый шрифт транслита.
Charter Indologique.otf - новый шрифт транслита.
внешняя ссылка - старый шрифт дэванагари.
внешняя ссылка - новый шрифт дэванагари.

И вопрос 3. Данные шрифты не отображаются в word2013

2

Re: Помогите разобраться с заменой в определенном шрифте.

На первый вопрос: можно.
Открываете окно Найти и заменить.
В обеих полях Найти и Заменить должно быть пусто.

Ставите курсор в поле Найти:
кнопка Больше - Формат - Шрифт.
Выбираете шрифт, который нужно заменить (старый шрифт).

Далее ставите курсор в поле Заменить:
кнопка Больше - Формат - Шрифт.
Выбираете шрифт, на который нужно заменить (новый шрифт).

Нажимаете кнопку Заменить все. При этом производится замена шрифта по всему тексту.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

3

Re: Помогите разобраться с заменой в определенном шрифте.

Спасибо, с этим разобрался, а есть ли знатоки, как тоже самое провернуть в С#?
Если использовать код вида.

using System;
using Word = Microsoft.Office.Interop.Word;
 
class Program
{
    static void Main(string[] args)
    {
        Word.Application app = new Word.Application();
        Object fileName = @"D:\тест.docx";
        Object missing = Type.Missing;
        app.Documents.Open(ref fileName);
        Word.Find find = app.Selection.Find;
        find.Text = "2";
        find.Replacement.Text = "два";
        Object wrap = Word.WdFindWrap.wdFindContinue;
        Object replace = Word.WdReplace.wdReplaceAll;
        find.Execute(FindText: Type.Missing,
            MatchCase: false,
            MatchWholeWord: false,
            MatchWildcards: false,
            MatchSoundsLike: missing,
            MatchAllWordForms: false,
            Forward: true,
            Wrap: wrap,
            Format: false,
            ReplaceWith: missing, Replace: replace);
        app.ActiveDocument.Save();
        app.ActiveDocument.Close();
        app.Quit();       
    }
}

4

Re: Помогите разобраться с заменой в определенном шрифте.

Точно так же, только задать шрифт в объекте find для искомого шрифта и в объекте replace для шрифта замены.

find.Font = "Имя шрифта"

И можно две строки

app.ActiveDocument.Save();
app.ActiveDocument.Close();

заменить одной

app.ActiveDocument.Close(SaveChanges: true);
Лучше день потерять — потом за пять минут долететь!

5

Re: Помогите разобраться с заменой в определенном шрифте.

Проблема в том, что если написать так:

            Word.Find find = app.Selection.Find;
            find.Text = "2";
            find.Font.Name = "Arial";
            find.Replacement.Text = "два";

оно просто поменяет все 2-ки в документе.
Обыдно.

Есть также посылки на Open XML SDK 2.0 for Microsoft Office но я там совсем null

6

Re: Помогите разобраться с заменой в определенном шрифте.

XML ни к чему. Он поменяет не все двойки, а только те, которые набраны Ариалом. А что требуется?

Лучше день потерять — потом за пять минут долететь!

7

Re: Помогите разобраться с заменой в определенном шрифте.

viter.alex пишет:

Он поменяет не все двойки, а только те, которые набраны Ариалом. А что требуется?

Если б он не менял все... я бы и не писал.

вот проект с вордом внутри. Он заменяет все, хотя по идее должен менять только с Ариалом. Проект создан в студии2012

Post's attachments

Test_font.rar 66.22 Кб, 2 скачиваний с 2013-02-19 

You don't have the permssions to download the attachments of this post.