private function injectBoundary(Container $container, $yStart = 0)
 {
     $parent = $container->getParent();
     $point = $parent->getFirstPoint();
     $boundary = new Boundary();
     $boundary->setNext($point->translate(0, $yStart))->setNext($point->translate($container->getWidth(), $yStart))->setNext($point->translate($container->getWidth(), $yStart + $container->getHeight()))->setNext($point->translate(0, $yStart + $container->getHeight()))->close();
     $this->invokeMethod($container, 'setBoundary', array($boundary));
 }
Ejemplo n.º 2
0
 public function getWidth()
 {
     $width = parent::getWidth();
     if ($width === null) {
         $width = 0;
     }
     return $width;
 }
 /**
  * @test
  */
 public function drawingInSmallerContainer()
 {
     $page = new Page();
     $height = 100;
     $width = 120;
     $imagePath = 'image/path';
     $imageResource = $this->createImageResourceMock($width, $height);
     $this->document->expects($this->atLeastOnce())->method('createImage')->with($imagePath)->will($this->returnValue($imageResource));
     $image = new Image(array('src' => $imagePath));
     $container = new Container(array('width' => (int) ($width * 0.7), 'height' => (int) ($height * 0.5)));
     $container->add($image);
     $this->formatter->format($image, $this->document);
     $this->assertEquals($container->getHeight(), $image->getHeight());
     $this->assertTrue($container->getWidth() > $image->getWidth());
 }
Ejemplo n.º 4
0
 /**
  * @return int Width with horizontal margins
  */
 public function getRealWidth()
 {
     return parent::getWidth();
 }
 private function translateProductOfBroke(Container $productOfBroke, Container $originalContainer)
 {
     $columnableContainer = $originalContainer->getParent();
     $numberOfContainers = count($columnableContainer->getChildren());
     $numberOfColumns = $columnableContainer->getAttribute('number-of-columns');
     $isInTheSameRowAsOriginalContainer = $numberOfContainers % $numberOfColumns != 1;
     if ($isInTheSameRowAsOriginalContainer) {
         $xCoordTranslate = $originalContainer->getWidth() + $columnableContainer->getAttribute('margin-between-columns');
         $firstPoint = $originalContainer->getFirstPoint()->translate($xCoordTranslate, 0);
     } else {
         $xCoordTranslate = $numberOfColumns * $originalContainer->getWidth() + ($numberOfColumns - 1) * $columnableContainer->getAttribute('margin-between-columns');
         $firstPoint = $originalContainer->getDiagonalPoint()->translate(-$xCoordTranslate, 0);
     }
     $xCoordTranslate = $firstPoint->getX() - $productOfBroke->getFirstPoint()->getX();
     $yCoordTranslate = $productOfBroke->getFirstPoint()->getY() - $firstPoint->getY();
     $productOfBroke->translate($xCoordTranslate, $yCoordTranslate);
 }