Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
116 / 2 / 0
Регистрация: 07.04.2015
Сообщений: 18

Нахождение слов курсивом и обрамления его в тэги <em>

07.04.2015, 11:36. Показов 3505. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем форумчанам...
Мне нужно подготовить небольшое подобие Типографа прямо в ворде.
Споткнулся на шаге, когда нужно соответствующий элемент обрамлять в тэги.

К примеру:
  1. Находим в тексте слова выделенные курсивом и обрамляем их в тэги <em>СловоКурсив</em>
  2. Находим в тексте Заголовок 1 и обрамляем его в тэги <h1>СловоКурсив</h1>
  3. Находим в тексте Заголовок 2 и обрамляем его в тэги <h2>СловоКурсив</h2>
и т.д.

Нашёл в Интернете макрос такого типа:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    'Обрамляем слова Курсив тэгами <em>
    Selection.Find.ClearFormatting
    Selection.Find.Font.Italic = True
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
 
    'Если в выделение попал пробел или знак абзаца в конце, то мы его исключаем
    If Right(Selection.Text, 1) = Chr(32) Or _
     Right(Selection.Text, 1) = Chr(13) Then
    Selection.MoveLeft wdCharacter, 1, wdExtend
    End If
    
    'Обрамляем слово тэгами
    With Selection
      .InsertBefore "<em>"
      .InsertAfter "</em>"
    End With
Он хорошо работает, но увы только с одним словом.

Если я правильно понял, нам нужно:
  1. Подсчитать кол-во слов в тексте
  2. Создать коллекцию
  3. Использовать цикл For Each в соответствие кол-ву слов в коллекции

Помогите пожалуйста написать код...
Я больше дизайнер и чуть-чуть верстальщик, но увы, никак не программист VBA
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2015, 11:36
Ответы с готовыми решениями:

Распознавание слов выделенных курсивом
На отборочном туре олимпиады по информатике 2012 г была такая задача ЗАДАЧА Е. Иностранные слова При изучении иностранного языка новые...

Форматирование определенных слов курсивом
Всем привет. Подскажите пожалуйста, как будет выглядеть код макроса, который будет находить все слова из определенного списка(около 200...

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

24
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
07.04.2015, 13:01
Поняли вы правильно, но излишне много. Можно просто все курсивы обрамить тегами, через Ctrl+h (умеючи).

Но если уж рыть в семействах документа Word, то есть готовое: ActiveDocument.Words.

Пример подсчёта слов* в строках 9—17: Частотность слов в word.

Цитата Сообщение от tvorex Посмотреть сообщение
Visual Basic
1
'Если в выделение попал пробел...
В предпечатных (да и мусорных) текстах не редки неразрывные пробелы, мягкие переносы, а тем более жёсткие (сочетание дефиса и перевода строки):
Частотность слов в word, а в коллекции слов* это всё отдельные слова!
_______________________
* слова и члены коллекции (семейства) ActiveDocument.Words — далеко не одно и то же, так что лучше не связываться...

Добавлено через 6 минут
ЗЫ: прокрутите тему вниз, там много похожего (форум подобрал).
0
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
07.04.2015, 13:14
Здравствуйте, tvorex,
Вы, возможно, не знаете, что Word отлично умеет верстать веб-страницы без всякого программирования.

Прилагаю рисунок, на котором показано, как это делается.

С уважением,
Аксима
Миниатюры
Нахождение слов курсивом и обрамления его в тэги <em>  
1
116 / 2 / 0
Регистрация: 07.04.2015
Сообщений: 18
07.04.2015, 14:05  [ТС]
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Можно просто все курсивы обрамить тегами, через Ctrl+h (умеючи).
Было бы здорово, но Ctrl+H, как я вижу - это замена текста, а не добавление...

Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Пример подсчёта слов* в строках 9—17: Частотность слов в word.
Т.е. на выходе мы получим .Item(t), где t = это кол-во слов?

А как нам указать поиск исключительно параграфов или Заголовков 1,2,3 уровней?
Visual Basic
1
For Each oWord In ActiveDocument.Paragraphs
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
прокрутите тему вниз, там много похожего (форум подобрал).
Да смотрел уже... Там всё во круг да около, а именно, то что нужно мне. Нету

Я почему и просил помочь готовый код написать... Потому что сам не могу додумать
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
07.04.2015, 23:47
Можете. В конце концов, работа есть работа. Тем более
Цитата Сообщение от tvorex Посмотреть сообщение
чуть-чуть верстальщик
Растите над собой.

Да и вообще:
Цитата Сообщение от Аксима Посмотреть сообщение
Word отлично умеет верстать веб-страницы без всякого программирования.
Зачем же чесать левой рукой правое ухо…
0
116 / 2 / 0
Регистрация: 07.04.2015
Сообщений: 18
08.04.2015, 13:29  [ТС]
Пробовал сохранить из Ворда прям в html.
Можете тогда подскажите, как убрать class и style из тэгов?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<p class=MsoNormal style='text-align:justify;text-justify:inter-ideograph'><span
lang=KZ style='font-size:16.0pt;font-family:"Times New Roman","serif"'>Қозғалмай
шалқамнан жатқаныма бір жетіден асып кетті. Көзімді ашып
жан-жағыма қараймын. Аурухана бөлмесінің іші
мұнтаздай тап-таза. Қабырғасы да, төсек орным да,
терезеге ұстаған пердесі де — бәрі де аппақ.
Аққудың үлпе жүнінде көзге
жұмсақ. Осы айнадай таза ақ бөлменің
сүреңіне сән бергісі келгендей ашық терезеден
көгере бастаған жас қайыңның
бұтақтары қарап тұр. Жасыл жапырақтары желмен
ойнап әлсін-әлсін сылдыр қағады. Кенет бабына келтіре
салған бұлбұл әні сұлу үнге ділгер жанымды
кәнігі етеді...</span></p>
Добавлено через 9 минут
А если в тексте есть курсив или жирный текст, так вообще кошмар получается...
В общем, этот метод мне не подходит
Спасибо, за совет!
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
08.04.2015, 19:04
Было бы здорово, но Ctrl+H, как я вижу - это замена текста, а не добавление...
А почему бы не заменить текст, на этот же текст, но обрамлённый нужными тэгами ...
1
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
09.04.2015, 05:27
Жаль-жаль, что метод Аксима не прижился в массовом производстве.

Цитата Сообщение от tvorex Посмотреть сообщение
Жасыл жапыраТ›тары желмен ойнап

Сразу отмечу, что составные слова (типа N-мерный, экс-битл и т. п.) пока не окучил (а надо?).

Я тоже, tvorex, немного верстальщик; по идее от pashulka я сделал вам кнопочку (а вторую — по вашей идее). Тестируйте (приложил через пост).

Предварительно можно (но не нужно) почистить текст макросом Поиск-Замена.
0
116 / 2 / 0
Регистрация: 07.04.2015
Сообщений: 18
09.04.2015, 05:30  [ТС]
А почему бы не заменить текст, на этот же текст, но обрамлённый нужными тэгами ...
Потому что мы не знаем, какой и сколько этого текста.

Сразу отмечу, что составные слова (типа N-мерный, экс-битл и т. п.) пока не окучил (а надо?).
Конечно! Ведь к ним относятся такие предлоги как: "из-под", "из-за", "когда-нибудь" и также сложные слова типа: "красно-розовый", "светло-волнистый" и т.п.

Мой вариант отлично с этим справляется
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    'Обрамляем слова Курсив тэгами <em>
    Selection.Find.ClearFormatting
    Selection.Find.Font.Italic = True
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
 
    'Если в выделение попал пробел или знак абзаца в конце, то мы его исключаем
    If Right(Selection.Text, 1) = Chr(32) Or _
     Right(Selection.Text, 1) = Chr(13) Then
    Selection.MoveLeft wdCharacter, 1, wdExtend
    End If
    
    'Обрамляем слово тэгами
    With Selection
      .InsertBefore "<em>"
      .InsertAfter "</em>"
    End With
Кстати, вот что я подумал. Может нам использовать замену не по всему тексту, а вперед
Visual Basic
1
.Wrap = wdFindAsk
Так мы начать поиск с начала документа, и как только документ закончился, завершить цикл

Добавлено через 2 минуты
Предварительно можно (но не нужно) почистить текст макросом Поиск-Замена
Оо.. как удобно! А я мучался, как бы комментарии подписать к заменам
У меня вот такой варинат
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
   'Убираем мелкие дефекты в тексте
    Dim TextName As Variant
    Dim ReplaceName As Variant
    TextName = Array( _
                    "^s", _
                    " - ", _
                    " ^= ", _
                    ",^+", _
                    ".^+", _
                    "^+", _
                    "?^+", _
                    "!^+", _
                    "  ")
    ReplaceName = Array( _
                    " ", _
                    " ^+ ", _
                    " ^+ ", _
                    ", ^+", _
                    ". ^+", _
                    "^+ ", _
                    "? ^+", _
                    "! ^+", _
                    " ")
    
    For iMinorDefects = LBound(TextName) To UBound(TextName)
    Selection.HomeKey Unit:=wdStory
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = TextName(iMinorDefects)
        .Replacement.Text = ReplaceName(iMinorDefects)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Next iMinorDefects
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
09.04.2015, 05:32
Цитата Сообщение от tvorex Посмотреть сообщение
MinorDefects
это сильно!

Итак, в результате суточной (надеюсь, не бесполезной) борьбы за тэги возникло это:
Вложения
Тип файла: doc проболела в больничке весну почти всю.doc (64.0 Кб, 18 просмотров)
2
116 / 2 / 0
Регистрация: 07.04.2015
Сообщений: 18
09.04.2015, 10:14  [ТС]
Итак, в результате суточной (надеюсь, не бесполезной) борьбы за тэги возникло это:
Это даже круче, чем я себе представлял!!!
С помощью этой кнопки, можно переключать текст "Типограф/Исходный текст"

Вот тут косяк наблюдается. Если у нас уже есть соответствующий тэг, его надо пропустить!
HTML5
1
которые присутствуют в <<em>em<\em>> заданном <em>слове<\em>
Добавлено через 4 часа 35 минут
И ещё надо объединять слова через пробел

Да, вариант через Selection.Find мне кажется намного лучше. Т.к. он одним действием всё меняет!
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
09.04.2015, 17:52
tvorex, я что-то накарябал, поддержав ваш творческий импульс, а вы уж объединяйте слова через пробел (я не знаю как) и модифицируйте коды.

Добавлено через 1 час 30 минут
Вот необточенная болванка кода.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub ВыделениеСловТегом_через_Find() 'обрамление слов тегами через Selection.Find
Const WhatTag = "em"    ' слово для тега
  
Selection.HomeKey wdStory ' курсор ставим на начало текста
 
    With Selection.Find
        .MatchWildcards = False ' подстановочные знаки (в диалоге по Ctrl-h) отключены
        .Format = True
        .Font.Italic = True     ' поиск только по курсивному тексту
    '    .Font.Bold = True       ' поиск только по жирному тексту
        .MatchWholeWord = True  ' ищем целиком слово (курсивное или/и ещё какое-то)
        .Replacement.Font.Italic = False 'заменяющий текст "раскурсивливаем"
        .Replacement.Font.Color = vbRed  'заменяющий текст делаем красным
    
        .Replacement.Text = "<" & WhatTag & ">" & "^&" & "<" & Chr(92) & WhatTag & ">"
        
        If .Execute("", Replace:=wdReplaceAll) Then
                MsgBox "Текст преобразован." & Chr(13) & Chr(13) & _
                "(Ok, Ctrl-z — отмена.)" & Chr(13) & Chr(13) & _
                "Снять весь формат: Ctrl-a, затем Ctrl-Spacebar."
            Else
                MsgBox "Нужных слов не найдено."
        End If
    End With
End Sub
Вместо If…End If (для взятия в оборот слов типа кое-что и исключения em) придётся применить цикл типа While .Execute…Wend. Wend здесь может служить ориентиром для поиска по форуму.
0
116 / 2 / 0
Регистрация: 07.04.2015
Сообщений: 18
10.04.2015, 14:15  [ТС]
Я пока смирился с дефисами... Сделал вот такой код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    'Обрамляем слова Курсив тэгами <em> через Selection.Find
    Dim WhatTag As Variant
    WhatTag = Array("em") ' Перечень тэгов для обрамления
    
    For TagNumber = LBound(WhatTag) To UBound(WhatTag)
        
        Selection.HomeKey wdStory ' курсор ставим на начало текста
            With Selection.Find
                .MatchWildcards = False ' подстановочные знаки (в диалоге по Ctrl-h) отключены
                .Format = True
                .Font.Italic = True     ' поиск только по курсивному тексту
                .MatchWholeWord = True  ' ищем целиком слово (курсивное или/и ещ¸ какое-то)
            '   .Replacement.Font.Italic = False 'заменяющий текст "раскурсивливаем"
                .Replacement.Font.Color = vbRed  'заменяющий текст делаем красным
                .Replacement.Text = "<" & WhatTag(TagNumber) & ">" & "^&" & "<" & Chr(92) & WhatTag(TagNumber) & ">" ' обрамляем текст тэгами
                If .Execute("", Replace:=wdReplaceAll) Then
                    MsgBox "Текст преобразован." & Chr(13) & Chr(13) & _
                    "(Ok, Ctrl-z — отмена.)" & Chr(13) & Chr(13) & _
                    "Снять весь формат: Ctrl-a, затем Ctrl-Пробел."
                Else
                    MsgBox "Нужных слов не найдено."
                End If
            End With
            
        ' Убираем соседние тэги между словами
        Selection.HomeKey Unit:=wdStory
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "<" & Chr(92) & WhatTag(TagNumber) & ">" & " " & "<" & WhatTag(TagNumber) & ">"  'Ищем соседние тэги
            .Replacement.Text = " "     'меняем меняем соседние тэги на пробел
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    
    Next TagNumber
Он уже умеет соединять слова между которыми пробел. По такому же принципу можно соединить слова с запятой и дефисом...


Sasha_Smirnov, Я решил использовать массив с тэгами
Visual Basic
1
WhatTag = Array("em", "strong") ' Перечень тэгов для обрамления
, но у меня не получилось разделить их на стадии поиска
Visual Basic
1
2
        .Font.Italic = True     ' поиск только по курсивному тексту
    '    .Font.Bold = True       ' поиск только по жирному тексту
Sasha_Smirnov, Можешь подсказать, как оформить этот код. Или лучше не использовать массив, а каждый тэг сделать в отдельности?
Кстати, как искать параграфы и Заголовки 1,2,3 уровней
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
10.04.2015, 16:53
Цитата Сообщение от tvorex Посмотреть сообщение
  1. Находим в тексте Заголовок 1 и обрамляем его в тэги <h1>СловоКурсив</h1>
  2. Находим в тексте Заголовок 2 и обрамляем его в тэги <h2>СловоКурсив</h2>
За час рытья в справке нашёл пока лишь как показать заголовки уровня 1:
Visual Basic
1
2
ActiveDocument.ActiveWindow.View.Type = wdOutlineView
ActiveDocument.ActiveWindow.View.ShowHeading 1
Вот обнаружил, как вставить тег перед заголовком (2-м по счёту), а перед тегом — курсор.

Visual Basic
1
2
ActiveDocument.GoTo(what:=wdGoToHeading, count:=2) = "<h1>" ' добавка в заголовок
ActiveDocument.GoTo(what:=wdGoToHeading, count:=2).Select ' курсор перед <h1>

Вообще эти копания смешны, если DOC можно сохранить как HTML со всей его разметкой.
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
10.04.2015, 17:03
По поводу поиска заголовков, можно попробовать проделать следующее : CTRL+F - Формат - Стиль - Заголовок1 и записать эти действия макрорекордером.
1
 Аватар для KoGG
5645 / 1627 / 418
Регистрация: 23.12.2010
Сообщений: 2,448
Записей в блоге: 1
11.04.2015, 22:07
Вместе с заголовками.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Sub ВыделениеСловТегом_через_Find_3()
   'Обрамляем слова Курсивом, жирными, Заголовки тэгами <em>, <strong> через Selection.Find
    Const TagItalic = "em": Const TagBold = "strong"
    Dim k%, TagStart$, TagEnd$, UslNaydeno As Boolean
    Dim U, uItalic, uBold, StyleName    ' Все - As Variant
                  ' Номера стадий поиска
                  '  0     1      2      3     4      5
    uItalic = Array(True, False, False, False, True, False)
    uBold = Array(True, True, False, False, False, True)
    StyleName = Array("Заголовок 1", "Заголовок 2", "Заголовок 1", "Заголовок 2", "", "")
         U = Array(True, True, True, True, True, True)  ' Включение-выключений стадий c наборами условий поиска
    ' Чем более сложные сочетания условий курсив + жирный + "Заголовок 1", тем меньше номер стадии
    Application.ScreenUpdating = False
    For k = 0 To 5  ' Перебираем все сочетания условий
        Selection.HomeKey wdStory ' курсор ставим на начало текста
        With Selection.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Format = True
            .MatchWildcards = False  ' подстановочные знаки (в диалоге по Ctrl-h) выключены
            .MatchWholeWord = False ' ищем текст из многих слов,
            ' так как нерационально обрамлять отдельные слова тэгами, а потом заменять соседние тэги на пробелы
            .Text = ""
            .Wrap = wdFindContinue
            If U(k) Then
                TagStart = "": TagEnd = ""
                ' Нестандарный случай - заголовок метим курсивов, даже если он не курсив
                If ((StyleName(k) Like "Заголовок *") And (k = 2 Or k = 3)) Then
                     TagStart = "<" & TagItalic & ">"
                     TagEnd = "<\" & TagItalic & ">"
                     .Replacement.Font.Italic = False 'заменяющий текст "раскурсивливаем"
                ElseIf uItalic(k) Then ' Для стандарнтых случаев
                    .Font.Italic = True ' поиск  по курсивному тексту
                    .Replacement.Font.Italic = False 'заменяющий текст "раскурсивливаем"
                    TagStart = "<" & TagItalic & ">"
                    TagEnd = "<\" & TagItalic & ">"
                End If
                If uBold(k) Then
                    .Font.Bold = True  ' поиск по жирному тексту
                    .Replacement.Font.Bold = False 'заменяющий текст "расжирняем"
                    TagStart = TagStart & "<" & TagBold & ">"
                    TagEnd = "<\" & TagBold & ">" & TagEnd
                End If
                If Trim$(StyleName(k)) <> "" Then
                    .Style = StyleName(k) ' поиск в стиле с k-тым именем
                End If
                .Replacement.Font.Color = vbRed  'заменяющий текст делаем красным
                .Replacement.Text = TagStart & "^&" & TagEnd        ' обрамляем текст тэгами
                If .Execute(Replace:=wdReplaceAll) Then UslNaydeno = True
                ' Перенос тэгов , попавших в чужие абзацы
                .ClearFormatting
                .Replacement.ClearFormatting
                .Format = False
                .Text = TagStart & "^p"
                .Replacement.Text = "^p" & TagStart
                .Execute Replace:=wdReplaceAll
                .Text = "^p" & TagEnd
                .Replacement.Text = TagEnd & "^p"
                .Execute Replace:=wdReplaceAll
            End If
        End With
    Next k
    If UslNaydeno Then
        MsgBox "Текст преобразован." & Chr(13) & Chr(13) & _
        "(Ok, Ctrl-z — отмена.)" & Chr(13) & Chr(13) & _
        "Снять весь формат: Ctrl-a, затем Ctrl-Пробел."
    Else:  MsgBox "Нужных слов не найдено."
    End If
End Sub
Пробовал сохранить из Ворда прям в html... как убрать class и style из тэгов?
- Сохранять документ как веб-страница с фильтром (Office 2007-2013).
0
116 / 2 / 0
Регистрация: 07.04.2015
Сообщений: 18
13.04.2015, 12:49  [ТС]
KoGG, Спасибо за участие!
В Вашем коде обнаружены следующие дефекты:
1) Заголовки 1,2,3 должны обрамляться в соответствующие тэги <h1>, <h2>, <h3>
2) Конструкции типа: Фото: Иван Ивоновича обрамляются с дефектом
HTML5
1
<strong><em>Фото:<\strong> Илья Филиппов<strong><\em><\strong>
3) Так же нужно обрамлять параграфы "Основной текст" тэгом <p>

Цитата Сообщение от KoGG Посмотреть сообщение
- Сохранять документ как веб-страница с фильтром (Office 2007-2013).
Тоже не годится. Добавлять не нужные нам тэги:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<h1><font size=5 color="#2e74b5" face="Calibri Light"><span style='font-size:
16.0pt;line-height:107%'>Пострадавший водитель бийского автобуса до прибытия
спецслужб тушил иномарку, ставшую виновником ДТП</span></font></h1>
 
<p class=MsoNormal><font size=2 face=Calibri><span style='font-size:11.0pt;
line-height:107%'>Авария произошла примерно в половине пятого вечера, в
воскресенье. По пути из поселка Молодежного в автобус ПАЗ, ехавший по своей
полосе, на большой скорости врезалась иномарка.</span></font></p>
 
<p class=MsoNormal><font size=2 face=Calibri><span style='font-size:11.0pt;
line-height:107%'>Почти все пассажиры автобуса получили травмы. Водитель
автобуса – настоящий герой, с открытым переломом руки выбил дверь и вывел
пассажиров, достал огнетушитель и начал тушить иномарку, водителя иномарки было
достать невозможно без помощи инструментов, рассказывает очевидец происшествия
Илья Филиппов. Позже приехали спецслужбы и вытащили водителя.</span></font></p>
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
13.04.2015, 13:22
tvorex, недостатки неизбежны при таком способе производства, устраняйте!

И вообще, если это новости для сайта, почему бы их сразу не набирать в html-формате?
0
116 / 2 / 0
Регистрация: 07.04.2015
Сообщений: 18
13.04.2015, 14:31  [ТС]
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
И вообще, если это новости для сайта, почему бы их сразу не набирать в html-формате?
Увы, это не новости. Я верстаю электронные книги. И мне нужна разметка типа:
HTML5
1
2
3
4
5
<body xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="ru">
  <div class="epub section-part" epub:type="bodymatter part">
    
    <h1 xml:lang="ru">Глава 16</h1>
<p xml:lang="ru">Сказитель &laquo;Книги судеб&raquo;:</p>
Пробовал создавать книги в редакторе Calibri, но он тоже делает множество мусора... И после него издатели не принимают работу. Говорят, там множество дефектов.

Сейчас всю эту работу делаю в ручную + Типограф Лебедева...
Увы, Лебедев не настроил выделение <em>, <strong>, и <h1> тэгов Потому я и хочу создать макрос для своих нужд...

Благодаря Вам Sasha_Smirnov, и KoGG, этот макрос уже готов на 80%
1
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
14.04.2015, 18:21
Разработчику в помощь: Как создать Закладку в Ворде начиная с цифры?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2015, 18:21
Помогаю со студенческими работами здесь

Как поменять выделение некоторых слов курсивом на жирное выделение
Здравствуйте. Есть вордовский документ состоящий из 1100 страниц.Подскажите пожалуйста как во всем документе заменить выделение курсивом...

Можно как-то сделать так, чтобы браузер, когда видит текст заключённый делал его курсивом?
Можно как-то сделать так, чтобы браузер, когда видит текст заключённый в кавычки делал его курсивом?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru