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

StackOverflow https://stackoverflow.com/questions/811917

Вопрос

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

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

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

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

Это было полезно?

Решение

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

Сначала сохраните 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 " файл, когда закончите.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top