Continuiamo la trattazione di report basati sul formato RTF analizzando un semplice parser che a fronte di un semplice documento HTML well-formed genera un report RTF, mantenendo gli stili essenziali.
<% Function HTMLtoRTF(testo) intestazione = "{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1040\deflangfe1040" ' paragrafi testo = Replace(testo, "<p>", "{", 1, -1, 1) testo = Replace(testo, "</p>", " \par}", 1, -1, 1) ' a capo testo = Replace(testo, "<br>", "{\par}", 1, -1, 1) ' grassetto testo = Replace(testo, "<b>", "{\b ", 1, -1, 1) testo = Replace(testo, "</b>", "}", 1, -1, 1) ' corsivo testo = Replace(testo, "<i>", "{\i ", 1, -1, 1) testo = Replace(testo, "</i>", "}", 1, -1, 1) ' sottolineato testo = Replace(testo, "<u>", "{\ul ", 1, -1, 1) testo = Replace(testo, "</u>", "}", 1, -1, 1) ' <h1> - continuare con tutti gli h* testo = Replace(testo, "<h1>", "{\fs50 ", 1, -1, 1) testo = Replace(testo, "</h1>", "\par}", 1, -1, 1) HTMLtoRTF = intestazione & testo & "}" End function Response.Clear() Response.ContentType = "text/richtext" ' imposto il nome del file Response.AddHeader "Content-Disposition", "attachment;filename=report.rtf" Response.Write(HtmlToRTF("<h1>Intestazione</h1><P>Prova paragrafo.</P><p>Questo è <b>bold</b>, questo <i>italic</i>, questo <br><u>sottolineato</u>.</p>")) %>
A partire da questo esempio si possono implementare le relative conversioni per tutti i tag HTML.
Le specifiche RTF sono disponibili su:
http://msdn.microsoft.com/library/en-us/dnrtfspec/html/rtfspec.asp
Approfondimenti
#571 - Creare report RTF avanzati con dati estratti da database
https://www.aspitalia.com/liste/usag/script.aspx?ID=571
#329 - Creare report RTF
https://www.aspitalia.com/liste/usag/script.aspx?ID=329
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Nessuna risorsa collegata