问题是这样的, 我有一个WORD文件,文件里有很多线段(这些线均是用WORD画的),我想把这些线段的坐标值取出来(即,每条线段的两个端点的坐标值)。最好附有源码, 我查了一天的资料也没有搞定。
提前也有分,给解决问题者100分,如果不够可以再加。

解决方案 »

  1.   

    对于自选图形可以使用文档的Shape对象获取其位置信息(线条不能位置绘图区内:XP或更高版本的概念)
    示例如下:
      for i:=1 to appWord.ActiveDocument.Shapes.Count do
        if appWord.ActiveDocument.Shapes.item(i).type_=msoAutoShape then
        begin 
           //if appWord.ActiveDocment.Shapes.item(i).AutoShapeType = msoShapeLineCallout1
           //判断自选图形的类型  1mm=2.835磅
           iLineX := appWord.ActiveDocument.Shapes.item(i).Left;//n磅
           iLineY := appWord.ActiveDocument.Shapes.item(i).Top;//n磅 
           
        end;
        
         
      end;
      

  2.   

    TO :ymxxm(ymxxm)
    先对你的关注表示感谢,其次我调试的结果是:
        if appWord.ActiveDocument.Shapes.item(i).type_=msoAutoShape then
      其中i是 必须提示为 olevariant, 我这里定义了个整形的,应该我是搞错了吧。
      其次:提示msoAutoShape 没有定义。
      

  3.   

    appWord.ActiveDocument.Shapes.Item(oleindex).Nodes.Item(oleindex2).Points
      应该是返回一条曲线中的一个节点的坐标,这里返回类型为:olevariant,怎样可以得到我想要的point类型呢?
      

  4.   

    节点获取我已经解决了,现在的问题是:
       我获取的线段位置基本正确,但是有些文件读出之后,重画效果和原word效果不一样(面目皆非)。我认为原因是,图形(主要是线)和文字之间的环绕关系,导致读出的位置有影响。
      那位大侠帮我解决了,我立刻给分。对了,友情灌水也有分。。
      分很宝贵啊,却没有知识值钱,  比起您解答问题的壮举没有什么比这更伟大的。我鼓掌先。