Converter Rtf para HTML [fechado]

Temos um relatório cristalino que precisamos enviar como um e-mail, mas o HTML gerado a partir do relatório crystal é simplesmente feio e causa problemas com alguns clientes de E-mail. Eu queria exportá-lo como texto rico e convertê-lo para HTML, se for possível.

Alguma sugestão?

 41
Author: Aaron Smith, 2009-01-13

8 answers

Eu verificaria esta ferramenta no servidor RTF do CodeProject. Este cara dá uma grande quebra de como o programa funciona junto com detalhes da conversão.

A gravar o seu próprio conversor RTF

 29
Author: Richard R, 2009-03-12 13:41:32
O Mike Stall postou o código para um que ele escreveu Em c# Aqui:

Http://blogs.msdn.com/jmstall/archive/2006/10/20/rtf_5F00_html.aspx

 8
Author: rizzle, 2009-01-13 17:21:39

Existe também uma amostra na galeria de amostras de código MSDN chamada a converter entre RTF e HTML que lhe permite converter entre HTML, RTF e XAML.

 7
Author: Matthew Manela, 2011-04-28 18:32:34
Se não se importa de sujar as mãos, não é difícil escrever um conversor RTF para HTML.

Escrever um conversor RTF - >HTML de propósito geral seria um pouco complicado porque você precisaria lidar com centenas de verbos RTF. No entanto, no seu caso, só está a lidar com os verbos usados especificamente pelos relatórios da Crystal. Aposto que a codificação padrão de RTF gerada pela Crystal não varia muito de relatório para relatório.

Eu escrevi um RTF para HTML conversor em C++, mas só lida com formatação básica como fontes, alinhamentos de parágrafos, etc. O meu tradutor retira qualquer formatação especializada com a qual não esteja preparado para lidar. Levou cerca de 400 linhas de C++. Ele basicamente digitaliza o texto para tags RTF e substitui-os por tags HTML equivalentes. As etiquetas RTF que não estão na minha lista são simplesmente retiradas. Uma função regex é realmente útil ao escrever tal conversor.

 2
Author: Kluge, 2009-01-13 16:13:58

Actualizado:

Cheguei a casa e tentei o código abaixo e não funciona. Para quem quer saber, a prancheta não converte magicamente coisas como eu esperava. Em vez disso, ele permite que uma aplicação para tipo de " upload "um objeto de dados com uma variedade de formatos de pasta, e então você colar (que na minha metáfora seria o" download") o programa que está sendo colado em especifica o seu formato preferido. Eu pessoalmente acabei usando este código, que foi recomendado anteriormente, e foi extremamente fácil de usar e muito eficaz. Depois de ter importado o código (no VStudio, Project - > adicionar ficheiros existentes), basta ir html para rtf como este:
return HtmlToRtfConverter.ConvertHtmlToRtf(myRtfString);

Ou na direcção oposta:

return RtfToHtmlConverter.ConvertHtmlToRtf(myHtmlString);

(abaixo está a minha resposta incorrecta anterior, no caso de alguém estar interessado na cronologia desta resposta haha)

A maioria, se não todas, das respostas acima fornecem soluções abrangentes, muitas vezes baseadas em bibliotecas para o problema em questão. Estou. longe do meu computador e, portanto, não pode testar a idéia, mas uma alternativa, barato e vagamente hack-y método seria o seguinte.

private string HTMLFromRtf(string rtfString)
{
            Clipboard.SetData(DataFormats.Rtf, rtfString);
            return Clipboard.GetData(DataFormats.Html);         
}
Mais uma vez, Não tenho a certeza se isto funcionaria, mas só a brincar com algum html no meu iPhone, suspeito que funcionaria. A documentação está aqui . Mais explicações em profundidade / documentos RE a obtenção e configuração de modelos de dados na área de transferência podem ser encontradas aqui.

(sim, estou plenamente ciente que estou aqui anos depois, mas presumo que esta pergunta é uma que algumas pessoas ainda querem resposta).

 2
Author: Max von Hippel, 2015-07-15 18:13:57

Eu não estou ciente de quaisquer bibliotecas para fazer isso (mas tenho certeza que existem muitas que podem), mas se você já pode criar HTML a partir do relatório de cristal por que não usar XSLT para limpar a marcação?

 -1
Author: Andrew Hare, 2009-01-13 15:18:52
Eu acho que você pode carregá-lo em um objeto de documento Word usando Suporte de programabilidade de escritório.NET e ferramentas de estúdio Visual para escritório.

E depois usar a instância do documento para gravar novamente como um documento HTML.

Não sei como, mas acredito que seja possível em. Net sem uma biblioteca de terceiros.
 -1
Author: chakrit, 2009-01-13 15:23:36

Você pode tentar carregá-lo para o google docs, e baixá-lo como HTML.

 -3
Author: stiduck, 2009-01-13 15:26:15