Исходный текст содержит простой HTML. Как я могу просто отформатировать текст в MS Word? - PullRequest
0 голосов
/ 01 мая 2009

Я унаследовал проект, который хранит базовое форматирование HTML (т. Е. - < b >, < i > теги) в базе данных и записывает его в документ Word. Это мое первое задание по автоматизации Word, так что будьте осторожны!

В настоящее время существует сложная функция, которая запускается после завершения документа, которая ищет и заменяет эти теги. Однако, поскольку он запускается после завершения документа, любая логика, определенная во время выполнения (т. Е. Вставка разрыва страницы здесь), может привести к катастрофическим результатам. Например, если у меня большой кусок текста, выделенного жирным шрифтом, этот жирный текст занимает больше места и переносит разрыв строки на следующую страницу, в результате чего получается в основном пустая страница.

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

Существует ли простой способ записи текста в формате HTML в документ Word без необходимости искать и заменять каждый поддерживаемый тег? Я бы подумал, что в Word было бы что-то, что могло бы справиться с этим автоматически. Спасибо заранее, если вы можете указать мне правильное направление.

Ответы [ 2 ]

2 голосов
/ 01 мая 2009

Попробуйте это:

Сначала сохраните HTML-код, который вы собираетесь вставить, в виде обычного файла ".htm".

Затем используйте объект Range и его метод InsertFile , чтобы вставить файл «.htm» в любую заданную позицию:

Dim r As Range

Set r = ActiveDocument.Range
r.InsertFile FileName:=TempFilePath, Link:=False, ConfirmConversions:=False

Word должен быть достаточно умным, чтобы обрабатывать HTML и выполнять все преобразования формата самостоятельно. Используйте CSS для управления более тонкими частями форматирования.

Удалите файл .htm, когда закончите.

0 голосов
/ 01 мая 2009

возможно, вы можете вызвать встроенный IE (IWebBrowser2) для размещения текста, затем скопировать его в буфер обмена как richtext и, наконец, вставить в Word как RichText (отформатированный).

...