3

我们有一些由客户准备的 Ms Word .docx 格式的内容。这些文档可能有方程式、图像等。

我们希望将这些内容传输到我们的网络环境中。

首先,我打算使用 TinyMCE “paste from word”插件和 fmath 编辑器插件。没用...

然后我决定放上载按钮来传输 ms word 内容并将生成的 web 内容显示到 TinyMCE 编辑器中。实际上就像写一个新插件一样。

我正在使用 Microsoft.Office.Interop.Word.Document 类的“SaveAs”方法。但我有以下问题:

1) 我无法更改文档资源文件夹路径。它生成与生成的 html 文件相同的“..._files”文件夹。我想将所有资源转移到服务器上的适当位置。

2)我不能将图像源路径更改为绝对路径。

3)太多垃圾样式,生成的html文件上的代码。

我可能完全以错误的方式来达到这个目的。所以我决定先听听你的建议,然后再继续这个方向。我愿意提出任何建议。

问候,

我正在添加此代码的草稿版本:



    var fileName = Request["docfilename"];
    var file = Request.Files[0];
    var buffer = new byte[file.ContentLength];
    file.InputStream.Read(buffer, 0, file.ContentLength);
    var root = HttpContext.Current.Server.MapPath(@"~/saveddata/_temp/");
    var path = Path.Combine(root, fileName);

    using (var fs = new FileStream(path, FileMode.Create))
    {
        using (var br = new BinaryWriter(fs))
        {
            br.Write(buffer);
        }
    }


    Microsoft.Office.Interop.Word.ApplicationClass oWord = new ApplicationClass();
    object missing = System.Reflection.Missing.Value;
    object isVisible = false;
    word.Document oDoc;
    object filename = path;
    object saveFile;
    oDoc = oWord.Documents.Open(ref filename, ref missing, ref missing, ref missing,
     ref missing, ref missing, ref missing, ref missing,
     ref missing,ref missing, ref missing, ref missing, ref missing, ref missing,
                        ref missing, ref missing);
    oDoc.Activate();

    object path2 = Path.Combine(root, "test.html");
    object fileFormat = word.WdSaveFormat.wdFormatFilteredHTML;
    oDoc.SaveAs(ref path2, ref fileFormat, missing, missing, missing, missing, missing, missing,
                missing, missing, missing, missing, missing, missing, missing, missing);

    oDoc.Close(ref missing, ref missing, ref missing);
    oWord.Application.Quit(ref missing, ref missing, ref missing);

4

1 回答 1

1

这是一个微妙的问题。我面临同样的问题,因为 doc 有很多样式标签。如果您注意到,请尝试在 facebook 上分享一个 url(其中包含 word doc 内容),然后在 url 的描述/摘要中,使用不需要的标签 :) 所以我猜这个问题在那里也一直存在。我建议,通过信息检索的基础知识并尝试智能地剥离样式标签。您将需要使用正则表达式编写大部分剥离代码

于 2013-03-19T08:38:51.183 回答