Beispiel #1
0
        Image RenderPage(PDFLibNet.PDFWrapper doc, int page)
        {
            doc.CurrentPage = page + 1;
            doc.CurrentX = 0;
            doc.CurrentY = 0;

            using (var box = new PictureBox())
            {
                // have to give the document a handle to render into
                doc.RenderPage(box.Handle);

                // create an image to draw the page into
                var buffer = new Bitmap(doc.PageWidth, doc.PageHeight);
                doc.ClientBounds = new Rectangle(0, 0, doc.PageWidth, doc.PageHeight);
                using (var g = Graphics.FromImage(buffer))
                {
                    var hdc = g.GetHdc();
                    try
                    {
                        doc.DrawPageHDC(hdc);
                    }
                    finally
                    {
                        g.ReleaseHdc();
                    }
                }

                return buffer;
            }
        }
Beispiel #2
0
 /* ----------------------------------------------------------------- */
 /// PrintBitmap
 /* ----------------------------------------------------------------- */
 private void PrintBitmap(System.Drawing.Printing.PrintDocument document, PDFLibNet.PDFWrapper core)
 {
     var settings = new { page = core.CurrentPage, zoom = core.Zoom };
     document.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage);
     core.CurrentPage = (document.PrinterSettings.PrintRange == PrintRange.AllPages) ?
         1 : document.PrinterSettings.FromPage;
     document.Print();
     core.CurrentPage = settings.page;
     core.Zoom = settings.zoom;
     core.RenderPage(IntPtr.Zero, false, false);
 }
Beispiel #3
0
        //-------------------------------------------------------------------------
        private Bitmap GetBitmapFromPDFPage(PDFLibNet.PDFWrapper pdfDoc, int pageNumber)
        {
            if (pdfDoc == null) return null;
            //try
            //{
            pdfDoc.CurrentPage = pageNumber;
            double dpi = pdfDoc.RenderDPI;
            System.Windows.Forms.PictureBox pic = new System.Windows.Forms.PictureBox();
            pic.Width = 2560 + 17;//PhysicalDimension = {Width = 2560.0 Height = 3328.0}
            //pic.Height = 3328;//PhysicalDimension = {Width = 2560.0 Height = 3312.0}
            pdfDoc.FitToWidth(pic.Handle);
            pic.Height = pdfDoc.PageHeight;
            //pictureBox1.Height = pdfDoc.PageHeight;
            pdfDoc.RenderPage(pic.Handle);
            pdfDoc.ClientBounds = new System.Drawing.Rectangle(0, 0, pdfDoc.PageWidth, pdfDoc.PageHeight);
            Bitmap backbuffer = new Bitmap(pdfDoc.PageWidth, pdfDoc.PageHeight);
            using (Graphics g = Graphics.FromImage(backbuffer))
            {//недопустимый параметр при 8 потоках
                pdfDoc.DrawPageHDC(g.GetHdc());
                g.ReleaseHdc();
            }
            pic.Dispose();
            //var entryBitmap = (Bitmap)backbuffer.Clone();
            //backbuffer.Dispose();

            return backbuffer;// entryBitmap;
            //}
            //catch (Exception)
            //{
            //    return null;
            //}
        }