PdfPageRenderer: Fix Rendering of null pages.

This commit is contained in:
2019-10-28 00:43:50 +01:00
parent 8a966049f6
commit 781f212289
2 changed files with 10 additions and 3 deletions

View File

@@ -24,15 +24,18 @@ namespace VAR.PdfTools
{ {
_page = page; _page = page;
_pdfTextExtractor = new PdfTextExtractor(_page); _pdfTextExtractor = new PdfTextExtractor(_page);
InitPage();
} }
public PdfPageRenderer(PdfTextExtractor pdfTextExtractor) public PdfPageRenderer(PdfTextExtractor pdfTextExtractor)
{ {
_pdfTextExtractor = pdfTextExtractor; _pdfTextExtractor = pdfTextExtractor;
_page = pdfTextExtractor.Page; _page = pdfTextExtractor.Page;
InitPage();
}
private void InitPage()
// Calculate page size and scale {
_pageRect = _pdfTextExtractor.GetRect(); _pageRect = _pdfTextExtractor.GetRect();
_pageWidth = (int)Math.Ceiling(_pageRect.XMax - _pageRect.XMin); _pageWidth = (int)Math.Ceiling(_pageRect.XMax - _pageRect.XMin);
_pageHeight = (int)Math.Ceiling(_pageRect.YMax - _pageRect.YMin); _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) 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 textElementX = textElement.GetX() - pageXMin;
double textElementY = textElement.GetY() - pageYMin; double textElementY = textElement.GetY() - pageYMin;
double textElementWidth = textElement.VisibleWidth; double textElementWidth = textElement.VisibleWidth;

View File

@@ -116,7 +116,10 @@ namespace VAR.PdfTools
public static PdfTextElementColumn Empty { get; } = new PdfTextElementColumn(); public static PdfTextElementColumn Empty { get; } = new PdfTextElementColumn();
private PdfTextElementColumn() { } private PdfTextElementColumn()
{
Elements = new List<PdfTextElement>();
}
public PdfTextElementColumn(PdfTextElement head, IEnumerable<PdfTextElement> elements, double y, double x1, double x2) public PdfTextElementColumn(PdfTextElement head, IEnumerable<PdfTextElement> elements, double y, double x1, double x2)
{ {