code: public static function getTextWidthPixelsExact($text, \PhpOffice\PhpSpreadsheet\Style\Font $font, $rotation = 0)
      {
          if (!function_exists('imagettfbbox')) {
              throw new PhpSpreadsheetException('GD library needs to be enabled');
          }
  
          // font size should really be supplied in pixels in GD2,
          // but since GD2 seems to assume 72dpi, pixels and points are the same
          $fontFile = self::getTrueTypeFontFileFromFont($font);
          $textBox = imagettfbbox($font->getSize(), $rotation, $fontFile, $text);
  
          // Get corners positions
          $lowerLeftCornerX = $textBox[0];
          $lowerRightCornerX = $textBox[2];
          $upperRightCornerX = $textBox[4];
          $upperLeftCornerX = $textBox[6];
  
          // Consider the rotation when calculating the width
          $textWidth = max($lowerRightCornerX - $upperLeftCornerX, $upperRightCornerX - $lowerLeftCornerX);
  
          return $textWidth;
      }
docs: Get GD text width in pixels for a string of text in a certain font at a certain rotation angle.
  
  @param string $text
  @param \PhpOffice\PhpSpreadsheet\Style\Font
  @param int $rotation
  
  @throws PhpSpreadsheetException
  
  @return int