/** Concatenates a transformation to the current transformation
  * matrix.
  * @param af the transformation
  */
 public void Transform(AffineTransform af) {
     if (inText && IsTagged()) {
         EndText();
     }
     double[] matrix = new double[6];
     af.GetMatrix(matrix);
     state.CTM.Concatenate(af);
     content.Append(matrix[0]).Append(' ').Append(matrix[1]).Append(' ').Append(matrix[2]).Append(' ');
     content.Append(matrix[3]).Append(' ').Append(matrix[4]).Append(' ').Append(matrix[5]).Append(" cm").Append_i(separator);
 }
     /**
      * adds a template with the given matrix.
      * @param template template to add
      * @param transform transform to apply to the template prior to adding it.
      * @param tagContent <code>true</code> - template content will be tagged(all that will be added after), <code>false</code> - only a Do operator will be tagged.
      *                   taken into account only if <code>isTagged()</code> - <code>true</code>.
      */
     public void AddTemplate(PdfTemplate template, AffineTransform transform, bool tagContent) {
 	    double[] matrix = new double[6];
 	    transform.GetMatrix(matrix);
 	    AddTemplate(template, (float) matrix[0], (float) matrix[1], (float) matrix[2],
                 (float) matrix[3], (float) matrix[4], (float) matrix[5], tagContent);
     }
     /**
      * Changes the text matrix.
      * <P>
      * @param transform overwrite the current text matrix with this one
      */
     public void SetTextMatrix(AffineTransform transform) {
 	    double[] matrix = new double[6];
 	    transform.GetMatrix(matrix);
 	    SetTextMatrix((float)matrix[0], (float)matrix[1], (float)matrix[2],
                 (float)matrix[3], (float)matrix[4], (float)matrix[5]);
     }
     /**
      * Concatenate a matrix to the current transformation matrix.
      * @param transform added to the Current Transformation Matrix
      */
     public void ConcatCTM(AffineTransform transform) {
 	    double[] matrix = new double[6];
 	    transform.GetMatrix(matrix);
 	    ConcatCTM((float) matrix[0], (float) matrix[1], (float) matrix[2],
                 (float) matrix[3], (float) matrix[4], (float) matrix[5]);
     }
     /**
      * adds an image with the given matrix.
      * @param image image to add
      * @param transform transform to apply to the template prior to adding it.
      */
     public void AddImage(Image image, AffineTransform transform) {
 	    double[] matrix = new double[6];
 	    transform.GetMatrix(matrix);
 	    AddImage(image, (float)matrix[0], (float)matrix[1], (float)matrix[2],
 			      (float)matrix[3], (float)matrix[4], (float) matrix[5], false);
     }