2009-11-26 6 views
2

누구든지 HTML 변환기에 대한 RTF의 모든 vbscript/javascript 구현을 알고 있습니까?javascript vbscript rtf에서 html로 변환

VB/C#에서 일부를 보았지만 스크립팅 된 버전에 대한 참조를 찾을 수 없습니다. 필자가 쓰기 시작하기 전에 - 누구든지이 문제를 다루는 기존의 오픈 소스 프로젝트를 알고 있습니까?

많은 감사,

Franko

답변

0

PHP와 함께 사용하면 어떻게 편안? 이 클래스는 트릭을하는 것처럼 보이므로 그대로 사용하거나 자바 스크립트로 변환하거나 가이드 라인으로 사용할 수도 있습니다.

http://pastebin.ca/1688799

+0

감사합니다. 시작하기에 완벽한 장소, 많은 감사를드립니다! – frank

+3

만료되지 않는 링크를 게시 할 수 있습니까? – rafalry

+3

-1 링크가 작동하지 않습니다. 이것이 사람들이 설명없이 링크를 게시 할 때 나는 그것을 싫어하는 이유입니다. –

2

프랭크 -

당신은 당신이 목표로하는 플랫폼을 지정하지 않았습니다. 그러나 VBScript와 Javascript에 대해 언급 한 사실은 최소한 Windows 기반 컴퓨터를 사용하고 있다는 것을 의미합니다. 그렇다면 Word 버전에 액세스 할 수 있으므로 Word를 프로세스 외부 서버로 사용하여 변환을 자동화하는 스크립트를 사용할 수 있습니다. 그럼에도 불구하고, 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 

당신이 원하는 경우 당신이 Windows 세션에서이 작업을 수행하고자한다면

, 당신은 Windows 스크립트 호스트에 의해 운영되는 다음의 VBScript를 사용할 수 있습니다 웹 서버에서 이것을 사용하려면, 상황이 조금 다릅니다. VBScript를 ASP 페이지에 적용하거나 ASP.NET 페이지로 변환 할 수 있습니다. 어쨌든 WSH 객체를 적절한 내부 객체로 교체해야합니다. 그러나 IIS의 Out-of Process 서버를 사용하는 것이 가능하지만 매우 낮은 볼륨 서버가 될 것이라는 사실을 알지 못하면 일반적으로 나쁜 생각입니다. 그래도 Word에서 잠재적으로 GUI 요소를 사용한다는 사실은 잠재적으로 위험합니다. Word에서 일부 오류 조건에서 대화를 표시 할 수 있기 때문입니다.

이 경우 서버 스크립트에서 Windows 스크립팅 호스트 코드로 껍질을 벗겨 두 프로세스를 연결 해제하고 대신 적절한 지연 후 클라이언트 측 풀링을 수행하는 페이지를 반환하는 것이 좋습니다.

+0

안녕하세요. 놀랍도록 철저하고 유용한 답변입니다! 내가 스크립트에서이 작업을 수행해야한다고 지정 했어야했는데 응답이 스매싱되었습니다! – frank

+0

"그냥 스크립트에"= 외부 객체에 의존하지 않음 – frank