@@ -85,6 +85,7 @@ This file is part of the iText (R) project.
85
85
import com .itextpdf .layout .property .HorizontalAlignment ;
86
86
import com .itextpdf .layout .property .Property ;
87
87
import com .itextpdf .layout .property .TransparentColor ;
88
+ import com .itextpdf .layout .property .Transform ;
88
89
import com .itextpdf .layout .property .UnitValue ;
89
90
import org .slf4j .Logger ;
90
91
import org .slf4j .LoggerFactory ;
@@ -788,7 +789,7 @@ protected boolean clipBackgroundArea(DrawContext drawContext, Rectangle outerBor
788
789
public void drawChildren (DrawContext drawContext ) {
789
790
List <IRenderer > waitingRenderers = new ArrayList <>();
790
791
for (IRenderer child : childRenderers ) {
791
- if (FloatingHelper .isRendererFloating (child ) || child .<List < String []> >getProperty (Property .TRANSFORM ) != null ) {
792
+ if (FloatingHelper .isRendererFloating (child ) || child .<Transform >getProperty (Property .TRANSFORM ) != null ) {
792
793
RootRenderer rootRenderer = getRootRenderer ();
793
794
if (rootRenderer != null && !rootRenderer .waitingDrawingElements .contains (child )) {
794
795
rootRenderer .waitingDrawingElements .add (child );
@@ -1522,7 +1523,7 @@ protected Rectangle calculateAbsolutePdfBBox() {
1522
1523
}
1523
1524
}
1524
1525
1525
- if (renderer .<List < String []> >getProperty (Property .TRANSFORM ) != null ) {
1526
+ if (renderer .<Transform >getProperty (Property .TRANSFORM ) != null ) {
1526
1527
if (renderer instanceof BlockRenderer || renderer instanceof ImageRenderer || renderer instanceof TableRenderer ) {
1527
1528
AffineTransform rotationTransform = renderer .createTransformationInsideOccupiedArea ();
1528
1529
transformPoints (contentBoxPoints , rotationTransform );
@@ -1821,43 +1822,22 @@ private AffineTransform createTransformationInsideOccupiedArea() {
1821
1822
float width = backgroundArea .getWidth ();
1822
1823
1823
1824
AffineTransform transform = AffineTransform .getTranslateInstance (-1 * (x + width / 2 ), -1 * (y + height / 2 ));
1824
- transform .preConcatenate (new AffineTransform (this .getTransformMatrix ( width , height ) ));
1825
+ transform .preConcatenate (Transform . getAffineTransform (this .< Transform > getProperty ( Property . TRANSFORM ), width , height ));
1825
1826
transform .preConcatenate (AffineTransform .getTranslateInstance (x + width / 2 , y + height / 2 ));
1826
1827
1827
1828
return transform ;
1828
1829
}
1829
1830
1830
1831
protected void beginTranformationIfApplied (PdfCanvas canvas ) {
1831
- if (this .<List < String []> >getProperty (Property .TRANSFORM ) != null ) {
1832
+ if (this .<Transform >getProperty (Property .TRANSFORM ) != null ) {
1832
1833
AffineTransform transform = createTransformationInsideOccupiedArea ();
1833
1834
canvas .saveState ().concatMatrix (transform );
1834
1835
}
1835
1836
}
1836
1837
1837
1838
protected void endTranformationIfApplied (PdfCanvas canvas ) {
1838
- if (this .<List < String []> >getProperty (Property .TRANSFORM ) != null ) {
1839
+ if (this .<Transform >getProperty (Property .TRANSFORM ) != null ) {
1839
1840
canvas .restoreState ();
1840
1841
}
1841
1842
}
1842
-
1843
- private AffineTransform getTransformMatrix (float width , float height ) {
1844
- List <String []> multipleTransform = this .<List <String []>>getProperty (Property .TRANSFORM );
1845
- AffineTransform affineTransform = new AffineTransform ();
1846
- for (int k = multipleTransform .size () - 1 ; k >=0 ; k --) {
1847
- String [] transform = multipleTransform .get (k );
1848
- float [] floats = new float [6 ];
1849
- for (int i = 0 ; i < 6 ; i ++)
1850
- if (i == 4 || i == 5 ) {
1851
- int indexOfPercent = transform [i ].indexOf ('%' );
1852
- if (indexOfPercent > 0 )
1853
- floats [i ] = Float .parseFloat (transform [i ].substring (0 , indexOfPercent )) / 100 * (i == 4 ? width : height );
1854
- else
1855
- floats [i ] = Float .parseFloat (transform [i ]);
1856
- }
1857
- else
1858
- floats [i ] = Float .parseFloat (transform [i ]);
1859
- affineTransform .preConcatenate (new AffineTransform (floats ));
1860
- }
1861
- return affineTransform ;
1862
- }
1863
1843
}
0 commit comments