fix bbox for TextLine and TextBlock

This commit is contained in:
BobLd
2020-05-23 23:46:16 +01:00
committed by Eliot Jones
parent 14454184ad
commit 3ac26bb1bc
2 changed files with 19 additions and 19 deletions

View File

@@ -217,8 +217,8 @@
} }
} }
return new PdfRectangle(new PdfPoint(b, l), new PdfPoint(t, l), return new PdfRectangle(new PdfPoint(t, l), new PdfPoint(t, r),
new PdfPoint(t, r), new PdfPoint(b, r)); new PdfPoint(b, l), new PdfPoint(b, r));
} }
private PdfRectangle GetBoundingBox270(IReadOnlyList<TextLine> lines) private PdfRectangle GetBoundingBox270(IReadOnlyList<TextLine> lines)
@@ -253,8 +253,8 @@
} }
} }
return new PdfRectangle(new PdfPoint(b, l), new PdfPoint(t, l), return new PdfRectangle(new PdfPoint(t, l), new PdfPoint(t, r),
new PdfPoint(t, r), new PdfPoint(b, r)); new PdfPoint(b, l), new PdfPoint(b, r));
} }
private PdfRectangle GetBoundingBoxOther(IReadOnlyList<TextLine> lines) private PdfRectangle GetBoundingBoxOther(IReadOnlyList<TextLine> lines)
@@ -269,9 +269,9 @@
// Candidates bounding boxes // Candidates bounding boxes
var obb = Geometry.GeometryExtensions.MinimumAreaRectangle(points); var obb = Geometry.GeometryExtensions.MinimumAreaRectangle(points);
var obb1 = new PdfRectangle(obb.BottomRight, obb.BottomLeft, obb.TopLeft, obb.TopRight); var obb1 = new PdfRectangle(obb.BottomLeft, obb.TopLeft, obb.BottomRight, obb.TopRight);
var obb2 = new PdfRectangle(obb.TopRight, obb.BottomRight, obb.BottomLeft, obb.TopLeft); var obb2 = new PdfRectangle(obb.BottomRight, obb.BottomLeft, obb.TopRight, obb.TopLeft);
var obb3 = new PdfRectangle(obb.TopLeft, obb.TopRight, obb.BottomRight, obb.BottomLeft); var obb3 = new PdfRectangle(obb.TopRight, obb.BottomRight, obb.TopLeft, obb.BottomLeft);
// Find the orientation of the OBB, using the baseline angle // Find the orientation of the OBB, using the baseline angle
// Assumes line order is correct // Assumes line order is correct

View File

@@ -210,8 +210,8 @@
} }
} }
return new PdfRectangle(new PdfPoint(b, l), new PdfPoint(t, l), return new PdfRectangle(new PdfPoint(t, l), new PdfPoint(t, r),
new PdfPoint(t, r), new PdfPoint(b, r)); new PdfPoint(b, l), new PdfPoint(b, r));
} }
private PdfRectangle GetBoundingBox270(IReadOnlyList<Word> words) private PdfRectangle GetBoundingBox270(IReadOnlyList<Word> words)
@@ -246,8 +246,8 @@
} }
} }
return new PdfRectangle(new PdfPoint(b, l), new PdfPoint(t, l), return new PdfRectangle(new PdfPoint(t, l), new PdfPoint(t, r),
new PdfPoint(t, r), new PdfPoint(b, r)); new PdfPoint(b, l), new PdfPoint(b, r));
} }
private static PdfRectangle GetBoundingBoxOther(IReadOnlyList<Word> words) private static PdfRectangle GetBoundingBoxOther(IReadOnlyList<Word> words)
@@ -292,11 +292,11 @@
var transformedPoints = words.SelectMany(r => new[] var transformedPoints = words.SelectMany(r => new[]
{ {
r.BoundingBox.BottomLeft, r.BoundingBox.BottomLeft,
r.BoundingBox.BottomRight, r.BoundingBox.BottomRight,
r.BoundingBox.TopLeft, r.BoundingBox.TopLeft,
r.BoundingBox.TopRight r.BoundingBox.TopRight
}).Distinct().Select(p => inverseRotation.Transform(p)); }).Distinct().Select(p => inverseRotation.Transform(p));
var aabb = new PdfRectangle(transformedPoints.Min(p => p.X), var aabb = new PdfRectangle(transformedPoints.Min(p => p.X),
transformedPoints.Min(p => p.Y), transformedPoints.Min(p => p.Y),
transformedPoints.Max(p => p.X), transformedPoints.Max(p => p.X),
@@ -310,9 +310,9 @@
// Candidates bounding boxes // Candidates bounding boxes
var obb = rotateBack.Transform(aabb); var obb = rotateBack.Transform(aabb);
var obb1 = new PdfRectangle(obb.BottomRight, obb.BottomLeft, obb.TopLeft, obb.TopRight); var obb1 = new PdfRectangle(obb.BottomLeft, obb.TopLeft, obb.BottomRight, obb.TopRight);
var obb2 = new PdfRectangle(obb.TopRight, obb.BottomRight, obb.BottomLeft, obb.TopLeft); var obb2 = new PdfRectangle(obb.BottomRight, obb.BottomLeft, obb.TopRight, obb.TopLeft);
var obb3 = new PdfRectangle(obb.TopLeft, obb.TopRight, obb.BottomRight, obb.BottomLeft); var obb3 = new PdfRectangle(obb.TopRight, obb.BottomRight, obb.TopLeft, obb.BottomLeft);
// Find the orientation of the OBB, using the baseline angle // Find the orientation of the OBB, using the baseline angle
// Assumes word order is correct // Assumes word order is correct