我正在尝试将 HTML(来自 CK 编辑器)转换为 MS Word:
wordDoc = new ActiveXObject("Word.Application");
但结果显示 Word 文档中的所有 HTML 标记(如span
, strong
)。
我怎么解决这个问题?
我正在尝试将 HTML(来自 CK 编辑器)转换为 MS Word:
wordDoc = new ActiveXObject("Word.Application");
但结果显示 Word 文档中的所有 HTML 标记(如span
, strong
)。
我怎么解决这个问题?
有一些完整的解决方案可以解决您的问题。试试这些:
Pandoc allows conversion between html and word documents (among many other formats). Pandoc is an haskel library but there are bundled installer for all platform. To convert your document you will need to use this command.
pandoc -o file.doc file.html
当您在寻找 WORD 解决方案时,PDF 解决方案也可以吗?如果是这样,请尝试http://www.fpdf.org。但是,如果您绝对必须将 WORD 作为最终结果,这又是行不通的。除非您需要用户在文档上键入,否则 PDF 通常会更好,因为它们可以防止用户修改。
根据您的问题,我了解您希望将 HTML 转换为具有所有样式的 Word(Css 应用)
我有这样的requirenmnet,我在下面的代码中实现了它对我来说完全有用。请检查下面的代码可能对您有帮助
在这里,我从 GridView 创建 Word 文件,并且我已将样式应用于该网格。它在 Word 文件中创建与在浏览器中显示的相同的网格。您只需要为您的工作更改与样式 (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
我能想象的就像以下步骤: