Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储.doc MS Word文件中的数学公式&;恢复它们_C#_Math_Ms Word_.doc - Fatal编程技术网

C# 存储.doc MS Word文件中的数学公式&;恢复它们

C# 存储.doc MS Word文件中的数学公式&;恢复它们,c#,math,ms-word,.doc,C#,Math,Ms Word,.doc,我正在处理包含数学公式和图像的Microsoft Word文件。 我需要获取这些InlineShapes对象,并按原样存储它们,然后在需要时恢复它们 我知道如何从文件中获取InlineShape对象,问题是如何存储它们。将它们保存为图像不是一个选项 使用系统; using System; using System.Drawing; using System.IO; using System.Threading; using Page = System.Web.UI.Page; using Mic

我正在处理包含数学公式和图像的Microsoft Word文件。 我需要获取这些
InlineShapes
对象,并按原样存储它们,然后在需要时恢复它们

我知道如何从文件中获取
InlineShape
对象,问题是如何存储它们。将它们保存为图像不是一个选项

使用系统;
using System;
using System.Drawing;
using System.IO;
using System.Threading;
using Page = System.Web.UI.Page;
using Microsoft.Office.Interop.Word;
using Microsoft.VisualBasic.Devices;
public partial class ReadIMG : System.Web.UI.Page
{   
    private Application m_word;
    private int m_i;
    protected void Page_Load(object sender, EventArgs e)
    {
        object missing = Type.Missing;
        object FileName = Server.MapPath("~/LectureOrig/Word.docx");
        object readOnly = true;
        m_word = new Application();
        m_word.Documents.Open(ref FileName,
            ref missing, ref readOnly, 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);
        try
        {
            for (int i = 1; i <= m_word.ActiveDocument.InlineShapes.Count; i++)
            {
                m_i = i;
               // CopyFromClipboardShape();
                Thread thread = new Thread(CopyFromClipbordInlineShape);
                thread.SetApartmentState(ApartmentState.STA);
                thread.Start();
                thread.Join();
            }
        }
        finally
        {
            object save = false;
            m_word.Quit(ref save, ref missing, ref missing);
            m_word = null;
        }
    }
    protected void CopyFromClipbordInlineShape()
    {   
        InlineShape inlineShape = m_word.ActiveDocument.InlineShapes[m_i];
        inlineShape.Select();
        m_word.Selection.Copy();
        Computer computer = new Computer();
        //Image img = computer.Clipboard.GetImage();
        if (computer.Clipboard.GetDataObject() != null)
        {
            System.Windows.Forms.IDataObject data = computer.Clipboard.GetDataObject();
            if (data.GetDataPresent(System.Windows.Forms.DataFormats.Bitmap))
            {
                Image image = (Image)data.GetData(System.Windows.Forms.DataFormats.Bitmap, true);                
                image.Save(Server.MapPath("~/ImagesGet/image.gif"), System.Drawing.Imaging.ImageFormat.Gif);
                image.Save(Server.MapPath("~/ImagesGet/image.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);

            }
            else
            {
                LabelMessage.Text="The Data In Clipboard is not as image format";
            }
        }
        else
        {
            LabelMessage.Text="The Clipboard was empty";
        }
    }
使用系统图; 使用System.IO; 使用系统线程; 使用Page=System.Web.UI.Page; 使用Microsoft.Office.Interop.Word; 使用Microsoft.VisualBasic.Devices; 公共部分类ReadIMG:System.Web.UI.Page { 私人应用软件; 私人国际博物馆; 受保护的无效页面加载(对象发送方、事件参数e) { 对象缺失=类型。缺失; 对象文件名=Server.MapPath(“~/讲师装备/Word.docx”); 对象只读=真; m_word=新应用程序(); m_word.Documents.Open(参考文件名, 缺少ref,ref只读,缺少ref,缺少ref, 缺少参考,缺少参考,缺少参考,缺少参考, 缺少参考,缺少参考,缺少参考,缺少参考, 参考缺失,参考缺失,参考缺失); 尝试 { 对于(inti=1;i
使用系统;
使用系统图;
使用System.IO;
使用系统线程;
使用Page=System.Web.UI.Page;
使用Microsoft.Office.Interop.Word;
使用Microsoft.VisualBasic.Devices;
公共部分类ReadIMG:System.Web.UI.Page
{   
私人应用软件;
私人国际博物馆;
受保护的无效页面加载(对象发送方、事件参数e)
{
对象缺失=类型。缺失;
对象文件名=Server.MapPath(“~/讲师装备/Word.docx”);
对象只读=真;
m_word=新应用程序();
m_word.Documents.Open(参考文件名,
缺少ref,ref只读,缺少ref,缺少ref,
缺少参考,缺少参考,缺少参考,缺少参考,
缺少参考,缺少参考,缺少参考,缺少参考,
参考缺失,参考缺失,参考缺失);
尝试
{

对于(int i=1;我想把它们存储在资源文件或数据库中。?你能展示一下你目前正在使用的一些相关代码吗?这样会更容易理解你的问题。你能把inlineshape对象存储在内存中吗?@DJKRAZE,如果可能的话,我想把它们存储在数据库中。我添加了一个不同的解决方案请看下面的示例。您是否想过将它们存储在资源文件或数据库中。?请您展示一些目前正在使用的相关代码。这样会更容易理解您的问题。您能将inlineshape对象存储在内存中吗?@DJKRAZE,如果可能的话,我想将它们存储在数据库中。我添加了一个不同的解决方案请参见下面的示例,我认为将内联形状保存为图像不是一个选项?@jJack you right这不是一个选项。@DJKRAZE感谢您的代码,但我可以处理将内联形状存储为位图的问题,我需要以某种方式将它们存储为图像。我认为将内联形状保存为图像不是一个选项?@jJack you right这不是一个选项。@DJKRAZE谢谢s代表代码,但我可以处理将inlineshapes存储为位图,并且我需要以某种方式将它们存储为原样。