javascript vbscript convertito da RTF in HTML
-
05-07-2019 - |
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
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.
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.