dycjh 发表于 2015-9-1 16:10:24

richEditControl 读取Word文档默认宋体全部变成了方正姚体

本帖最后由 dycjh 于 2015-9-1 16:18 编辑

richEditControl 读取Word文档后,将文档中默认的宋体5号字全部改成了方正姚体,如何解决。
网上找半天,只有一种方法:

      private void richEditControl1_DocumentLoaded(object sender, EventArgs e)
      {
         
            DocumentRange range = richEditControl1.Document.Range;
      
            CharacterProperties cp = this.richEditControl1.Document.BeginUpdateCharacters(range);
            cp.FontName = "宋体";
            //cp.FontSize = 12;
            this.richEditControl1.Document.EndUpdateCharacters(cp);
      
      }
但这个方法将所有字体全部改成了宋体。不符合要求。
如何将方正姚体仍改回宋体,别的字体不变呢?

ljl2004 发表于 2015-9-1 20:14:14

也比较感兴趣

dycjh 发表于 2015-9-2 08:46:20

ljl2004 发表于 2015-9-1 20:14
也比较感兴趣


尽管这个方法不太成熟,但将就着用吧。要解决只有找源代码自己改了。
private void richEditControl1_DocumentLoaded(object sender, EventArgs e)
      {

            ParagraphCollection p = richEditControl1.Document.Paragraphs;
            int Ps = p.Count - 1;
            try {
            for (int i = Ps; i >= 0; i--)
            {

                CharacterProperties cp = this.richEditControl1.Document.BeginUpdateCharacters(p.Range);
                if (cp.FontName == null)
                {

                  cp.FontName = "宋体";
               
                  this.richEditControl1.Document.EndUpdateCharacters(cp);
                  p = richEditControl1.Document.Paragraphs;
                  
                }
                this.richEditControl1.Document.EndUpdateCharacters(cp);

            }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
      }
页: [1]
查看完整版本: richEditControl 读取Word文档默认宋体全部变成了方正姚体