以下有一段代码将word公式转换为图片,但是不够清晰。用Graphics的属性CompositingQuality设置没有效果,请高手给帮忙处理一下。
 foreach (OMath math in doc.Content.OMaths)
              {
                  math.Range.Select();
                  math.Range.CopyAsPicture();
                  //doc.ActiveWindow.Selection.CopyAsPicture();
                  
                  object start = 0;
                  object end = 1;                  object PDT = Microsoft.Office.Interop.Word.WdPasteDataType.wdPasteEnhancedMetafile;                  var range = math.Range.Next(); //doc.Range(ref start, ref end);
                  range.PasteSpecial(DataType: PDT);                  var rangImg = doc.Shapes.Range(ref end);
                  
                  // 如何在这里设置参数将图片保存成高清?
                  rangImg.ConvertToInlineShape().Range.CopyAsPicture();
                  contan = Clipboard.ContainsImage();
                  rangImg.Delete();
                                    using (var img = Clipboard.GetImage())
                  {
                      Graphics grh = Graphics.FromImage(img);
                      grh.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                      img.Save(string.Format(imgdir + @"\{0}.wmf", i), ImageFormat.Wmf);
                      img.Save(string.Format(imgdir + @"\{0}.jpeg", i), ImageFormat.Jpeg);
                      
                  }

解决方案 »

  1.   

    高质量
    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;  
    System.Drawing.Imaging.ImageCodecInfo codec = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()[1]; System.Drawing.Imaging.EncoderParameters eParams = new System.Drawing.Imaging.EncoderParameters(1);   
    eParams.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);