Convertitore da HTML a RTF

di Daniele Bochicchio, in Classic ASP, Coding, Report,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi