Pull request #114: Fixed position problem for rotated images
Merge in RED/redaction-service from rotatedImages to master * commit 'd8e444280b5a025e19785c70c9fcbb11480b5042': Fixed position problem for rotated images
This commit is contained in:
commit
b4699caaae
@ -34,7 +34,6 @@ import org.apache.pdfbox.cos.COSName;
|
|||||||
import org.apache.pdfbox.cos.COSNumber;
|
import org.apache.pdfbox.cos.COSNumber;
|
||||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
import org.apache.pdfbox.pdmodel.PDPage;
|
import org.apache.pdfbox.pdmodel.PDPage;
|
||||||
import org.apache.pdfbox.pdmodel.common.PDRectangle;
|
|
||||||
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
|
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
|
||||||
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
|
||||||
import org.apache.pdfbox.text.PDFTextStripper;
|
import org.apache.pdfbox.text.PDFTextStripper;
|
||||||
@ -216,7 +215,7 @@ public class PDFLinesTextStripper extends PDFTextStripper {
|
|||||||
Rectangle2D rect = new Rectangle2D.Float((float) imageBounds.getX(), (float) imageBounds.getY(), (float) imageBounds
|
Rectangle2D rect = new Rectangle2D.Float((float) imageBounds.getX(), (float) imageBounds.getY(), (float) imageBounds
|
||||||
.getWidth(), (float) imageBounds.getHeight());
|
.getWidth(), (float) imageBounds.getHeight());
|
||||||
|
|
||||||
if(rect.getHeight() > 2 && rect.getWidth() > 2) {
|
if (rect.getHeight() > 2 && rect.getWidth() > 2) {
|
||||||
this.imageBounds.add(rect);
|
this.imageBounds.add(rect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -236,36 +235,13 @@ public class PDFLinesTextStripper extends PDFTextStripper {
|
|||||||
imageTransform.scale(1.0 / pdfImage.getWidth(), -1.0 / pdfImage.getHeight());
|
imageTransform.scale(1.0 / pdfImage.getWidth(), -1.0 / pdfImage.getHeight());
|
||||||
imageTransform.translate(0, -pdfImage.getHeight());
|
imageTransform.translate(0, -pdfImage.getHeight());
|
||||||
|
|
||||||
AffineTransform pageTransform = createCurrentPageTransformation();
|
AffineTransform pageTransform = new AffineTransform();
|
||||||
pageTransform.concatenate(imageTransform);
|
pageTransform.concatenate(imageTransform);
|
||||||
|
|
||||||
return pageTransform.createTransformedShape(imageBounds).getBounds2D();
|
return pageTransform.createTransformedShape(imageBounds).getBounds2D();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected AffineTransform createCurrentPageTransformation() {
|
|
||||||
|
|
||||||
PDRectangle cb = pdpage.getCropBox();
|
|
||||||
AffineTransform pageTransform = new AffineTransform();
|
|
||||||
|
|
||||||
switch (pdpage.getRotation()) {
|
|
||||||
case 90:
|
|
||||||
pageTransform.translate(cb.getHeight(), 0);
|
|
||||||
break;
|
|
||||||
case 180:
|
|
||||||
pageTransform.translate(cb.getWidth(), cb.getHeight());
|
|
||||||
break;
|
|
||||||
case 270:
|
|
||||||
pageTransform.translate(0, cb.getWidth());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
pageTransform.rotate(Math.toRadians(pdpage.getRotation()));
|
|
||||||
|
|
||||||
return pageTransform;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private float floatValue(COSBase value) {
|
private float floatValue(COSBase value) {
|
||||||
|
|
||||||
if (value instanceof COSNumber) {
|
if (value instanceof COSNumber) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user