1

Тема: Проблемы с размером нумерации списков

Здравствуйте, уважаемые коллеги!
Поздравляю вас всех с наступающим Новым годом. Доброго здоровья, счастья и успехов в новом году.

У меня возник интересный вопрос, которым я хотел бы с вами поделиться.
При распознавании текста программой ABBYYFineReader11Portable возникла следующая проблема: при изменении размера всего распознанного текста (с помощью выделения Ctrl+A) размер номеров в нумерованных списках и маркеров в маркированных списках остается без изменения (в нормальном случае размеры номеров и маркеров меняются вместе со всем текстом). Пример - в приложении.

Мне хотелось бы узнать ваше мнение: почему так происходит с чем связано сохранение размеров номеров и маркеров при изменении размеров всего текста?

Также: как установить размеры номеров и маркеров едиными с размерами текста?
Можно было бы легко изменить размер каждого из списков по отдельности, но проблема в том, что в тексте таких списков очень много.
Спасибо.

Post's attachments

Размер нумерации.docx 81.68 Кб, 7 скачиваний с 2011-12-29 

You don't have the permssions to download the attachments of this post.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

2

Re: Проблемы с размером нумерации списков

Да, помню было такое дело, еще аж со времен FR8. Если шрифт в формате списка задать явно (Size <> wdUndefined), то он меняться не будет. Точнее будет, только если выбрать маркер списка. Запамятовал, но избавится от размера шрифта кажется проблематично.

Макросы под заказ и готовый пакет - mtdmacro.ru

3

Re: Проблемы с размером нумерации списков

Вот код форматирующий шрифт списка всех вхождений абзацев Стиля выделенного абзаца:

For i = 1 To Selection.FormattedText.ListFormat.ListTemplate.ListLevels.Count
     Selection.FormattedText.ListFormat.ListTemplate.ListLevels(i).Font = Selection.Font
Next i

+ Alex_Gur

Автоматическое форматирование всех списков написать или сам додумаешь?

4

Re: Проблемы с размером нумерации списков

aap77 пишет:

Автоматическое форматирование всех списков написать или сам додумаешь?

Напиши, пожалуйста. Мне нужно, чтобы все нумерованные списки и маркеры были размером 36 пт.

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

5

Re: Проблемы с размером нумерации списков

Alex_Gur пишет:

Напиши, пожалуйста. Мне нужно, чтобы все нумерованные списки и маркеры были размером 36 пт.

Держи код пока такой:

Dim prg As Paragraph
    Dim inp As Byte, i As Byte
    inp = InputBox("Введите размер шрифта списков", ActiveDocument.Name, Selection.Font.Size) ' Поумолчанию размер шрифта выделения
    For Each prg In ActiveDocument.Paragraphs
        Select Case prg.Range.FormattedText.ListFormat.ListString
            Case Is <> ""
                With prg.Range.FormattedText.ListFormat.ListTemplate
                    For i = 1 To .ListLevels.Count
                        .ListLevels(i).Font.Size = inp
                    Next i
                End With
        End Select
    Next prg

6

Re: Проблемы с размером нумерации списков

aap77 пишет:

Вот код форматирующий шрифт списка всех вхождений абзацев Стиля выделенного абзаца:

For i = 1 To Selection.FormattedText.ListFormat.ListTemplate.ListLevels.Count
     Selection.FormattedText.ListFormat.ListTemplate.ListLevels(i).Font = Selection.Font
Next i

Спасибо, aap77 макрос для всего текста отлично работает.
Но, поскольку файл у меня здоровый, макрос где-то к середине файла подвисает.
Действительно, хорошо бы сделать обработку выделеных отрывков.
Однако приведенный здесь макрос дает ошибку Run-time error 91: Object variable or With block variable not set.
Посоветуй, пожалуйста, как это исправить?

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

7

Re: Проблемы с размером нумерации списков

На самом деле я использую этот макрос в следующем виде:

Sub Макрос1()
'
    For i = 1 To Selection.FormattedText.ListFormat.ListTemplate.ListLevels.Count
        Selection.FormattedText.ListFormat.ListTemplate.ListLevels(i).Font.Size = 36
    Next i

End Sub

При этом некоторый отрывок текста у меня выделен.

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

8

Re: Проблемы с размером нумерации списков

Заменил ActiveDocument.Paragraphs на Selection.Paragraphs, и все пошло! В итоге получилось так:

Sub Макрос()
'
' Макрос
'
    Dim prg As Paragraph
    Dim inp As Byte, i As Byte
    inp = 36 ' По умолчанию размер шрифта выделения
    For Each prg In Selection.Paragraphs
            Select Case prg.Range.FormattedText.ListFormat.ListString
            Case Is <> ""
                With prg.Range.FormattedText.ListFormat.ListTemplate
                    For i = 1 To .ListLevels.Count
                        .ListLevels(i).Font.Size = inp
                    Next i
                End With
        End Select
    Next prg
End Sub

Еще раз большое спасибо!

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

9

Re: Проблемы с размером нумерации списков

В связи с этим еще один вопрос: можно ли макросом преобразовать нумерованные и маркированные списки в обычный текст с номерами и маркерами?

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

10

Re: Проблемы с размером нумерации списков

Alex_Gur пишет:

В связи с этим еще один вопрос: можно ли макросом преобразовать нумерованные и маркированные списки в обычный текст с номерами и маркерами?

Selection.Range.ListFormat.ConvertNumbersToText

11

Re: Проблемы с размером нумерации списков

Alex_Gur пишет:

В связи с этим еще один вопрос: можно ли макросом преобразовать нумерованные и маркированные списки в обычный текст с номерами и маркерами?

Тут лучше не спешить а внимательнее разобраться с созданием стилей списков... При правильном создании списков нумераций можно творить чудеса.......

12

Re: Проблемы с размером нумерации списков

Спасибо большое, уважаемый aap77!

Предложенный вами макрос прекрасно сработал даже на большом файле.

aap77 пишет:

Тут лучше не спешить а внимательнее разобраться с созданием стилей списков... При правильном создании списков нумераций можно творить чудеса.......

Совершенно с вами согласен. Система стилей вообще (и стиле списков, в частности) - это огромное достижение последних версий Word.
К сожалению, в моем случае я не могу воспользоваться этим достижением, так как программа распознавания формирует эти стили некорректно (см. файл, приложенный к сообщению 1). Если вы предложите что-то, что поможет привести эти списки к корректному виду - это будет очень интересно.

Еже раз - с Новым годом! И всего самого наилучшего и успехов в новом году.

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