Pergunta

Eu herdei um projeto que armazena básica formatação HTML (ou seja - <b>, etiquetas <i>) em um banco de dados e escreve-o para um documento do Word. Este é o meu primeiro trabalho de automação do Word, assim que seja gentil!

Atualmente, existe uma função complicada que é executado após o documento está completo que procura e substitui essas tags. No entanto, como este é executado depois que o documento for concluído, qualquer lógica que é determinada em tempo de execução (ou seja - página de inserção pausa aqui) pode levar a resultados desastrosos. Por exemplo, se eu tenho um grande pedaço de texto em negrito, este texto em negrito ocupa mais espaço e empurra a linha de quebrar para a próxima página, resultando em uma página na maior parte em branco.

Eu acredito que a correção para isso é para formatar o texto como ele vem do banco de dados de modo a lógica de posicionamento será correta. Eu não quero chamar o procedimento complicado várias vezes, pois é demorado e os nossos usuários finais precisam este documento o mais rápido possível.

Existe uma maneira fácil de escrever HTML formatado texto para um documento do Word, sem necessidade de localizar e substituir todos os tag suportados? Gostaria de pensar que haveria algo dentro do Word que poderia lidar com isso automaticamente. Agradecemos antecipadamente se você pode me apontar na direção certa.

Foi útil?

Solução

Tente isto:

Primeiro, salve o código HTML que você está prestes a ser inserido como um arquivo comum ".htm".

Em seguida, use o objeto Range e é método InsertFile para inserção o arquivo ".htm" em qualquer posição:

Dim r As Range

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

Word deve ser inteligente o suficiente para lidar com o HTML e fazer tudo da conversão de formato, por si própria. Use CSS para controlar as partes mais finas da formatação.

Excluir o arquivo ".htm" quando terminar.

Outras dicas

talvez você pode invocar uma IE incorporado (IWebBrowser2) para o layout do texto, em seguida, copiar para área de transferência como richtext, e, finalmente, colar com a Palavra como RichText (formatado).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top