setName('Verdana')->setSize(10); $width = Font::getTextWidthPixelsApprox('n', $font, 0); self::assertEquals(8, $width); $width = Font::getTextWidthPixelsApprox('n', $font, 45); self::assertEquals(7, $width); $width = Font::getTextWidthPixelsApprox('n', $font, -165); self::assertEquals(4, $width); } /** * @dataProvider providerCalculateApproximateColumnWidth */ public function testCalculateApproximateColumnWidth( float $expectedWidth, StyleFont $font, string $text, int $rotation, StyleFont $defaultFont, bool $filter, int $indent ): void { $columnWidth = Font::calculateColumnWidth($font, $text, $rotation, $defaultFont, $filter, $indent); self::assertEquals($expectedWidth, $columnWidth); } public function providerCalculateApproximateColumnWidth(): array { return [ [13.9966, new StyleFont(), 'Hello World', 0, new StyleFont(), false, 0], [16.2817, new StyleFont(), 'Hello World', 0, new StyleFont(), true, 0], [16.2817, new StyleFont(), 'Hello World', 0, new StyleFont(), false, 1], [18.7097, new StyleFont(), 'Hello World', 0, new StyleFont(), false, 2], [20.9949, new StyleFont(), 'Hello World', 0, new StyleFont(), false, 3], [6.9983, new StyleFont(), "Hello\nWorld", 0, new StyleFont(), false, 0], [9.2834, new StyleFont(), "Hello\nWorld", 0, new StyleFont(), true, 0], [17.5671, new StyleFont(), 'PhpSpreadsheet', 0, new StyleFont(), false, 0], [19.8523, new StyleFont(), 'PhpSpreadsheet', 0, new StyleFont(), false, 1], ]; } }