C# Word里面直接插入图片对象,不用图片路径~

时间:2021-07-05 18:15:53
图片类型: System.Drawing.Bitmap image

Microsoft.Office.Interop.Word.Application app = null; 
 Microsoft.Office.Interop.Word.Document doc = null;

图片是我生成的 已经可以再网页显示了。 
有没有不需要先保存成一个图片文件,再用路径去插入的。

有没有直接插入的Image对象的。

8 个解决方案

#1


该回复于2014-06-01 13:49:47被管理员删除

#2


随便来个人  给分结贴

#3


该回复于2014-07-01 22:53:58被版主删除

#4


最简单的是借助剪贴板。

#5


参考:  How to insert barcode images into a Microsoft Word document using C# or VB.NET and Barcode Professional for .NET
先把图片复制到剪贴板,在粘贴进Word

//Copy the image into Clipboard
Clipboard.SetDataObject(Image);
//Paste the image
range.Paste();

#6


Word文档插入图片
     private Word.Application G_wa;//定义Word应用程序字段
        private object G_missing = //定义missing字段并赋值
            System.Reflection.Missing.Value;
        private object G_str_path;//定义文件保存路径字段
        private OpenFileDialog G_OpenFileDialog;//定义打开文件对话框字段
        private FolderBrowserDialog G_FolderBrowserDialog;//定义文件夹浏览对话框字段

        private void btn_Select_Click(object sender, EventArgs e)
        {
            G_FolderBrowserDialog =//创建浏览文件夹对象
              new FolderBrowserDialog();
            DialogResult P_DialogResult = //浏览文件夹
                G_FolderBrowserDialog.ShowDialog();
            if (P_DialogResult == DialogResult.OK)//确认已经选择文件夹
            {
                btn_New.Enabled = true;//启用新建按钮
                txt_path.Text = //显示选择路径
                    G_FolderBrowserDialog.SelectedPath;
            }
        }

        private void btn_Image_Click(object sender, EventArgs e)
        {
            G_OpenFileDialog =//创建浏览文件夹对象
                 new OpenFileDialog();
            DialogResult P_DialogResult = //浏览文件夹
                G_OpenFileDialog.ShowDialog();
            if (P_DialogResult == DialogResult.OK)//确认已经选择文件夹
            {
                txt_ImagePath.Text =//显示选择路径
                    G_OpenFileDialog.FileName;
                btn_Select.Enabled = true;//启用浏览文档按钮
                this.Width = 553;//设置窗体宽度
                pbox_Image.Image = //显示图片
                    Image.FromFile(G_OpenFileDialog.FileName);
            }
        }

        private void btn_New_Click(object sender, EventArgs e)
        {
            btn_New.Enabled = false;//停用新建按钮
            ThreadPool.QueueUserWorkItem(//使用线程池
                (P_temp) =>//使用lambda表达式
                {
                    G_wa = new Word.Application();//创建Word应用程序对象
                    Word.Document P_wd = G_wa.Documents.Add(//建立新文档
                        ref G_missing, ref G_missing, ref G_missing, ref G_missing);
                    Word.Range P_Range = P_wd.Paragraphs[1].Range;//得到段落范围
                    object P_Ranges = P_Range;//创建ojbect对象
                    P_wd.InlineShapes.AddPicture(//向文档中插入图片
                        G_OpenFileDialog.FileName, ref G_missing, ref G_missing, ref P_Ranges);
                    G_str_path = string.Format(//计算文件保存路径
                        @"{0}\{1}", G_FolderBrowserDialog.SelectedPath,
                        DateTime.Now.ToString("yyyy年M月d日h时s分m秒fff毫秒") + ".doc");
                    P_wd.SaveAs(//保存Word文件
                        ref G_str_path,
                        ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                        ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                        ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                        ref G_missing, ref G_missing, ref G_missing);
                    ((Word._Application)G_wa.Application).Quit(//退出应用程序
                        ref G_missing, ref G_missing, ref G_missing);
                    this.Invoke(//开始执行窗体线程
                        (MethodInvoker)(() =>//使用lambda表达式
                        {
                            btn_Display.Enabled = true;//启用显示按钮
                            MessageBox.Show("成功创建Word文档!", "提示!");
                        }));
                });
        }

#7


lz自己解决了,不错。。

#8


顶楼主!学习了!

#1


该回复于2014-06-01 13:49:47被管理员删除

#2


随便来个人  给分结贴

#3


该回复于2014-07-01 22:53:58被版主删除

#4


最简单的是借助剪贴板。

#5


参考:  How to insert barcode images into a Microsoft Word document using C# or VB.NET and Barcode Professional for .NET
先把图片复制到剪贴板,在粘贴进Word

//Copy the image into Clipboard
Clipboard.SetDataObject(Image);
//Paste the image
range.Paste();

#6


Word文档插入图片
     private Word.Application G_wa;//定义Word应用程序字段
        private object G_missing = //定义missing字段并赋值
            System.Reflection.Missing.Value;
        private object G_str_path;//定义文件保存路径字段
        private OpenFileDialog G_OpenFileDialog;//定义打开文件对话框字段
        private FolderBrowserDialog G_FolderBrowserDialog;//定义文件夹浏览对话框字段

        private void btn_Select_Click(object sender, EventArgs e)
        {
            G_FolderBrowserDialog =//创建浏览文件夹对象
              new FolderBrowserDialog();
            DialogResult P_DialogResult = //浏览文件夹
                G_FolderBrowserDialog.ShowDialog();
            if (P_DialogResult == DialogResult.OK)//确认已经选择文件夹
            {
                btn_New.Enabled = true;//启用新建按钮
                txt_path.Text = //显示选择路径
                    G_FolderBrowserDialog.SelectedPath;
            }
        }

        private void btn_Image_Click(object sender, EventArgs e)
        {
            G_OpenFileDialog =//创建浏览文件夹对象
                 new OpenFileDialog();
            DialogResult P_DialogResult = //浏览文件夹
                G_OpenFileDialog.ShowDialog();
            if (P_DialogResult == DialogResult.OK)//确认已经选择文件夹
            {
                txt_ImagePath.Text =//显示选择路径
                    G_OpenFileDialog.FileName;
                btn_Select.Enabled = true;//启用浏览文档按钮
                this.Width = 553;//设置窗体宽度
                pbox_Image.Image = //显示图片
                    Image.FromFile(G_OpenFileDialog.FileName);
            }
        }

        private void btn_New_Click(object sender, EventArgs e)
        {
            btn_New.Enabled = false;//停用新建按钮
            ThreadPool.QueueUserWorkItem(//使用线程池
                (P_temp) =>//使用lambda表达式
                {
                    G_wa = new Word.Application();//创建Word应用程序对象
                    Word.Document P_wd = G_wa.Documents.Add(//建立新文档
                        ref G_missing, ref G_missing, ref G_missing, ref G_missing);
                    Word.Range P_Range = P_wd.Paragraphs[1].Range;//得到段落范围
                    object P_Ranges = P_Range;//创建ojbect对象
                    P_wd.InlineShapes.AddPicture(//向文档中插入图片
                        G_OpenFileDialog.FileName, ref G_missing, ref G_missing, ref P_Ranges);
                    G_str_path = string.Format(//计算文件保存路径
                        @"{0}\{1}", G_FolderBrowserDialog.SelectedPath,
                        DateTime.Now.ToString("yyyy年M月d日h时s分m秒fff毫秒") + ".doc");
                    P_wd.SaveAs(//保存Word文件
                        ref G_str_path,
                        ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                        ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                        ref G_missing, ref G_missing, ref G_missing, ref G_missing,
                        ref G_missing, ref G_missing, ref G_missing);
                    ((Word._Application)G_wa.Application).Quit(//退出应用程序
                        ref G_missing, ref G_missing, ref G_missing);
                    this.Invoke(//开始执行窗体线程
                        (MethodInvoker)(() =>//使用lambda表达式
                        {
                            btn_Display.Enabled = true;//启用显示按钮
                            MessageBox.Show("成功创建Word文档!", "提示!");
                        }));
                });
        }

#7


lz自己解决了,不错。。

#8


顶楼主!学习了!