mirror of
https://github.com/UglyToad/PdfPig.git
synced 2025-10-14 02:44:58 +08:00
fix bbox for TextLine and TextBlock
This commit is contained in:
@@ -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
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user