C# VSTO 在Word中將 EQ域、EQ公式域 轉為圖片


C# VSTO  Word EQ域 EQ公式域 轉為 圖片

C# VSTO  Word EQ域 EQ公式 轉為 圖片

C# VSTO  Word EQ域 公式域 轉為 圖片

 

我們知道我們正常插入的公式為Office公式,操作方式為:

 

 

 

在Word里面有一種特殊的東西叫“”,他可以是,目錄,公式,時間.....

這里是創建eq域的方法

 

 

 

需求:將eq域轉為圖片

代碼:

       ///// <summary>
        /////公式域保存為圖片
        ///// </summary>
        public static void SaveImg(Document Doc)
        {
            foreach (Microsoft.Office.Interop.Word.Field fld in Doc.Fields)
            {
                //這里可以得到域的類型是不是eq域在進行下面的操作,不然所以的都轉換了
                //int sta = fld.Code.Start;
                //var aa = fld.Code;
//域的左右范圍+1才能轉為圖片 var nRange = Doc.Range(fld.Code.Start - 1, fld.Code.Start + 1); //將圖片去除白邊 var img = QueItemRange.CutImageWhitePart(nRange.ToImageStream()); string path = Path.GetFullPath(Path.GetRandomFileName().Replace(".", "") + ".png"); img.Save(path, System.Drawing.Imaging.ImageFormat.Png); //插入到文檔中 var ii = nRange.AddPicture(path); //段落,圖片比文字高80%(這里沒有調好,可以直接調) //var ph = fld.Code.Paragraphs.First.LineSpacing*1.8; //var ip = ii.Height/ ph; //暫定寫死圖片大小 ii.ScaleHeight = 14; ii.ScaleWidth = 16; //刪除域 fld.Code.Text = ""; File.Delete(path); } }

備注:

圖片去除白邊(QueItemRange.CutImageWhitePart)可以看我的另外的博客 https://www.cnblogs.com/ping9719/p/11416176.html

 

測試 MS Office 和 WPS Office 都ok

ms會完全沒有問題,

但是wps在后續使用中可能Range會有一定的變化,需要使用者注意一下。

 

完成

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM