使用DocX开源Xceed:Documents.Net&Words.net.dll从Word文件加载图像多个和数据,并保留样式

问题描述

到目前为止,我正在尝试将Word文档加载到Webbrowser Control中。 &我能够分别显示内容和图像,但我希望将Word文档原样显示在使用C#的Web浏览器控件中 有人可以帮忙吗? 另外,我不能使用Microsoft.Office.Interop.Word 要添加更多内容,我能够分别提取图像,但由于文档中包含多个图像,因此无法将其放回Web浏览器控件中

我的代码如下:

if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{

    textBox1.Text = dialog.SafeFileName;

    using (var stream = new MemoryStream())
    {
        var xd = DocX.Load(dialog.FileName);

        //storing docx.document to xdcoument object
        XDocument xDoc = xd.Xml.Document;

        stream.Position = 0;

        Xceed.Document.NET.Document documentXml = xd;
        Stream s = new FileStream("../defaultss.xslt",FileMode.Open,FileAccess.Read);

        //XmlReader xr = XmlReader.Create(s);

        System.Xml.Xsl.xslcompiledtransform xct = new System.Xml.Xsl.xslcompiledtransform();
        xct.Load("../defaultss.xslt");

        StringWriter resultWriter = new StringWriter();

        //xct.Transform("../defaultss.xslt",null,resultWriter);
        using (XmlWriter xw = XmlWriter.Create(resultWriter,xct.OutputSettings))
        {
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.ConformanceLevel = ConformanceLevel.Fragment;
            using (XmlReader xr = XmlReader.Create(new StringReader(xd.Xml.ToString()),settings))
            {
                //getting the content of body element of xml tag
                while (xr.Read())
                {
                    if (xr.NodeType == XmlNodeType.Element && xr.LocalName == "body")
                    {
                        xw.WriteNode(xr,false);
                        break;
                    }
                }
                xct.Transform(xr,xw);
            }
        }

        xd.Save();

        string result = resultWriter.ToString();

        //load the content from htmlstring data
        webbrowser1.DocumentText = result;
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)