Converter Rtf para HTML [fechado]
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.
Http://blogs.msdn.com/jmstall/archive/2006/10/20/rtf_5F00_html.aspx
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.
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.
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).
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?
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.Você pode tentar carregá-lo para o google docs, e baixá-lo como HTML.