From 781f212289fde34662e85c622324e3d30a29f7da Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Mon, 28 Oct 2019 00:43:50 +0100 Subject: [PATCH] PdfPageRenderer: Fix Rendering of null pages. --- VAR.PdfTools/PdfPageRenderer.cs | 8 ++++++-- VAR.PdfTools/PdfTextElement.cs | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/VAR.PdfTools/PdfPageRenderer.cs b/VAR.PdfTools/PdfPageRenderer.cs index a45cdb2..0549d88 100644 --- a/VAR.PdfTools/PdfPageRenderer.cs +++ b/VAR.PdfTools/PdfPageRenderer.cs @@ -24,15 +24,18 @@ namespace VAR.PdfTools { _page = page; _pdfTextExtractor = new PdfTextExtractor(_page); + InitPage(); } public PdfPageRenderer(PdfTextExtractor pdfTextExtractor) { _pdfTextExtractor = pdfTextExtractor; _page = pdfTextExtractor.Page; + InitPage(); + } - - // Calculate page size and scale + private void InitPage() + { _pageRect = _pdfTextExtractor.GetRect(); _pageWidth = (int)Math.Ceiling(_pageRect.XMax - _pageRect.XMin); _pageHeight = (int)Math.Ceiling(_pageRect.YMax - _pageRect.YMin); @@ -120,6 +123,7 @@ namespace VAR.PdfTools private static void DrawTextElement(PdfTextElement textElement, Graphics gc, Pen penTextElem, Pen penCharElem, int scale, int pageHeight, double pageXMin, double pageYMin, Brush brushText) { + if (textElement == null) { return; } double textElementX = textElement.GetX() - pageXMin; double textElementY = textElement.GetY() - pageYMin; double textElementWidth = textElement.VisibleWidth; diff --git a/VAR.PdfTools/PdfTextElement.cs b/VAR.PdfTools/PdfTextElement.cs index 7fe8f11..a8e21f9 100644 --- a/VAR.PdfTools/PdfTextElement.cs +++ b/VAR.PdfTools/PdfTextElement.cs @@ -116,7 +116,10 @@ namespace VAR.PdfTools public static PdfTextElementColumn Empty { get; } = new PdfTextElementColumn(); - private PdfTextElementColumn() { } + private PdfTextElementColumn() + { + Elements = new List(); + } public PdfTextElementColumn(PdfTextElement head, IEnumerable elements, double y, double x1, double x2) {