Пример #1
0
        /// <summary>
        /// <inheritdoc/>
        /// </summary>
        public void RenderPageBitmap(double zoomFactor, int startX, int startY, int sizeX, int sizeY, int width, int height, BitmapFormat format, IntPtr buffer, int stride)
        {
            var bmp = new PDFBitmap(_mainComponent);

            bmp.Create(width, height, format, buffer, stride);

            var pageHandle = _mainComponent.PDFiumBridge.FPDF_LoadPage(_mainComponent.PDFiumDocument, PageIndex);

            bmp.RenderWithTransformation(
                pageHandle,
                zoomFactor,
                startX,
                startY,
                sizeX,
                sizeY,
                _mainComponent.PageComponent.IsAnnotationToRender ? FPDF_RENDERING_FLAGS.FPDF_ANNOT : FPDF_RENDERING_FLAGS.FPDF_NONE);
            _mainComponent.PDFiumBridge.FPDF_ClosePage(pageHandle);

            if (_mainComponent.PageComponent is PDFPageComponent pageComponent &&
                pageComponent.PageIndexWithSelections == PageIndex &&
                pageComponent.SelectionRectangles.Count != 0)
            {
                foreach (var rect in pageComponent.SelectionRectangles)
                {
                    bmp.RenderSelectionRectangle(zoomFactor, startX, startY, sizeY, rect.Left, rect.Top, rect.Width, rect.Height);
                }
            }

            bmp.Destroy();
        }
Пример #2
0
        /// <summary>
        /// <inheritdoc/>
        /// </summary>
        public void RenderThumbnailBitmap(BitmapFormat format, IntPtr buffer, int stride)
        {
            var bmp = new PDFBitmap(_mainComponent);

            bmp.Create((int)ThumbnailWidth, (int)ThumbnailHeight, format, buffer, stride);

            var pageHandle = _mainComponent.PDFiumBridge.FPDF_LoadPage(_mainComponent.PDFiumDocument, PageIndex);

            bmp.RenderWithoutTransformation(
                pageHandle,
                0,
                0,
                (int)ThumbnailWidth,
                (int)ThumbnailHeight,
                FPDF_RENDERING_FLAGS.FPDF_NONE);
            _mainComponent.PDFiumBridge.FPDF_ClosePage(pageHandle);

            bmp.Destroy();
        }