private void SaveToStream(SKWStream stream) { var metadata = new SKDocumentPdfMetadata { Author = Author, Creation = DateTime.Now, Creator = Creator, Keywords = Keywords, Modified = DateTime.Now, Producer = Producer, Subject = Subject, Title = Title, }; int dpi = 72; using (var document = SKDocument.CreatePdf(stream, metadata, dpi)) { foreach (var page in Pages) { var pdfCanvas = document.BeginPage(page.Width, page.Height, page.Dimensions.GetContentRect().ToSKRect()); var pageRenderer = new PageRenderer(page); pageRenderer.Render(pdfCanvas); document.EndPage(); } // end the doc document.Close(); } }
/// <summary> /// 渲染 /// </summary> /// <param name="stream">渲染到指定的流</param> /// <param name="imageFormat">图像格式</param> /// <param name="quality">图像的质量级别</param> public void Render(SKWStream stream, SKEncodedImageFormat imageFormat, int quality) { SkiaSharp.SKBitmap SKBitmap = new SKBitmap(new SKImageInfo(200, 200, SKColorType.Argb4444)); SKCanvas sKCanvas = new SKCanvas(SKBitmap); foreach (var control in Controls) { control.Draw(sKCanvas); } SKBitmap.Encode(stream, imageFormat, quality); }