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; } }
//------------------------------------------------------------------------- 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; //} }