c# html rtf

c# - Convierte Rtf a HTML



(8)

ACTUALIZADO:

Llegué a casa y probé el siguiente código y no funciona. Para cualquiera que se pregunte, el portapapeles no solo convierte mágicamente cosas como esperaba. Más bien, permite que una aplicación "cargue" un objeto de datos con una variedad de formatos de pegado, y luego, luego lo pega (lo que en mi metáfora sería la "descarga"), el programa que está pegando especifica su formato preferido. Personalmente terminé usando este código , que se había recomendado anteriormente, y fue enormemente fácil de usar y muy efectivo. Después de haber importado el código (en VStudio, Proyecto -> Agregar archivos existentes), simplemente vaya html a rtf de la siguiente manera:

return HtmlToRtfConverter.ConvertHtmlToRtf(myRtfString);

o la dirección opuesta:

return RtfToHtmlConverter.ConvertHtmlToRtf(myHtmlString);

(abajo está mi respuesta incorrecta anterior, en caso de que alguien esté interesado en la cronología de esta respuesta jaja)

La mayoría, si no todas, las respuestas anteriores brindan soluciones integrales, a menudo basadas en la biblioteca, para el problema en cuestión. Estoy lejos de mi computadora y, por lo tanto, no puedo probar la idea, pero una alternativa, un método barato y vagamente pirateado sería el siguiente.

private string HTMLFromRtf(string rtfString) { Clipboard.SetData(DataFormats.Rtf, rtfString); return Clipboard.GetData(DataFormats.Html); }

Una vez más, no estoy totalmente seguro de si esto funcionaría, pero solo meterme con algunos html en mi iPhone sospecho que lo haría. La documentación está here . Explicación / documentos más detallados RE el conseguir y la configuración de modelos de datos en el portapapeles se puede encontrar here .

(Sí, soy plenamente consciente de que estoy aquí años más tarde, pero asumo que esta pregunta es una que algunas personas todavía quieren que respondan).

Tenemos un informe de cristal que debemos enviar como un correo electrónico, pero el HTML generado a partir del informe de cristal es bastante feo y causa problemas con algunos clientes de correo electrónico. Quería exportarlo como texto enriquecido y convertirlo a HTML si es posible.

¿Alguna sugerencia?


Creo que puede cargarlo en un objeto de documento de Word mediante .NET office programmability support y Visual Studio tools for office.

Y luego use la instancia del documento para volver a guardar como un documento HTML.

No estoy seguro de cómo, pero creo que es posible totalmente en .NET sin ninguna biblioteca de terceros.



No conozco ninguna biblioteca para hacer esto (pero estoy seguro de que hay muchas que sí pueden) pero si ya puede crear HTML a partir del informe de Crystal, ¿por qué no usar XSLT para limpiar el marcado?


Puede intentar subirlo a google docs y descargarlo como HTML.


Si no te importa ensuciarte las manos, no es tan difícil escribir un convertidor de RTF a HTML.

Escribir un convertidor de RTF-> HTML de propósito general sería algo complicado porque necesitaría lidiar con cientos de verbos RTF. Sin embargo, en su caso solo está tratando con los verbos utilizados específicamente por Crystal Reports. Apuesto a que la codificación RTF estándar generada por Crystal no varía mucho de un informe a otro.

Escribí un convertidor de RTF a HTML en C ++, pero solo trata con formatos básicos como fuentes, alineaciones de párrafos, etc. Mi traductor básicamente elimina cualquier formato especializado que no esté preparado para tratar. Tomó alrededor de 400 líneas de C ++. Básicamente escanea el texto para etiquetas RTF y las reemplaza con etiquetas HTML equivalentes. Las etiquetas RTF que no están en mi lista simplemente se eliminan. Una función de expresión regular es realmente útil cuando se escribe un convertidor de este tipo.


También hay una muestra en la galería de MSDN Code Samples llamada Converting entre RTF y HTML que le permite convertir entre HTML, RTF y XAML.


Verificaría esta herramienta en CodeProject RTFConverter. Este tipo ofrece un gran desglose de cómo funciona el programa junto con los detalles de la conversión.

Escribir su propio convertidor RTF