将文本从HTML转换为MS Word

时间:2013-02-05 11:26:38

标签: javascript html ms-word

我正在尝试将HTML(从CK编辑器)转换为MS Word:

wordDoc = new ActiveXObject("Word.Application");

但结果会在Word文档中显示所有HTML标记(例如spanstrong)。

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

当您在寻找WORD解决方案时,PDF解决方案是否也能正常运行?如果是,请尝试http://www.fpdf.org。但是如果你绝对必须有WORD作为最终结果,那么这也行不通。除非您需要用户在文档上键入内容,否则PDF通常会更好,因为它们会阻止用户修改。

答案 2 :(得分:0)

根据您的问题,我了解您希望HTML与所有风格的Word(Css Apply)

我有这样的requirenmnet我已经实现了下面的代码它对我来说很有用。请检查以下代码可能对您有所帮助

这里我从GridView创建Word文件,我已经将Style应用于该grid.it在Word文件中创建与浏览器中显示相同的Grid。您只需要为您的工作更改样式(css)相关标签。

Protected Sub CreateHTMlToWord()
        Try

            Dim sHtml As New StringBuilder
            Dim htmlForm As New HtmlForm
            grdHTMLData.GridLines = GridLines.Both 'Grid View Fill with data

            Response.ClearContent()
            Response.AddHeader("content-disposition", "attachment; filename=estPage.doc")
            Response.ContentType = "application/vnd.doc"

            Dim str As New IO.StringWriter
            Dim htex As New HtmlTextWriter(str)
            htmlForm.Controls.Add(grdHTMLData)
            htmlForm.EnableViewState = False
            Me.Controls.Add(htmlForm)
            htmlForm.RenderControl(htex)

            sHtml.Append("<html>")
            sHtml.Append("<head>")
            sHtml.Append("<style type='text/css'>")
            sHtml.Append(".mGrid{width: 100%; background-color: #F8FCFE; margin: 5px 0 10px 0; border-collapse: collapse;}")
            sHtml.Append(".mGrid td{ padding: 2px; color: black;} .mGrid td a:link{ color: #000;}")
            sHtml.Append(".mGrid th{ padding: 4px 2px; color: #fff; background: #4A7298; font-size: 0.9em;}")
            sHtml.Append(".mGrid th a:link{ color: #fff; font-weight: bold;} .mGrid .alt{ background-color: #E1EEF7;}")
            sHtml.Append(".mGrid .pgr{ background: #E1EEF7;} .mGrid .pgr table{ margin: 5px 0;}")
            sHtml.Append(".mGrid .pgr td span{ border-width: 0; font-weight: bold; color: #666; line-height: 12px;}")
            sHtml.Append(".mGrid .pgr td a{ color: #666;} .mGrid .pgr td a:link{ color: #4A7298; padding: 0 5px; text-decoration: underline;}")
            sHtml.Append(".mGrid .pgr td a:active{ text-decoration: none; font-weight: bold;}")
            sHtml.Append(".mGrid .pgr td a:hover{ color: #fff; background-color: #4A7298; text-decoration: none;} .mGrid a:hover{ text-decoration: underline;}")
            sHtml.Append(".mGridHdr th{ text-align: left;}")
            sHtml.Append("</style>")
            sHtml.Append("</head>")
            sHtml.Append("<body>")
            sHtml.Append(str.ToString)
            sHtml.Append("</body>")
            sHtml.Append("</html>")

            Response.Write(sHtml.ToString)
            Response.Flush()
            Response.Close()

        Catch ex As Exception

        End Try
    End Sub

答案 3 :(得分:0)

Pandoc允许在html和word文档之间进行转换(在许多其他格式中)。 Pandoc是一个haskel库,但是所有平台都有捆绑安装程序。要转换文档,您需要使用此命令。

pandoc -o file.doc file.html

答案 4 :(得分:0)

我能想象的是跟随以下步骤:

  1. 将您的HTML翻译成OpenXML,
  2. 然后创建与word文档结构相对应的文件
  3. 压缩到docx。