Beispiel #1
0
 /**
  * Test unit conversion functions with various numbers
  */
 public function testUnitConversions()
 {
     $values[] = 0;
     // zero value
     $values[] = rand(1, 100) / 100;
     // fraction number
     $values[] = rand(1, 100);
     // integer
     foreach ($values as $value) {
         $result = Converter::cmToTwip($value);
         $this->assertEquals($value / 2.54 * 1440, $result);
         $result = Converter::cmToInch($value);
         $this->assertEquals($value / 2.54, $result);
         $result = Converter::cmToPixel($value);
         $this->assertEquals($value / 2.54 * 96, $result);
         $result = Converter::cmToPoint($value);
         $this->assertEquals($value / 2.54 * 72, $result);
         $result = Converter::cmToEmu($value);
         $this->assertEquals(round($value / 2.54 * 96 * 9525), $result);
         $result = Converter::inchToTwip($value);
         $this->assertEquals($value * 1440, $result);
         $result = Converter::inchToCm($value);
         $this->assertEquals($value * 2.54, $result);
         $result = Converter::inchToPixel($value);
         $this->assertEquals($value * 96, $result);
         $result = Converter::inchToPoint($value);
         $this->assertEquals($value * 72, $result);
         $result = Converter::inchToEmu($value);
         $this->assertEquals(round($value * 96 * 9525), $result);
         $result = Converter::pixelToTwip($value);
         $this->assertEquals($value / 96 * 1440, $result);
         $result = Converter::pixelToCm($value);
         $this->assertEquals($value / 96 * 2.54, $result);
         $result = Converter::pixelToPoint($value);
         $this->assertEquals($value / 96 * 72, $result);
         $result = Converter::pixelToEMU($value);
         $this->assertEquals(round($value * 9525), $result);
         $result = Converter::pointToTwip($value);
         $this->assertEquals($value * 20, $result);
         $result = Converter::pointToPixel($value);
         $this->assertEquals($value / 72 * 96, $result);
         $result = Converter::pointToEMU($value);
         $this->assertEquals(round($value / 72 * 96 * 9525), $result);
         $result = Converter::emuToPixel($value);
         $this->assertEquals(round($value / 9525), $result);
         $result = Converter::degreeToAngle($value);
         $this->assertEquals((int) round($value * 60000), $result);
         $result = Converter::angleToDegree($value);
         $this->assertEquals(round($value / 60000), $result);
     }
 }
    $chart = $section->addChart($chartType, $categories, $series1);
    $chart->getStyle()->setWidth(Converter::inchToEmu(2.5))->setHeight(Converter::inchToEmu(2));
    if (in_array($chartType, $twoSeries)) {
        $chart->addSeries($categories, $series2);
    }
    if (in_array($chartType, $threeSeries)) {
        $chart->addSeries($categories, $series3);
    }
    $section->addTextBreak();
}
// 3D charts
$section = $phpWord->addSection(array('breakType' => 'continuous'));
$section->addTitle('3D charts', 1);
$section = $phpWord->addSection(array('colsNum' => 2, 'breakType' => 'continuous'));
$chartTypes = array('pie', 'bar', 'column', 'line', 'area');
$multiSeries = array('bar', 'column', 'line', 'area');
$style = array('width' => Converter::cmToEmu(5), 'height' => Converter::cmToEmu(4), '3d' => true);
foreach ($chartTypes as $chartType) {
    $section->addTitle(ucfirst($chartType), 2);
    $chart = $section->addChart($chartType, $categories, $series1, $style);
    if (in_array($chartType, $multiSeries)) {
        $chart->addSeries($categories, $series2);
        $chart->addSeries($categories, $series3);
    }
    $section->addTextBreak();
}
// Save file
echo write($phpWord, basename(__FILE__, '.php'), $writers);
if (!CLI) {
    include_once 'Sample_Footer.php';
}