kuku_lz 发表于 2013-3-20 11:52:00

如何访问Word文档中书签的内容

文档形式与内容见附件,使用TXTextControl读取文档后,希望提取下划线部分文档内容,建立Word文档时,在下划线区域创建了书签,如何使用TXTextControl读取书书签中的文本呢?

iceman 发表于 2013-3-20 18:32:00

回复 1楼kuku_lz的帖子

问题正在处理中,明天回复。

iceman 发表于 2013-3-21 14:45:00

回复 1楼kuku_lz的帖子

你好,
可以通过以下代码获取:

      private void Form1_Load(object sender, EventArgs e)
      {
            this.textControl1.Load("产品设计参数表.doc", TXTextControl.StreamType.MSWord);

            TXTextControl.DocumentTargetCollection dc = this.textControl1.DocumentTargets;

            foreach (TXTextControl.DocumentTarget item in dc)
            {
                TXTextControl.TextField tf = item;
                this.textControl1.Select(tf.Start,tf.Start+tf.Length);
                string text = this.textControl1.Selection.Text;
            }
      }

kuku_lz 发表于 2013-3-21 15:44:00

感谢回复,但是提取出来的文本不对,我跟踪了一下,转换后的TextField的Length属性始终等于0,不能有效读取文本。

kuku_lz 发表于 2013-3-21 16:12:00

借鉴iceman的方法,调整一下代码可以实现,但方法着实笨拙,代码如下:
                foreach (TXTextControl.DocumentTarget item in textControl1.DocumentTargets)
                {
                  int length = 1;
                  bool notstop = true;
                  string selectedstring = "";
                  do
                  {
                        textControl1.Select(item.Start, length);
                        length++;
                        selectedstring = textControl1.Selection.Text.TrimStart();
                        notstop = selectedstring == "" && (!selectedstring.Contains(" ") || !selectedstring.Contains("_"));
                  } while (notstop);
                  textControl1.Select(item.Start, length - 1);
                  lstInfos.Items.Add(string.Format("{0} = {1} ", item.TargetName, textControl1.Selection.Text.Trim()));
                }

此方法成功的前提是希望提取的有效文本的右侧与不希望提取的文本之间至少保留一个空格" "或下划线"_"才行,否则会有问题,不知版主有无其他妙法,谢谢!

iceman 发表于 2013-3-21 18:19:00

回复 5楼kuku_lz的帖子

你好,
问题正在处理中,明天回复。

iceman 发表于 2013-3-22 14:20:00

回复 5楼kuku_lz的帖子

kuku_lz 你好,
楼主的方法很好。
还可以通过两个书签定位一个文本,进而取值,请查看附件:

kuku_lz 发表于 2013-3-22 15:33:00

灰常灰常感谢iceman.:mj72:

iceman 发表于 2013-3-22 16:39:00

回复 8楼kuku_lz的帖子

:itwn:
页: [1]
查看完整版本: 如何访问Word文档中书签的内容