コード例 #1
0
ファイル: ContainerTest.php プロジェクト: zhangxiaoliu/PHPPdf
 /**
  * @test
  */
 public function moveButNotResizeChildWithRightFloatOnResizing()
 {
     $width = 100;
     $height = 100;
     $this->node->setWidth($width);
     $this->node->setHeight($height);
     $boundary = $this->objectMother->getBoundaryStub(0, $height, $width, $height);
     $this->invokeMethod($this->node, 'setBoundary', array($boundary));
     $childWidth = 50;
     $childHeight = 100;
     $child = new Container(array('width' => $childWidth, 'height' => $childHeight, 'float' => 'right'));
     $childBoundary = $this->objectMother->getBoundaryStub($width - $childWidth, $childHeight, $childWidth, $childHeight);
     $this->invokeMethod($child, 'setBoundary', array($childBoundary));
     $this->node->add($child);
     $xResize = 20;
     $this->node->resize($xResize, 0);
     $expectedChildDiagonalXCoord = $width + $xResize;
     $this->assertEquals($expectedChildDiagonalXCoord, $child->getDiagonalPoint()->getX());
     $this->assertEquals($childWidth, $child->getWidth());
     $xResize = -40;
     $this->node->resize($xResize, 0);
     $expectedChildDiagonalXCoord = $expectedChildDiagonalXCoord + $xResize;
     $this->assertEquals($expectedChildDiagonalXCoord, $child->getDiagonalPoint()->getX());
     $this->assertEquals($childWidth, $child->getWidth());
 }
コード例 #2
0
ファイル: Issue3Test.php プロジェクト: zhangxiaoliu/PHPPdf
 /**
  * @test
  */
 public function dontIgnorePaddingBottom()
 {
     $page = new Page();
     $paddingBottom = 10;
     $leftFloatedContainerHeight = 20;
     $rightFloatedContainerHeight = 40;
     $containerHeight = $paddingBottom + $leftFloatedContainerHeight + $rightFloatedContainerHeight;
     $container = new Container();
     $container->makeAttributesSnapshot();
     $container->setPaddingBottom($paddingBottom);
     $container->setHeight($containerHeight);
     $container->setWidth($page->getWidth());
     $this->invokeMethod($container, 'setBoundary', array($this->objectMother->getBoundaryStub(0, $page->getFirstPoint()->getY(), $page->getWidth(), $containerHeight)));
     $leftFloatedContainer = new Container();
     $leftFloatedContainer->setFloat(Node::FLOAT_LEFT);
     $leftFloatedContainer->setHeight($leftFloatedContainerHeight);
     $leftFloatedContainer->setWidth(10);
     $this->invokeMethod($leftFloatedContainer, 'setBoundary', array($this->objectMother->getBoundaryStub(0, $page->getFirstPoint()->getY(), 10, $leftFloatedContainerHeight)));
     $rightFloatedContainer = new Container();
     $rightFloatedContainer->setFloat(Node::FLOAT_RIGHT);
     $rightFloatedContainer->setHeight($rightFloatedContainerHeight);
     $rightFloatedContainer->setWidth(10);
     $this->invokeMethod($rightFloatedContainer, 'setBoundary', array($this->objectMother->getBoundaryStub(0, $page->getFirstPoint()->getY() + $leftFloatedContainerHeight, 10, $rightFloatedContainerHeight)));
     $page->add($container->add($leftFloatedContainer)->add($rightFloatedContainer));
     $this->formatter->format($container, $this->document);
     $expectedHeight = $paddingBottom + $rightFloatedContainerHeight;
     $this->assertEquals($expectedHeight, $container->getHeight());
     $this->assertEquals($expectedHeight, $container->getFirstPoint()->getY() - $container->getDiagonalPoint()->getY());
 }
コード例 #3
0
 private function getContainerStub($start, $end, array $methods = array())
 {
     $stub = new Container();
     $stub->setHeight($start[1] - $end[1]);
     $stub->getBoundary()->setNext($start[0], $start[1])->setNext($end[0], $start[1])->setNext($end[0], $end[1])->setNext($start[0], $end[1])->close();
     $boundary = new Boundary();
     $boundary->setNext($start[0], $start[1])->setNext($end[0], $start[1])->setNext($end[0], $end[1])->setNext($start[0], $end[1])->close();
     return $stub;
 }
コード例 #4
0
 private function createContainers(array $heights, $parent = null)
 {
     $parent = $parent ? $parent : $this->column;
     $width = 100;
     $yStart = 0;
     $containers = array();
     foreach ($heights as $height) {
         $container = new Container();
         $container->setHeight($height);
         $container->setWidth($width);
         $parent->add($container);
         $this->injectBoundary($container, $yStart);
         $yStart += $height;
         $containers[] = $container;
     }
     return $containers;
 }
コード例 #5
0
ファイル: Page.php プロジェクト: appotter/phppdf
 public function setWatermark(Container $watermark)
 {
     $watermark->setParent($this);
     $watermark->setAttribute('vertical-align', self::VERTICAL_ALIGN_MIDDLE);
     $watermark->setHeight($this->getHeight());
     $watermark->setWidth($this->getWidth());
     $watermark->setBoundary(clone $this->getBoundary());
     $this->watermark = $watermark;
 }
コード例 #6
0
ファイル: PageTest.php プロジェクト: zhangxiaoliu/PHPPdf
 /**
  * @test
  */
 public function watermarkShouldBeInTheMiddleOfPage()
 {
     $watermark = new Container();
     $watermark->setHeight(100);
     $this->page->setWatermark($watermark);
     $this->assertEquals(Node::VERTICAL_ALIGN_MIDDLE, $watermark->getAttribute('vertical-align'));
     $this->assertEquals($this->page->getHeight(), $watermark->getHeight());
     $this->assertEquals($this->page->getWidth(), $watermark->getWidth());
 }
コード例 #7
0
 private function setDimension(ColumnableContainer $columnableContainer, Container $container)
 {
     $container->setWidth($columnableContainer->getWidth());
     $container->setHeight($columnableContainer->getHeight());
     $this->setPointsToBoundary($columnableContainer->getBoundary(), $container->getBoundary());
 }
コード例 #8
0
ファイル: ParagraphTest.php プロジェクト: zhangxiaoliu/PHPPdf
 /**
  * _____________________________
  * |                            |
  * |              ______________|
  * |_____________|              | <- breaking here
  * |                            |
  * |____________________________|
  * 
  * @test
  */
 public function breaking()
 {
     $x = 0;
     $y = 500;
     $width = 500;
     $height = 500;
     $firstPoint = Point::getInstance($x, $y);
     $paragraphParent = new Container();
     $paragraphParent->setWidth($width);
     $paragraphParent->setHeight($height);
     $paragraph = new Paragraph();
     $paragraph->setParent($paragraphParent);
     $text1 = new Text();
     $text1->getBoundary()->setNext($firstPoint)->setNext($firstPoint->translate($width, 0))->setNext($firstPoint->translate($width, 200))->setNext($firstPoint->translate($width / 2, 200))->setNext($firstPoint->translate($width / 2, 250))->setNext($firstPoint->translate(0, 250))->close();
     $text2 = new Text();
     $text2->getBoundary()->setNext($firstPoint->translate($width / 2, 200))->setNext($firstPoint->translate($width, 200))->setNext($firstPoint->translate($width, 500))->setNext($firstPoint->translate(0, 500))->setNext($firstPoint->translate(0, 250))->setNext($firstPoint->translate($width / 2, 250))->close();
     $text1->setWidth(500);
     $text1->setHeight(250);
     $text2->setWidth(500);
     $text2->setHeight(300);
     $text1->setAttribute('line-height', 100);
     $text2->setAttribute('line-height', 100);
     for ($i = 0; $i < 2; $i++) {
         $line = new Line($paragraph, 0, $i * 100);
         $part = new LinePart('', 500, 0, $text1);
         $line->addPart($part);
         $paragraph->addLine($line);
     }
     $line = new Line($paragraph, 0, 200);
     $line->addPart(new LinePart('', $width / 2, 0, $text1));
     $line->addPart(new LinePart('', $width / 2, 250, $text2));
     $paragraph->addLine($line);
     for ($i = 0; $i < 2; $i++) {
         $line = new Line($paragraph, 0, ($i + 3) * 100);
         $part = new LinePart('', 500, 0, $text2);
         $line->addPart($part);
         $paragraph->addLine($line);
     }
     $paragraph->add($text1);
     $paragraph->add($text2);
     $paragraph->getBoundary()->setNext($firstPoint)->setNext($firstPoint->translate($width, 0))->setNext($firstPoint->translate($width, 500))->setNext($firstPoint->translate(0, 500))->close();
     $paragraph->setHeight(500);
     $paragraphProduct = $paragraph->breakAt(225);
     $this->assertEquals(200, $paragraph->getHeight());
     $this->assertEquals(200, $paragraph->getFirstPoint()->getY() - $paragraph->getDiagonalPoint()->getY());
     $this->assertEquals(300, $paragraphProduct->getHeight());
     $this->assertEquals(300, $paragraphProduct->getFirstPoint()->getY() - $paragraphProduct->getDiagonalPoint()->getY());
     $this->assertTrue($paragraphProduct !== null);
     $this->assertEquals(200, $paragraph->getHeight());
     $this->assertEquals(2, count($paragraph->getLines()));
     $this->assertEquals(3, count($paragraphProduct->getLines()));
     $this->assertEquals(1, count($paragraph->getChildren()));
     $this->assertEquals(2, count($paragraphProduct->getChildren()));
     foreach ($paragraphProduct->getLines() as $i => $line) {
         $this->assertEquals($i * 100, $line->getYTranslation());
         foreach ($line->getParts() as $part) {
             //                $this->assertTrue($part->getText() !== $text1);
             //                $this->assertTrue($part->getText() !== $text2);
         }
     }
 }