Pull request #49: RED-373: Fixed multiline annotations view in pdftron
Merge in RED/redaction-service from RED-373-2 to master * commit 'a4e012762e1adda234decc1137f221cfd70498d3': RED-373: Fixed multiline annotations view in pdftron
This commit is contained in:
commit
0f4838e60d
@ -227,7 +227,7 @@ public class AnnotationHighlightService {
|
|||||||
|
|
||||||
PDAnnotationTextMarkup annotation = new PDAnnotationTextMarkup(PDAnnotationTextMarkup.SUB_TYPE_HIGHLIGHT);
|
PDAnnotationTextMarkup annotation = new PDAnnotationTextMarkup(PDAnnotationTextMarkup.SUB_TYPE_HIGHLIGHT);
|
||||||
annotation.constructAppearances();
|
annotation.constructAppearances();
|
||||||
annotation.setRectangle(toPDRectangle(rectangles.get(0)));
|
annotation.setRectangle(toPDRectangle(rectangles));
|
||||||
annotation.setQuadPoints(toQuadPoints(rectangles));
|
annotation.setQuadPoints(toQuadPoints(rectangles));
|
||||||
if (popup) {
|
if (popup) {
|
||||||
annotation.setAnnotationName(id);
|
annotation.setAnnotationName(id);
|
||||||
@ -252,13 +252,33 @@ public class AnnotationHighlightService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private PDRectangle toPDRectangle(Rectangle rectangle) {
|
private PDRectangle toPDRectangle(List<Rectangle> rectangles) {
|
||||||
|
|
||||||
|
float lowerLeftX = Float.MAX_VALUE;
|
||||||
|
float upperRightX = 0;
|
||||||
|
float lowerLeftY = 0;
|
||||||
|
float upperRightY = Float.MAX_VALUE;
|
||||||
|
|
||||||
|
for (Rectangle rectangle : rectangles) {
|
||||||
|
if (rectangle.getTopLeft().getX() < lowerLeftX) {
|
||||||
|
lowerLeftX = rectangle.getTopLeft().getX();
|
||||||
|
}
|
||||||
|
if (rectangle.getTopLeft().getX() + rectangle.getWidth() > upperRightX) {
|
||||||
|
upperRightX = rectangle.getTopLeft().getX() + rectangle.getWidth();
|
||||||
|
}
|
||||||
|
if (rectangle.getTopLeft().getY() + rectangle.getHeight() > lowerLeftY) {
|
||||||
|
lowerLeftY = rectangle.getTopLeft().getY() + rectangle.getHeight();
|
||||||
|
}
|
||||||
|
if (rectangle.getTopLeft().getY() < upperRightY) {
|
||||||
|
upperRightY = rectangle.getTopLeft().getY();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
PDRectangle annotationPosition = new PDRectangle();
|
PDRectangle annotationPosition = new PDRectangle();
|
||||||
annotationPosition.setLowerLeftX(rectangle.getTopLeft().getX());
|
annotationPosition.setLowerLeftX(lowerLeftX);
|
||||||
annotationPosition.setLowerLeftY(rectangle.getTopLeft().getY() + rectangle.getHeight());
|
annotationPosition.setLowerLeftY(lowerLeftY);
|
||||||
annotationPosition.setUpperRightX(rectangle.getTopLeft().getX() + rectangle.getWidth());
|
annotationPosition.setUpperRightX(upperRightX);
|
||||||
annotationPosition.setUpperRightY(rectangle.getTopLeft().getY());
|
annotationPosition.setUpperRightY(upperRightY);
|
||||||
return annotationPosition;
|
return annotationPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user