rt,
这个就是我的图片,是word文档生成的图片,是试卷的密封线内的东西,竖排的,现在的问题是,如何利用c#操作word制作出这样的效果
本来想做个智能试卷生成系统的,一上来倒是被这个难住了,大家帮我下,谢谢了先,顶着有分

解决方案 »

  1.   

    楼主在用WORD制作这个试卷关,先录制宏,然后再找找C#操作WORD文档的代码,把宏里的代码转换成C#的就行了
      

  2.   

    vsto?用录制宏看看怎么做到的
      

  3.   

    创建打印模板文件(*.dot)
      此为关键步骤,在需要竖排的地方,先文字的字体、样式设置后,然后设置文字方向,再选择该段文字,为其插入一个书签(BookMark),并为该书签命名。
    2.利用C#打开,替换该书签即可,代码如下:
    注意使用以下代码时,需要引入Word库    Word.ApplicationClass App = null;    //Word应用程序对象
      Word.Document doc = null;                         //Word文档对象
      object missing = System.Reflection.Missing.Value;
        object miss=Type.Missing;
      if (App==null)    App = new Word.ApplicationClass();//创建word对象
      App.Visible = false;  //设置word不可见
      //根据模板创建新文档,不过这个模板文件的名称放置在app.config文件中
      object oTemplate = ConfigurationSettings.AppSettings["TemplateOfLetter"];//获取文件名
    doc = App.Documents.Add(ref oTemplate, ref missing,ref missing, ref missing);//创建新文档
    doc.Activate();//激活文档
    Object objBookMark = "姓名";//姓 名 创建书签对象
    string name="张三";
    doc.Books.get_Item(ref objBookMark).Range.Text =name;//替换该书签,可为任意值了
    //打印输出
    doc.PrintOut( 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,ref missing,ref missing,ref missing);
    //关闭新创建的文档
    object SaveChanges  = Word.WdSaveOptions.wdDoNotSaveChanges;//创建关闭选项
      if (doc!=null)
        doc.Close( ref SaveChanges, ref missing, ref missing);
      //退出Word  
      if (App!=null)
          App.Application.Quit(ref miss, ref miss, ref miss);
      App=null;
      doc = null;
      3.注意事项
    a)在控制Word时,应注意释放已占用的word对象,所以上述代码最好写在try/catch/finally中,把资源释放代码写在finally中
    b)如果在word中用多个文字需要竖排,最好使用表格或文本框对象,强烈建议使用文本框对象来放置竖排文本,这样不会影响页面设置,而单纯的竖排文字方向会导致整个页面全部文字变成竖排,不利用其他文本的放置
    c)如果需要一次性生成多个文档并打印输出的话,可以考虑使用多线程技术,并利用进度栏进行进度显示,该部分内容不在本主题的讨论范围。
    d)关于效率问题,操作word进行文档输出,其效率并不算高,但好在word的使用范围广,不需要在客户的机器上另行安装其他报表工具,且用户有能力对报表模板进行样式及不涉及数据输出等小范围的页面调整,并且用户较为熟悉,打印控制也较为方便,如果不是对效率有太高的要求,使用Word做为打印模板是比较合适,自已的程序的测试数据,生成3879个文件并打印输出,用时3223秒,基本上是0.9秒生成并输出一个,考虑到打印机的速度(目前打印机,能达到30张/s的都算是很快的了),这样的效率是完全可以接受的。
      

  4.   

    Word的工具菜单里有宏-->录制宏
    录制的宏就是你操作Word的每一步用相应代码表示的方法
    只不过代码是VBA的,应该能看懂,
    可以结合19楼使用模板的功能
      

  5.   

    axwebbrower  或者webbrower浏览word
      

  6.   

     str3 = "X1-JU-5|S2-GK-1|S3-Li-2"; 
      

  7.   


    偶也是用这种办法进行和word有关的操作,很有效
      

  8.   


    偶也是用这种办法进行和word有关的操作,很有效