2

Я хочу преобразовать таблицу в слайде Powerpoint в HTML. Я знаю, как поместить в таблицу теги, но не могу понять, как преобразовать форматированный текст внутри ячеек таблицы в HTML. Так, например, как я могу преобразовать «Это ячейка с жирным текстом» в «Это ячейка с <b> полужирным </b> текстом»?

Я должен быть в состоянии сделать это для жирного, выделенного курсивом и цветного текста (и, в идеале, размера шрифта и семейства шрифтов). На самом деле я не хочу изменять саму ячейку таблицы Powerpoint, а просто собираю html-строку, которую я сохраню в объекте json .

Я знаю, как сделать это в Word, установив Word.range и используя метод Find . Но я не смог повторить это в Powerpoint.

1 ответ1

1

Каждый TextRange имеет коллекцию Runs. Если весь текст в диапазоне одинаково отформатирован, в коллекции будет только один прогон.

Если шрифт / размер / цвет / жирность изменяется в середине потока, коллекция Runs будет увеличиваться.

Доступ к каждому прогону в коллекции дает вам TextRange, свойства шрифта которого вы можете проверить. Предположим, например, что у вас есть такой текст (все в одной форме)

Этот текст отформатирован одинаково. Этот текст включает в себя немного текста, выделенного жирным шрифтом .

Sub thing()

Dim oSh As Shape
Dim oRng As TextRange
Dim x As Long
Dim y As Long

' Assume that the shape with your text is selected
Set oSh = ActiveWindow.Selection.ShapeRange(1)

' You can look at the text in the shape as a whole,
' or paragraph by paragraph or line by line or character by character.
' Let's do it para by para

With oSh.TextFrame.TextRange
    For x = 1 To .Paragraphs.Count

        With .Paragraphs(x)
            Debug.Print "Paragraph: " & x
            For y = 1 To .Runs.Count
                Debug.Print vbTab & "Run: " & y
                Debug.Print .Runs(y).Font.Bold
            Next
        End With
    Next
End With

End Sub

Абзац: 1 Прогон: 1 0 Абзац: 2 Прогон: 1 0 Прогон: 2 -1 Прогон: 3 0

Первый абзац имеет 1 прогон только потому, что весь текст отформатирован одинаково. 0 = НЕ выделен жирным шрифтом.

Во втором абзаце есть 3 прогона (по одному на каждый символ, отформатированный иначе, чем предыдущий). NotBold, BOLD, NotBold

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .