Example #1
0
 public void ProcessEMF(byte[] emf)
 {
     try
     {
         _ms = new MemoryStream(emf);
         _mf = new Metafile(_ms);
         _bm = new Bitmap(1, 1);
         g = Graphics.FromImage(_bm);
         //XScale = Width / _mf.Width;
         //YScale = Height/ _mf.Height;
         m_delegate = new Graphics.EnumerateMetafileProc(MetafileCallback);
         g.EnumerateMetafile(_mf, new Point(0, 0), m_delegate);
     }
     finally
     {
         if (g != null)
             g.Dispose();
         if (_bm != null)
             _bm.Dispose();
         if (_ms != null)
         {
             _ms.Close();
             _ms.Dispose();
         }
     }
 }
 // Method to draw the current emf memory stream
 private void ReportDrawPage(Graphics graphics)
 {
     if (m_currentPageStream == null || m_currentPageStream.Length == 0 || m_metafile == null)
         return;
     // Set metafile delegate.
     m_delegate = new Graphics.EnumerateMetafileProc(MetafileCallback);
     // Draw in the rectangle
     Point destPoint = new Point(0, 0);
     graphics.EnumerateMetafile(m_metafile, destPoint, m_delegate);
     // Clean up
     m_delegate = null;
 }
Example #3
0
        // Method to draw the current emf memory stream 
        private void ReportDrawPage(Graphics g)
        {
            if (null == m_currentPageStream || 0 == m_currentPageStream.Length || null == m_metafile)
                return;
            lock (this)
            {
                // Set the metafile delegate.
                int width = m_metafile.Width;
                int height = m_metafile.Height;
                m_delegate = new Graphics.EnumerateMetafileProc(MetafileCallback);
                // Draw in the rectangle
                Point[] points = new Point[3];
                Point destPoint = new Point(0, 0);
                Point destPoint1 = new Point(width, 0);
                Point destPoint2 = new Point(0, height);

                points[0] = destPoint;
                points[1] = destPoint1;
                points[2] = destPoint2;

                g.EnumerateMetafile(m_metafile, points, m_delegate);
                // Clean up
                m_delegate = null;
            }
        }