You are here

public function PHPExcel_Writer_Excel2007_Drawing::_writeDrawing in Loft Data Grids 6.2

Same name and namespace in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php \PHPExcel_Writer_Excel2007_Drawing::_writeDrawing()

* Write drawings to XML format * *

Parameters

PHPExcel_Shared_XMLWriter $objWriter XML Writer: * @param PHPExcel_Worksheet_BaseDrawing $pDrawing * @param int $pRelationId * @throws PHPExcel_Writer_Exception

1 call to PHPExcel_Writer_Excel2007_Drawing::_writeDrawing()
PHPExcel_Writer_Excel2007_Drawing::writeDrawings in vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php
* Write drawings to XML format * *

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Drawing.php, line 172

Class

PHPExcel_Writer_Excel2007_Drawing
PHPExcel_Writer_Excel2007_Drawing

Code

public function _writeDrawing(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet_BaseDrawing $pDrawing = null, $pRelationId = -1) {
  if ($pRelationId >= 0) {

    // xdr:oneCellAnchor
    $objWriter
      ->startElement('xdr:oneCellAnchor');

    // Image location
    $aCoordinates = PHPExcel_Cell::coordinateFromString($pDrawing
      ->getCoordinates());
    $aCoordinates[0] = PHPExcel_Cell::columnIndexFromString($aCoordinates[0]);

    // xdr:from
    $objWriter
      ->startElement('xdr:from');
    $objWriter
      ->writeElement('xdr:col', $aCoordinates[0] - 1);
    $objWriter
      ->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing
      ->getOffsetX()));
    $objWriter
      ->writeElement('xdr:row', $aCoordinates[1] - 1);
    $objWriter
      ->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing
      ->getOffsetY()));
    $objWriter
      ->endElement();

    // xdr:ext
    $objWriter
      ->startElement('xdr:ext');
    $objWriter
      ->writeAttribute('cx', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing
      ->getWidth()));
    $objWriter
      ->writeAttribute('cy', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing
      ->getHeight()));
    $objWriter
      ->endElement();

    // xdr:pic
    $objWriter
      ->startElement('xdr:pic');

    // xdr:nvPicPr
    $objWriter
      ->startElement('xdr:nvPicPr');

    // xdr:cNvPr
    $objWriter
      ->startElement('xdr:cNvPr');
    $objWriter
      ->writeAttribute('id', $pRelationId);
    $objWriter
      ->writeAttribute('name', $pDrawing
      ->getName());
    $objWriter
      ->writeAttribute('descr', $pDrawing
      ->getDescription());
    $objWriter
      ->endElement();

    // xdr:cNvPicPr
    $objWriter
      ->startElement('xdr:cNvPicPr');

    // a:picLocks
    $objWriter
      ->startElement('a:picLocks');
    $objWriter
      ->writeAttribute('noChangeAspect', '1');
    $objWriter
      ->endElement();
    $objWriter
      ->endElement();
    $objWriter
      ->endElement();

    // xdr:blipFill
    $objWriter
      ->startElement('xdr:blipFill');

    // a:blip
    $objWriter
      ->startElement('a:blip');
    $objWriter
      ->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    $objWriter
      ->writeAttribute('r:embed', 'rId' . $pRelationId);
    $objWriter
      ->endElement();

    // a:stretch
    $objWriter
      ->startElement('a:stretch');
    $objWriter
      ->writeElement('a:fillRect', null);
    $objWriter
      ->endElement();
    $objWriter
      ->endElement();

    // xdr:spPr
    $objWriter
      ->startElement('xdr:spPr');

    // a:xfrm
    $objWriter
      ->startElement('a:xfrm');
    $objWriter
      ->writeAttribute('rot', PHPExcel_Shared_Drawing::degreesToAngle($pDrawing
      ->getRotation()));
    $objWriter
      ->endElement();

    // a:prstGeom
    $objWriter
      ->startElement('a:prstGeom');
    $objWriter
      ->writeAttribute('prst', 'rect');

    // a:avLst
    $objWriter
      ->writeElement('a:avLst', null);
    $objWriter
      ->endElement();

    //						// a:solidFill
    //						$objWriter->startElement('a:solidFill');
    //							// a:srgbClr
    //							$objWriter->startElement('a:srgbClr');
    //							$objWriter->writeAttribute('val', 'FFFFFF');

    ///* SHADE

    //								// a:shade
    //								$objWriter->startElement('a:shade');
    //								$objWriter->writeAttribute('val', '85000');
    //								$objWriter->endElement();

    //*/

    //							$objWriter->endElement();
    //						$objWriter->endElement();

    /*
    						// a:ln
    						$objWriter->startElement('a:ln');
    						$objWriter->writeAttribute('w', '88900');
    						$objWriter->writeAttribute('cap', 'sq');

    							// a:solidFill
    							$objWriter->startElement('a:solidFill');

    								// a:srgbClr
    								$objWriter->startElement('a:srgbClr');
    								$objWriter->writeAttribute('val', 'FFFFFF');
    								$objWriter->endElement();

    							$objWriter->endElement();

    							// a:miter
    							$objWriter->startElement('a:miter');
    							$objWriter->writeAttribute('lim', '800000');
    							$objWriter->endElement();

    						$objWriter->endElement();
    */
    if ($pDrawing
      ->getShadow()
      ->getVisible()) {

      // a:effectLst
      $objWriter
        ->startElement('a:effectLst');

      // a:outerShdw
      $objWriter
        ->startElement('a:outerShdw');
      $objWriter
        ->writeAttribute('blurRad', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing
        ->getShadow()
        ->getBlurRadius()));
      $objWriter
        ->writeAttribute('dist', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing
        ->getShadow()
        ->getDistance()));
      $objWriter
        ->writeAttribute('dir', PHPExcel_Shared_Drawing::degreesToAngle($pDrawing
        ->getShadow()
        ->getDirection()));
      $objWriter
        ->writeAttribute('algn', $pDrawing
        ->getShadow()
        ->getAlignment());
      $objWriter
        ->writeAttribute('rotWithShape', '0');

      // a:srgbClr
      $objWriter
        ->startElement('a:srgbClr');
      $objWriter
        ->writeAttribute('val', $pDrawing
        ->getShadow()
        ->getColor()
        ->getRGB());

      // a:alpha
      $objWriter
        ->startElement('a:alpha');
      $objWriter
        ->writeAttribute('val', $pDrawing
        ->getShadow()
        ->getAlpha() * 1000);
      $objWriter
        ->endElement();
      $objWriter
        ->endElement();
      $objWriter
        ->endElement();
      $objWriter
        ->endElement();
    }

    /*

    						// a:scene3d
    						$objWriter->startElement('a:scene3d');

    							// a:camera
    							$objWriter->startElement('a:camera');
    							$objWriter->writeAttribute('prst', 'orthographicFront');
    							$objWriter->endElement();

    							// a:lightRig
    							$objWriter->startElement('a:lightRig');
    							$objWriter->writeAttribute('rig', 'twoPt');
    							$objWriter->writeAttribute('dir', 't');

    								// a:rot
    								$objWriter->startElement('a:rot');
    								$objWriter->writeAttribute('lat', '0');
    								$objWriter->writeAttribute('lon', '0');
    								$objWriter->writeAttribute('rev', '0');
    								$objWriter->endElement();

    							$objWriter->endElement();

    						$objWriter->endElement();
    */

    /*
    						// a:sp3d
    						$objWriter->startElement('a:sp3d');

    							// a:bevelT
    							$objWriter->startElement('a:bevelT');
    							$objWriter->writeAttribute('w', '25400');
    							$objWriter->writeAttribute('h', '19050');
    							$objWriter->endElement();

    							// a:contourClr
    							$objWriter->startElement('a:contourClr');

    								// a:srgbClr
    								$objWriter->startElement('a:srgbClr');
    								$objWriter->writeAttribute('val', 'FFFFFF');
    								$objWriter->endElement();

    							$objWriter->endElement();

    						$objWriter->endElement();
    */
    $objWriter
      ->endElement();
    $objWriter
      ->endElement();

    // xdr:clientData
    $objWriter
      ->writeElement('xdr:clientData', null);
    $objWriter
      ->endElement();
  }
  else {
    throw new PHPExcel_Writer_Exception("Invalid parameters passed.");
  }
}