示例#1
0
        /* ----------------------------------------------------------------- */
        ///
        /// Render
        ///
        /// <summary>
        /// Executes the rendering with the specified arguments.
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        public static void Render(IntPtr core, Graphics dest,
                                  Page page, PointF point, SizeF size,
                                  RenderOption options) => Load(core, page.Number, hp =>
        {
            options.DrawBackground(e => dest.Clear(e));

            var x      = (int)point.X;
            var y      = (int)point.Y;
            var width  = (int)size.Width;
            var height = (int)size.Height;
            var degree = GetRotation(page.Delta);
            var flags  = options.GetFlags();

            var hdc = dest.GetHdc();
            NativeMethods.FPDF_RenderPage(hdc, hp, x, y, width, height, degree, flags);
            dest.ReleaseHdc(hdc);

            return(true);
        });
示例#2
0
        /* ----------------------------------------------------------------- */
        ///
        /// Render
        ///
        /// <summary>
        /// Executes the rendering with the specified arguments.
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        public static Image Render(IntPtr core, Page page, SizeF size,
                                   RenderOption options) => Load(core, page.Number, hp =>
        {
            var width  = (int)size.Width;
            var height = (int)size.Height;
            var degree = GetRotation(page.Delta);
            var flags  = options.GetFlags();

            var bpp  = 4;
            var dest = options.GetBitmap(width, height);
            var data = dest.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadWrite, dest.PixelFormat);
            var hbm  = NativeMethods.FPDFBitmap_CreateEx(width, height, bpp, data.Scan0, width * bpp);

            NativeMethods.FPDF_RenderPageBitmap(hbm, hp, 0, 0, width, height, degree, flags);
            NativeMethods.FPDFBitmap_Destroy(hbm);
            dest.UnlockBits(data);

            return(dest);
        });