1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace ComboStrap; 4*04fd306cSNickeau 5*04fd306cSNickeau/** 6*04fd306cSNickeau * Utility font class 7*04fd306cSNickeau * 8*04fd306cSNickeau * 9*04fd306cSNickeau * Font Library to get info on font 10*04fd306cSNickeau * https://github.com/dompdf/php-font-lib 11*04fd306cSNickeau * 12*04fd306cSNickeau * Linux: 13*04fd306cSNickeau * * Conf file: `/etc/fonts/fonts.conf` 14*04fd306cSNickeau * * Command: `fc-list` command 15*04fd306cSNickeau * * font for a language: `fc-list :lang=fr` 16*04fd306cSNickeau * * font family name: `fc-list : family | sort | uniq` 17*04fd306cSNickeau * 18*04fd306cSNickeau * Windows: 19*04fd306cSNickeau * * Location: 'c:\windows\fonts' 20*04fd306cSNickeau * 21*04fd306cSNickeau */ 22*04fd306cSNickeauclass Font 23*04fd306cSNickeau{ 24*04fd306cSNickeau 25*04fd306cSNickeau 26*04fd306cSNickeau /** 27*04fd306cSNickeau * There is no default system font 28*04fd306cSNickeau * This function will return a sort of default font 29*04fd306cSNickeau * for the operating system 30*04fd306cSNickeau * @return LocalPath 31*04fd306cSNickeau */ 32*04fd306cSNickeau static public function getSystemFont(): LocalPath 33*04fd306cSNickeau { 34*04fd306cSNickeau if (Os::isWindows()) { 35*04fd306cSNickeau return self::getWindowsFontDirectory()->resolve('Arial.ttf'); 36*04fd306cSNickeau } else { 37*04fd306cSNickeau return LocalPath::createFromPathString('/usr/share/fonts/liberation/LiberationSans-Regular.ttf'); 38*04fd306cSNickeau } 39*04fd306cSNickeau } 40*04fd306cSNickeau 41*04fd306cSNickeau /** 42*04fd306cSNickeau * @return LocalPath - the font locale path 43*04fd306cSNickeau * https://github.com/liberationfonts/liberation-fonts/releases 44*04fd306cSNickeau */ 45*04fd306cSNickeau static public function getLiberationSansFontRegularPath(): LocalPath 46*04fd306cSNickeau { 47*04fd306cSNickeau return WikiPath::createComboResource(":fonts:LiberationSans-Regular.ttf")->toLocalPath(); 48*04fd306cSNickeau } 49*04fd306cSNickeau 50*04fd306cSNickeau static public function getLiberationSansFontBoldPath(): LocalPath 51*04fd306cSNickeau { 52*04fd306cSNickeau return WikiPath::createComboResource(":fonts:LiberationSans-Bold.ttf")->toLocalPath(); 53*04fd306cSNickeau } 54*04fd306cSNickeau 55*04fd306cSNickeau static public function printWindowsTrueTypeFont() 56*04fd306cSNickeau { 57*04fd306cSNickeau $path = self::getWindowsFontDirectory(); 58*04fd306cSNickeau foreach (FileSystems::getChildrenLeaf($path) as $path) { 59*04fd306cSNickeau $extension = strtolower($path->getExtension()); 60*04fd306cSNickeau if ($extension === "ttf") { 61*04fd306cSNickeau echo $path->toAbsoluteId() . "\n"; 62*04fd306cSNickeau } 63*04fd306cSNickeau } 64*04fd306cSNickeau } 65*04fd306cSNickeau 66*04fd306cSNickeau public static function getWindowsFontDirectory(): LocalPath 67*04fd306cSNickeau { 68*04fd306cSNickeau return LocalPath::createFromPathString('c:\windows\fonts'); 69*04fd306cSNickeau } 70*04fd306cSNickeau} 71