From ae63b030d75cb9e0571019f32850c0b2d0f730f8 Mon Sep 17 00:00:00 2001 From: wiera987 Date: Sun, 26 May 2019 17:02:07 +0900 Subject: [PATCH] Fixed the blank space at the end of PDF file which has 1500 pages. --- PdfiumViewer/PdfRenderer.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/PdfiumViewer/PdfRenderer.cs b/PdfiumViewer/PdfRenderer.cs index 47b4ff98..daccb1cc 100644 --- a/PdfiumViewer/PdfRenderer.cs +++ b/PdfiumViewer/PdfRenderer.cs @@ -14,7 +14,6 @@ public class PdfRenderer : PanningZoomingScrollControl { private static readonly Padding PageMargin = new Padding(4); - private int _height; private int _maxWidth; private int _maxHeight; private double _documentScaleFactor; @@ -404,14 +403,12 @@ public void Load(IPdfDocument document) private void ReloadDocument() { - _height = 0; _maxWidth = 0; _maxHeight = 0; foreach (var size in Document.PageSizes) { var translated = TranslateSize(size); - _height += (int)translated.Height; _maxWidth = Math.Max((int)translated.Width, _maxWidth); _maxHeight = Math.Max((int)translated.Height, _maxHeight); } @@ -678,7 +675,14 @@ private void DrawPageImage(Graphics graphics, int page, Rectangle pageBounds) /// The document bounds. protected override Rectangle GetDocumentBounds() { - int height = (int)(_height * _scaleFactor + (ShadeBorder.Size.Vertical + PageMargin.Vertical) * Document.PageCount); + int scaledHeight = 0; + for (int page = 0; page < Document.PageSizes.Count; page++) + { + var size = TranslateSize(Document.PageSizes[page]); + scaledHeight += (int)(size.Height * _scaleFactor); + } + + int height = (int)(scaledHeight + (ShadeBorder.Size.Vertical + PageMargin.Vertical) * Document.PageCount); int width = (int)(_maxWidth * _scaleFactor + ShadeBorder.Size.Horizontal + PageMargin.Horizontal); var center = new Point(