c# - 使用 C# ASP.NET 将 Word 文档内容传输到服务器端的 Web 环境

标签 c# asp.net html ms-word tinymce

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

我们想将这些内容转移到我们的网络环境中。

首先,我打算使用 TinyMCE“从 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);

最佳答案

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

关于c# - 使用 C# ASP.NET 将 Word 文档内容传输到服务器端的 Web 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991912/

相关文章:

c# - 为什么非托管内存可能占控制台应用程序使用的内存的 60% 以上?

c# - CoCreateInstance 异常。在静态库上使用 REGSVR32 进行类注册?

asp.net - 同一 IIS 上的经典 ASP 和 ASP.NET 站点

asp.net - 缩小失败。返回未缩小的内容

c# - 为什么 string.Replace ("X","Y") 仅在分配给新字符串时有效?

javascript - ASP.NET 服务器端异步页面更新

在 firefox 4 上垂直显示的 html 水平菜单

javascript - 通过文件输入从视频文件创建缩略图

javascript - 仅使用 Javascript 获取 CSS 未计算的属性值

c# - 获取正在运行的进程的维度