Inheritance: extends PhpOffice\PhpPresentation\AbstractShape, implements PhpOffice\PhpPresentation\ComparableInterface
Example #1
0
 /**
  * Test can read
  */
 public function testConstruct()
 {
     $value = rand(1, 100);
     $object = new Line($value, $value, $value, $value);
     $this->assertEquals(Border::LINE_SINGLE, $object->getBorder()->getLineStyle());
     $this->assertEquals($value, $object->getOffsetX());
     $this->assertEquals($value, $object->getOffsetY());
     $this->assertEquals(0, $object->getWidth());
     $this->assertEquals(0, $object->getHeight());
     $this->assertInternalType('string', $object->getHashCode());
 }
Example #2
0
 /**
  * Write Line Shape
  *
  * @param  \PhpOffice\Common\XMLWriter $objWriter XML Writer
  * @param \PhpOffice\PhpPresentation\Shape\Line $shape
  * @param  int $shapeId
  */
 private function writeShapeLine(XMLWriter $objWriter, Line $shape, $shapeId)
 {
     // p:sp
     $objWriter->startElement('p:cxnSp');
     // p:nvSpPr
     $objWriter->startElement('p:nvCxnSpPr');
     // p:cNvPr
     $objWriter->startElement('p:cNvPr');
     $objWriter->writeAttribute('id', $shapeId);
     $objWriter->writeAttribute('name', '');
     $objWriter->endElement();
     // p:cNvCxnSpPr
     $objWriter->writeElement('p:cNvCxnSpPr', null);
     // p:nvPr
     $objWriter->writeElement('p:nvPr', null);
     $objWriter->endElement();
     // p:spPr
     $objWriter->startElement('p:spPr');
     // a:xfrm
     $objWriter->startElement('a:xfrm');
     if ($shape->getWidth() >= 0 && $shape->getHeight() >= 0) {
         // a:off
         $objWriter->startElement('a:off');
         $objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX()));
         $objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY()));
         $objWriter->endElement();
         // a:ext
         $objWriter->startElement('a:ext');
         $objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($shape->getWidth()));
         $objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($shape->getHeight()));
         $objWriter->endElement();
     } elseif ($shape->getWidth() < 0 && $shape->getHeight() < 0) {
         // a:off
         $objWriter->startElement('a:off');
         $objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX() + $shape->getWidth()));
         $objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY() + $shape->getHeight()));
         $objWriter->endElement();
         // a:ext
         $objWriter->startElement('a:ext');
         $objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu(-$shape->getWidth()));
         $objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu(-$shape->getHeight()));
         $objWriter->endElement();
     } elseif ($shape->getHeight() < 0) {
         $objWriter->writeAttribute('flipV', 1);
         // a:off
         $objWriter->startElement('a:off');
         $objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX()));
         $objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY() + $shape->getHeight()));
         $objWriter->endElement();
         // a:ext
         $objWriter->startElement('a:ext');
         $objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($shape->getWidth()));
         $objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu(-$shape->getHeight()));
         $objWriter->endElement();
     } elseif ($shape->getWidth() < 0) {
         $objWriter->writeAttribute('flipV', 1);
         // a:off
         $objWriter->startElement('a:off');
         $objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX() + $shape->getWidth()));
         $objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY()));
         $objWriter->endElement();
         // a:ext
         $objWriter->startElement('a:ext');
         $objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu(-$shape->getWidth()));
         $objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($shape->getHeight()));
         $objWriter->endElement();
     }
     $objWriter->endElement();
     // a:prstGeom
     $objWriter->startElement('a:prstGeom');
     $objWriter->writeAttribute('prst', 'line');
     $objWriter->endElement();
     if ($shape->getBorder()->getLineStyle() != Border::LINE_NONE) {
         $this->writeBorder($objWriter, $shape->getBorder(), '');
     }
     $objWriter->endElement();
     $objWriter->endElement();
 }
Example #3
0
 /**
  * Write the default style information for a Line shape.
  *
  * @param XMLWriter $objWriter
  * @param Line $shape
  */
 public function writeLineStyle(XMLWriter $objWriter, Line $shape)
 {
     // style:style
     $objWriter->startElement('style:style');
     $objWriter->writeAttribute('style:name', 'gr' . $this->shapeId);
     $objWriter->writeAttribute('style:family', 'graphic');
     $objWriter->writeAttribute('style:parent-style-name', 'standard');
     // style:graphic-properties
     $objWriter->startElement('style:graphic-properties');
     $objWriter->writeAttribute('draw:fill', 'none');
     switch ($shape->getBorder()->getLineStyle()) {
         case Border::LINE_NONE:
             $objWriter->writeAttribute('draw:stroke', 'none');
             break;
         case Border::LINE_SINGLE:
             $objWriter->writeAttribute('draw:stroke', 'solid');
             break;
         default:
             $objWriter->writeAttribute('draw:stroke', 'none');
             break;
     }
     $objWriter->writeAttribute('svg:stroke-color', '#' . $shape->getBorder()->getColor()->getRGB());
     $objWriter->writeAttribute('svg:stroke-width', Text::numberFormat(CommonDrawing::pixelsToCentimeters(CommonDrawing::pointsToPixels($shape->getBorder()->getLineWidth())), 3) . 'cm');
     $objWriter->endElement();
     $objWriter->endElement();
 }