首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#创建word时怎么设置图片插入到指定文字后

2013-10-11 
c#创建word时如何设置图片插入到指定文字后我们学校要求做一个c#的小程序,用c#连接word,在指定标签处添加

c#创建word时如何设置图片插入到指定文字后
我们学校要求做一个c#的小程序,用c#连接word,在指定标签处添加文字后,我想在文字中间添加一个图片,但不知道怎么加,希望各位高手帮帮忙。这个是我找了好长时间的,但不是我想要的,日期就要到了,麻烦各位高手尽快啊。






using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Word;
using System.IO;
using System.Collections.Specialized;

namespace WindowsFormsApplication23
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {


            Object Nothing = System.Reflection.Missing.Value;
            Directory.CreateDirectory("C:\\Users\\dell3\\Desktop");  //创建文件所在目录
            string name = "7.doc";
            object filename = "C:\\Users\\dell3\\Desktop\" + name;  //文件保存路径
            //创建Word文档
            _Application WordApp = new ApplicationClass();
            Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add();

            //WordDoc.Paragraphs.Last.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;   //设置对齐方式
            string text1 = richTextBox1.Text;
            WordDoc.Paragraphs.Last.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
            WordDoc.Paragraphs.Last.Range.Bold = 2;
            WordDoc.Paragraphs.Last.Range.Font.Size = 20;   //设置字号大小
            WordDoc.Paragraphs.Last.Range.Text = "实验目的\n";
            WordApp.Selection.TypeParagraph();   //插入段落
            WordDoc.Paragraphs.Last.Range.Bold = 0;
            WordDoc.Paragraphs.Last.Range.Font.Size = 13;   //设置字号大小
            WordDoc.Paragraphs.Last.Range.Text = text1 + "\n";
            //WordDoc.Paragraphs.Last.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
            WordDoc.Paragraphs.Last.Range.Bold = 2;   //加粗
            WordDoc.Paragraphs.Last.Range.Font.Size = 20;   //设置字号大小
            WordDoc.Paragraphs.Last.Range.Text = "实验环境\n";
            WordApp.Selection.TypeParagraph();   //插入段落
            WordDoc.Paragraphs.Last.Range.Bold = 0;
            WordDoc.Paragraphs.Last.Range.Font.Size = 13;   //设置字号大小
            WordApp.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距
            WordDoc.Paragraphs.Last.Range.Text = richTextBox2.Text.ToString() + "\n";
            WordDoc.Paragraphs.Last.Range.Bold = 2;
            WordDoc.Paragraphs.Last.Range.Font.Size = 20;   //设置字号大小
            WordDoc.Paragraphs.Last.Range.Text = "实验原理\n";
            WordApp.Selection.TypeParagraph();   //插入段落
            WordDoc.Paragraphs.Last.Range.Font.Size = 13;   //设置字号大小
            WordDoc.Paragraphs.Last.Range.Bold = 0;


           
            //this.richTextBox3.Focus();
            int a=this.richTextBox1.SelectionStart;

            //定义该插入的图片是否为外部链接
            object linkToFile = false;                //默认
            //定义要插入的图片是否随Word文档一起保存
            object saveWithDocument = true;
            object range = WordDoc.Paragraphs.Last.Range;


            if (Clipboard.ContainsFileDropList())
            {
                StringCollection sc = Clipboard.GetFileDropList();
                for (int i = 0; i < sc.Count; i++)
                {
                    string fileName = sc[i];
                    richTextBox1.Text = fileName;

                    Image img = Image.FromFile(fileName);
                    Clipboard.Clear();
                    Bitmap bmp = new Bitmap(img);
                    Clipboard.SetImage(bmp);
                    richTextBox3.Paste();
                   // WordDoc.InlineShapes.AddPicture(fileName);
                    //object range = WordDoc.Paragraphs.Last.Range;
                    //Object range = WordDoc.Paragraphs.Last.Range;
                    //定义该插入的图片是否为外部链接
                    // Object linkToFile = false;                //默认
                    //定义要插入的图片是否随Word文档一起保存
                    //Object saveWithDocument = true;               //默认
                    //object Anchor = this.richTextBox3.SelectionStart;
                  //  object bkObj = "bookmark";
                  //  string bk;
                    //if (WordApp.ActiveDocument.Bookmarks.Exists(bk) == true)
                   // {
                      //  WordApp.ActiveDocument.Bookmarks.get_Item(ref bkObj).Select();
                      //  object oRng = WordDoc.Bookmarks.get_Item(ref bkObj).Range;
                      //  object Anchor = WordDoc.Application.Selection.Range;
                      //  WordDoc.InlineShapes.AddPicture(fileName, ref linkToFile, ref saveWithDocument, ref oRng);
                   // }
                }


            }
           WordDoc.Paragraphs.Last.Range.Text = richTextBox3.Text.ToString() + "\n";
                //MessageBox.Show("1");

                //object Anchor = WordDoc.Application.Selection.Range;





                //string path = @"C:\Users\dell3\Desktop\新建文件夹 (18)\登陆界面\0.jpg";
                //Clipboard.Clear();
                //Bitmap bmp=new Bitmap(path);
                //Clipboard.SetImage(bmp);
                //richTextBox3.Paste();
                //Clipboard.Clear();
                //WordDoc.InlineShapes.AddPicture(path);





                //G_str_path = string.Format(          //计算文件保存路径
                //@"{0}{1}", G_FolderBrowserDialog.SelectedPath,+ ".doc"); 


                // WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(richTextBox3.Paste());
                //= richTextBox3.Paste + "\n";
                //WordDoc.Paragraphs.Last.Range = richTextBox3.Focus()+ "\n";
                //移动焦点并换行
                //object count = 14;
                object WdLine = WdUnits.wdLine;//换一行;
                WordDoc.Paragraphs.Last.Range.Bold = 2;
                WordDoc.Paragraphs.Last.Range.Font.Size = 20;   //设置字号大小
                WordDoc.Paragraphs.Last.Range.Text = "实验内容与要求\n";
                WordApp.Selection.TypeParagraph();   //插入段落
                WordDoc.Paragraphs.Last.Range.Font.Size = 13;   //设置字号大小
                WordDoc.Paragraphs.Last.Range.Bold = 0;
                WordDoc.Paragraphs.Last.Range.Text = richTextBox4.Text.ToString() + "\n";
                WordDoc.Paragraphs.Last.Range.Bold = 2;
                WordDoc.Paragraphs.Last.Range.Font.Size = 20;   //设置字号大小
                WordDoc.Paragraphs.Last.Range.Text = "实验过程及结果分析\n";
                WordApp.Selection.TypeParagraph();   //插入段落
                WordDoc.Paragraphs.Last.Range.Font.Size = 13;   //设置字号大小
                WordDoc.Paragraphs.Last.Range.Bold = 0;
                WordDoc.Paragraphs.Last.Range.Text = richTextBox5.Text.ToString() + "\n";
                //WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点
                //WordDoc.Paragraphs.Last.Range.Text = "应收获书\n";
                //WordApp.Selection.TypeParagraph();   //插入段落
                //WordDoc.Paragraphs.Last.Range.Text = "应收获确认书\n";
                WordDoc.SaveAs(filename);  //保存文件
                WordApp.Quit();   //结束程序





            }




        }
    }

[解决办法]
首先获取文字的所在光标文字,然后再插入图片,具体实现代码参考:
http://www.cnblogs.com/starstarfire/archive/2006/05/24/408422.html
[解决办法]
那你就在文字中间在创建一个图片标签,再在此标签处插入图片。下面是给你封装的在标签处插入图片的方法:
//插入图片
        public void InsertPicture(string bookmark, string picturePath, float width, float height, ref Word2007.Document wordDoc)
        {
            if (!File.Exists(picturePath)) return;
            object miss = System.Reflection.Missing.Value;
            object oStart = bookmark;
            Object linkToFile = false;       //图片是否为外部链接

            Object saveWithDocument = true;  //图片是否随文档一起保存

            object range = wordDoc.Bookmarks.get_Item(ref oStart).Range;//图片插入位置
            Word2007.InlineShape picShape = wordDoc.InlineShapes.AddPicture(picturePath, ref linkToFile, ref saveWithDocument, ref range);
            picShape.Width = width;//设置图片宽度
            picShape.Height = height;//设置图片高度
        }

热点排行