public Stream CreateImage(string html) { if (String.IsNullOrWhiteSpace(html)) return new RenderTargetBitmap(Width, 1, 0, 0, PixelFormats.Pbgra32).CreateStream(); string text = HttpUtility.HtmlDecode(html); var output = new DrawingGroup(); var format = new BasicTextParagraphProperties(font, 14, FlowDirection.RightToLeft); var words = Measurer.MeasureLines(text, Width, format, output).ToList(); var dv = new DrawingVisual(); using (var c = dv.RenderOpen()) c.DrawImage(new DrawingImage(output), new Rect(new Point(Width - output.Bounds.Width, 0), output.Bounds.Size)); var rtb = new RenderTargetBitmap(Width, (int)output.Bounds.Height, 96, 96, PixelFormats.Pbgra32); rtb.Render(dv); return rtb.CreateStream(); }