javascript vbscript конвертировать из RTF в HTML - PullRequest
2 голосов
/ 26 ноября 2009

Кто-нибудь знает какие-либо реализации vbscript / javascript конвертера RTF в HTML?

Я видел некоторые из них в VB / c #, но не могу найти ссылки на скриптовую версию. Прежде чем я начну писать один - кто-нибудь знает о существующем проекте с открытым исходным кодом, который занимается этим?

Большое спасибо,

1007 * Франко *

Ответы [ 2 ]

2 голосов
/ 27 ноября 2009

Фрэнк -

Вы не указали, на какую платформу вы нацеливаетесь. Однако тот факт, что вы упомянули VBScript, а также Javascript, говорит о том, что вы хотя бы используете компьютер на базе Windows. Если это так, и у вас есть доступ к версии Word, вы можете использовать скрипт, автоматизирующий преобразование, используя Word в качестве сервера вне процесса. Даже тогда вы не сказали, должно ли это быть сделано из сеанса Windows или через веб-сервер.

Если вы хотите сделать это из сеанса Windows, вы можете использовать следующий VBScript, запущенный на хосте сценариев 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

Если вы хотите использовать это с веб-сервера, все немного по-другому. Вы можете адаптировать VBScript для страницы ASP или преобразовать его в страницу ASP.NET. В любом случае вам придется заменить объекты WSH соответствующими внутренними объектами. Тем не менее, будьте осторожны: хотя можно использовать внепроцессный сервер из IIS, это, как правило, плохая идея, если только вы не знаете, что это будет сервер с очень малым объемом. Даже в этом случае тот факт, что Word потенциально использует элементы графического интерфейса, делает это потенциально опасным, поскольку вполне возможно, что Word может показывать диалог при некотором состоянии ошибки.

В этом случае может быть лучше отсоединить два процесса путем выделения из серверного сценария кода хоста сценариев Windows и вместо этого вернуть страницу, которая выполняется на стороне клиента после соответствующей задержки.

0 голосов
/ 27 ноября 2009

Насколько вам комфортно с PHP? Этот класс, кажется, делает свое дело, поэтому вы можете использовать его как есть, или конвертировать в Javascript, или даже использовать в качестве руководства.

http://pastebin.ca/1688799

...