Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        /// <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);
        }