<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      解決Devexpress的RichEditControl控件保存為docx文件后在word里打開字體顯示不正確的問題

      問題復現

      用Richeditcontrol編輯如下內容并保存為.docx文件:

      image

      用word或wps打開的效果:

      image

      尋找原因

      我用word編輯個一樣內容的文件,將這兩個文件的擴展名修改為zip,解壓后經過對比,發現document.xml文件這里不同:

      image

      我用bing搜索了這個關鍵字,搜索到了相關文檔,奈何和諧社會。

      解決辦法

      增加一個“保存“按鈕,保存為docx文件后,把其中的document.xml文件修改之。代碼如下:

      using DevExpress.XtraRichEdit;
      using Ionic.Zip;
      using System;
      using System.IO;
      using System.Linq;
      using System.Windows.Forms;
      using System.Xml;
      
      namespace RicheditcontrolFontDemo
      {
          public partial class FormMain : Form
          {
              public FormMain()
              {
                  InitializeComponent();
              }
      
              private void barButtonItemSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
              {
                  SaveFileDialog sfd = new SaveFileDialog
                  {
                      Filter = "doc|*.docx"
                  };
                  if (sfd.ShowDialog() == DialogResult.OK)
                  {
                      this.richEditControl.SaveDocument(sfd.FileName, DocumentFormat.OpenXml);
                      MondifyFonts(sfd.FileName);
                  }
              }
      
              private void MondifyFonts(string path)
              {
                  using (ZipFile zip = new ZipFile(path)) // DotNetZip
                  {
                      var entry = zip.First(e => e.FileName == "word/document.xml");
      
                      string tempPath = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                      entry.Extract(tempPath);
                      AddEastAsiaFont($"{tempPath}//word/document.xml");
                      zip.RemoveEntry(entry);
                      zip.AddFile($"{tempPath}//word/document.xml", "word");
                      zip.Save();
      
                      Directory.Delete(tempPath, true);
                  }
              }
      
              private void AddEastAsiaFont(string file)
              {
                  XmlDocument doc = new XmlDocument();
                  XmlNamespaceManager xmlm = new XmlNamespaceManager(doc.NameTable);
                  xmlm.AddNamespace("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");
                  doc.Load(file);
                  var nodes = doc.SelectNodes("http://w:rFonts", xmlm);
      
                  foreach (XmlNode node in nodes)
                  {
                      if (!AnyEastAsiaAttribute(node))
                      {
                          string fontName = GetFontName(node);
                          if (fontName != null)
                          {
                              XmlAttribute atr = doc.CreateAttribute("w", "eastAsia", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");
                              atr.Value = fontName;
                              node.Attributes.Append(atr);
                          }
                      }
                  }
      
                  doc.Save(file);
              }
      
              private string GetFontName(XmlNode node)
              {
                  foreach (XmlAttribute item in node.Attributes)
                  {
                      if (item.Name == "w:ascii" || item.Name == "w:hAnsi")
                      {
                          return item.Value;
                      }
                  }
                  return null;
              }
      
              private bool AnyEastAsiaAttribute(XmlNode node)
              {
                  foreach (XmlAttribute item in node.Attributes)
                  {
                      if (item.Name == "w:eastAsia")
                      {
                          return true;
                      }
                  }
      
                  return false;
              }
          }
      }
      
      posted @ 2021-12-17 18:39  會長  閱讀(930)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品无码久久久影院相关影片 | 亚洲第一香蕉视频啪啪爽| 人人妻人人添人人爽日韩欧美| 动漫av纯肉无码av在线播放| 亚洲一区二区av免费| 成年人尤物视频在线观看| 最近中文字幕免费手机版| 无码激情亚洲一区| 国产高清在线精品一区二区三区| 成人精品天堂一区二区三区| 人妻人人澡人人添人人爽| 精品国产成人亚洲午夜福利| 深夜精品免费在线观看| 久久99国产乱子伦精品免费| 久热色精品在线观看视频| 丰满高跟丝袜老熟女久久| 激情自拍校园春色中文| 少妇无套内射中出视频| 日本大片在线看黄a∨免费| 天天干天天色综合网| 一区二区福利在线视频| 熟女人妻视频| 欧美人与动人物牲交免费观看| 西乌珠穆沁旗| 久久亚洲精品中文字幕无| 亚洲 日本 欧洲 欧美 视频| 精品无码久久久久久久动漫| 色综合五月伊人六月丁香| 午夜高清福利在线观看| 亚洲中文字幕无码久久精品1| 美日韩精品一区二区三区| 国产精品中文av专线| 国产真实露脸乱子伦原著| 国产精品女视频一区二区| XXXXXHD亚洲日本HD| 贡觉县| 亚洲a人片在线观看网址| 另类国产精品一区二区| 人妻日韩人妻中文字幕| 国产精品黄色精品黄色大片| 无码人妻丰满熟妇区五十路在线|