Domanda

Qualcuno sa di eventuali implementazioni vbscript / javascript di un convertitore da RTF a HTML?

Ne ho visti alcuni in VB / c #, ma non riesco a trovare alcun riferimento a una versione con script. Prima di iniziare a scriverne uno - qualcuno conosce un progetto open source esistente che si occupa di questo?

Mille grazie,

Franko

È stato utile?

Soluzione

Quanto sei a tuo agio con PHP? Questa classe sembra fare il trucco, quindi potresti usarla così com'è, oppure convertirla in Javascript, o persino usarla come linea guida.

http://pastebin.ca/1688799

Altri suggerimenti

Frank -

Non hai specificato quale piattaforma stai prendendo di mira. Tuttavia, il fatto che tu abbia menzionato VBScript e Javascript suggerisce che stai almeno utilizzando un computer basato su Windows. In tal caso, e hai accesso a una versione di Word, puoi utilizzare uno script per automatizzare una conversione, utilizzando Word come server fuori processo. Anche allora, non hai davvero detto se questo doveva essere fatto da una sessione di Windows o tramite un server Web.

Se si desidera farlo da una sessione di Windows, è possibile utilizzare il seguente VBScript, eseguito dall'host di script di Windows:

[Rtf2Html.vbs]

Option Explicit

Private Sub ConvertToHtml(documentFileName)
Const wdFormatHTML = 8
Dim fso
Dim wordApplication
Dim newDocument
Dim htmlFileName

    On Error Resume Next

    Set fso = WScript.CreateObject("Scripting.FileSystemObject")

    documentFileName = fso.GetAbsolutePathName(documentFileName)

    If Not fso.FileExists(documentFileName) Then
        WScript.Echo "The file '" & documentFileName & "' does not exist."
        WScript.Quit
    End If

    Set wordApplication = WScript.CreateObject("Word.Application")

    If Err.Number <> 0 Then
        Select Case Err.Number
        Case &H80020009
            WScript.Echo "Word not installed properly."
        Case Else
            ShowDefaultErrorMsg
        End Select
        wordApplication.Quit
        WScript.Quit
    End If

    Set newDocument = wordApplication.Documents.Open(documentFileName, False)

    If Err.Number <> 0 Then
        Select Case Err.Number
        Case Else
            ShowDefaultErrorMsg
        End Select
        wordApplication.Quit
        WScript.Quit
    End If

    ' Construct a file name which is the same as the original file, but with a different extension.
    htmlFileName = Left(documentFileName, InStrRev(documentFileName, ".")) & "htm"

    newDocument.SaveAs htmlFileName, wdFormatHTML

    newDocument.Close

    wordApplication.Quit

End Sub

Private Sub Main
Dim arguments

    Set arguments = WScript.Arguments

    If arguments.Count = 0 Then
        WScript.Echo "Missing file argument."
    Else
        ConvertToHtml arguments(0)
    End If

End Sub
bad 
Private Sub ShowDefaultErrorMsg
    WScript.Echo "Error #" & CStr(Err.Number) & vbNewLine & vbNewLine & Err.Description
End Sub

Main

Se vuoi usarlo da un server web, le cose sono leggermente diverse. È possibile adattare VBScript per una pagina ASP o convertirlo in una pagina ASP.NET. In ogni caso, dovrai sostituire gli oggetti WSH con gli oggetti interni appropriati. Tuttavia, attenzione: sebbene sia possibile utilizzare un server fuori processo da IIS, è generalmente una cattiva idea, a meno che non si sappia che si tratterà di un server di volume estremamente basso. Anche allora, il fatto che Word utilizzi potenzialmente elementi della GUI rende questo potenzialmente pericoloso, perché è possibile che Word mostri un dialogo in una condizione di errore.

In questo caso, potrebbe essere meglio disconnettere i due processi sborsando dallo script del server al codice host di script di Windows e restituendo invece una pagina che esegue un pull sul lato client dopo un ritardo appropriato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top