Exemplo n.º 1
0
        private void MakePdf(List <ImageTools.ExtendedImage> imgList, List <ImageTools.ExtendedImage> bpImgList)
        {
            var document = new PdfDocument();

            // UitvoerCreator uitvoercreator = new UitvoerCreator();
            foreach (var img in imgList)
            {
                PdfPage page = document.AddPage();
                page.Width  = 797;
                page.Height = 1123;
                XGraphics gfx = null;
                UIThread.Invoke(() => { gfx = XGraphics.FromPdfPage(page); });
                while (gfx == null)
                {
                    System.Threading.Thread.Sleep(100);
                }
                using (MemoryStream mstream = new MemoryStream())
                {
                    //var img = UitvoerView.GetImg();
                    if (img != null)
                    {
                        img.DensityX = 300;
                        img.DensityY = 300;
                        JpegEncoder encoder = new JpegEncoder();
                        encoder.Encode(img, mstream);
                        MemoryStream mss = new MemoryStream(mstream.ToArray());
                        mss.Seek(0, SeekOrigin.Begin);
                        //JpegEncoder encoder = new JpegEncoder();
                        //encoder.Encode(img, mstream);
                        //mstream.Seek(0, SeekOrigin.Begin);
                        //XImage.FromStream(ms);
                        XImage pdfImg = null;
                        UIThread.Invoke(() => { pdfImg = XImage.FromStream(mss); });
                        while (pdfImg == null)
                        {
                            System.Threading.Thread.Sleep(100);
                        }
                        pdfImg.Interpolate = false;
                        //gfx.DrawImage(pdfImg, 0, 0);
                        gfx.DrawImage(pdfImg, 0, 0, 797, 1123);
                    }
                }
            }

            PdfPage page2 = document.AddPage();

            page2.Width  = 797;
            page2.Height = 1123;

            XGraphics gfx2 = null;

            UIThread.Invoke(() => { gfx2 = XGraphics.FromPdfPage(page2); });
            while (gfx2 == null)
            {
                System.Threading.Thread.Sleep(100);
            }
            using (MemoryStream mstream2 = new MemoryStream())
            {
                ImageTools.ExtendedImage img2 = null;
                UIThread.Invoke(() => { img2 = UitvoerPrijsView.GetImg(SaveNeeded, PrintDatum); });
                while (img2 == null)
                {
                    System.Threading.Thread.Sleep(100);
                }

                img2.DensityX = 900;
                img2.DensityY = 900;
                JpegEncoder encoder2 = new JpegEncoder();
                encoder2.Quality = 100;
                encoder2.Encode(img2, mstream2);
                MemoryStream mss2 = new MemoryStream(mstream2.ToArray());
                mss2.Seek(0, SeekOrigin.Begin);
                XImage pdfImg2 = null;
                UIThread.Invoke(() => { pdfImg2 = XImage.FromStream(mss2); });
                while (pdfImg2 == null)
                {
                    System.Threading.Thread.Sleep(100);
                }
                pdfImg2.Interpolate = false;
                gfx2.DrawImage(pdfImg2, 0, 0, 797, 1123);
            }

            foreach (var img in bpImgList)
            {
                using (MemoryStream msb = new MemoryStream())
                {
                    PdfPage pageb = document.AddPage();
                    pageb.Width  = 797;
                    pageb.Height = 1123;
                    XGraphics gfxb = null;
                    UIThread.Invoke(() => { gfxb = XGraphics.FromPdfPage(pageb); });
                    while (gfxb == null)
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                    img.DensityX = 300;
                    img.DensityY = 300;
                    JpegEncoder encoderb = new JpegEncoder();
                    encoderb.Encode(img, msb);
                    MemoryStream msb2 = new MemoryStream(msb.ToArray());
                    msb2.Seek(0, SeekOrigin.Begin);
                    XImage pdfImg = null;
                    UIThread.Invoke(() => { pdfImg = XImage.FromStream(msb2); });
                    while (pdfImg == null)
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                    pdfImg.Interpolate = false;
                    gfxb.DrawImage(pdfImg, 0, 0, 797, 1123);
                }
            }
            _File = document;

            /* foreach (var Img in uitvoercreator.MaakPlattegrondUitvoer())
             * {
             * PdfPage page3 = document.AddPage();
             * page3.Width = 797;
             * page3.Height = 1123;
             * XGraphics gfx3 = XGraphics.FromPdfPage(page3);
             * using (MemoryStream mstream3 = new MemoryStream())
             * {
             *    if (Img != null)
             *    {
             *        Img.DensityX = 300;
             *        Img.DensityY = 300;
             *        JpegEncoder encoder = new JpegEncoder();
             *        encoder.Encode(Img, mstream3);
             *        MemoryStream mss3 = new MemoryStream(mstream3.ToArray());
             *        mss3.Seek(0, SeekOrigin.Begin);
             *        XImage pdfImg3 = XImage.FromStream(mss3);
             *        pdfImg3.Interpolate = false;
             *        gfx3.DrawImage(pdfImg3, 0, 0, 797, 1123);
             *
             *    }
             * }
             * }*/
        }