You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							163 lines
						
					
					
						
							5.3 KiB
						
					
					
				
			
		
		
	
	
							163 lines
						
					
					
						
							5.3 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
 | 
						|
function GetCodepage($llcc) {
 | 
						|
	if (strlen($llcc) == 5) {
 | 
						|
		$lang = substr(strtolower($llcc),0,2);
 | 
						|
		$country = substr(strtoupper($llcc),3,2);
 | 
						|
	}
 | 
						|
	else { $lang = strtolower($llcc); $country = ''; }
 | 
						|
	$unifonts = "";
 | 
						|
	$dir = "ltr";
 | 
						|
	$spacing = "";
 | 
						|
 | 
						|
	switch($lang){
 | 
						|
	  CASE "en":
 | 
						|
	  CASE "ca":
 | 
						|
	  CASE "cy":
 | 
						|
	  CASE "da":
 | 
						|
	  CASE "de":
 | 
						|
	  CASE "es":
 | 
						|
	  CASE "eu":
 | 
						|
	  CASE "fr":
 | 
						|
	  CASE "ga":
 | 
						|
	  CASE "fi": 
 | 
						|
	  CASE "is":
 | 
						|
	  CASE "it":
 | 
						|
	  CASE "nl":
 | 
						|
	  CASE "no":
 | 
						|
	  CASE "pt":
 | 
						|
	  CASE "sv":
 | 
						|
		$cp = "win-1252";  break;
 | 
						|
 | 
						|
	  // ISO-8859-2
 | 
						|
	  CASE "cs":
 | 
						|
	  CASE "hr":
 | 
						|
	  CASE "hu":
 | 
						|
	  CASE "pl":
 | 
						|
	  CASE "ro":
 | 
						|
	  CASE "sk":
 | 
						|
	  CASE "sl":
 | 
						|
		$cp = "iso-8859-2";  break;
 | 
						|
 | 
						|
	  // ISO-8859-4
 | 
						|
	  CASE "et":
 | 
						|
	  CASE "kl":
 | 
						|
	  CASE "lt":
 | 
						|
	  CASE "lv":
 | 
						|
		$cp = "iso-8859-4";  break;
 | 
						|
 | 
						|
	  // WIN-1251
 | 
						|
	  CASE "bg":
 | 
						|
	  CASE "mk":
 | 
						|
	  CASE "ru":
 | 
						|
	  CASE "sr":
 | 
						|
	  CASE "uk":
 | 
						|
		$cp = "win-1251";  break;
 | 
						|
 | 
						|
	  // ISO-8859-9 (Turkish)
 | 
						|
	  CASE "tr": 
 | 
						|
		$cp = "iso-8859-9";  break;
 | 
						|
 | 
						|
	  // ISO-8859-7 (Greek)
 | 
						|
	  CASE "el":  
 | 
						|
		$cp = "iso-8859-7";  break;
 | 
						|
 | 
						|
	  // UTF-8
 | 
						|
	  CASE "id":
 | 
						|
	  CASE "ms":
 | 
						|
	  CASE "sh":
 | 
						|
	  CASE "sq":
 | 
						|
	  CASE "af":
 | 
						|
	  CASE "be":
 | 
						|
	  CASE "fo":
 | 
						|
	  CASE "gl":
 | 
						|
	  CASE "gv":
 | 
						|
		$cp = "UTF-8";  break;
 | 
						|
 | 
						|
	  // RTL Languages
 | 
						|
	  CASE "he":  $cp = "UTF-8"; $dir = "rtl";  $spacing = "W";  $unifonts = "dejavusans,dejavusansB,dejavusansI,dejavusansBI,dejavusanscondensed,dejavusanscondensedB,dejavusanscondensedI,dejavusanscondensedBI,freesans,freesansB,freesansI,freesansBI,freeserif,freeserifB,freeserifI,freeserifBI,freemono,freemonoB,freemonoI,freemonoBI";  break;
 | 
						|
 | 
						|
	  // Arabic
 | 
						|
	  CASE "ar":  $cp = "UTF-8"; $dir = "rtl";  $spacing = "W";  $unifonts = "dejavusans,dejavusansB,dejavusansI,dejavusansBI,dejavusanscondensed,dejavusanscondensedB,dejavusanscondensedI,dejavusanscondensedBI,ar_1_001,ar_1_002,ar_1_003,ar_1_004,ar_1_005,ar_1_006,ar_1_007,ar_2_001,ar_2_002,ar_2_003,ar_2_004,ar_k_001,ar_k_002";  break;
 | 
						|
	  CASE "fa":  $cp = "UTF-8"; $unifonts = "dejavusans,dejavusansB,dejavusansI,dejavusansBI,dejavusanscondensed,dejavusanscondensedB,dejavusanscondensedI,dejavusanscondensedBI,fa_1_001,fa_1_002";  $dir = "rtl";  $spacing = "W";  break;
 | 
						|
 | 
						|
	  CASE "ps":  $cp = "UTF-8"; $dir = "rtl"; $spacing = "W";  $unifonts = "ps_1_001"; break;
 | 
						|
	  CASE "ur":  $cp = "UTF-8"; $dir = "rtl"; $spacing = "W";  $unifonts = "ur_1_001"; break;
 | 
						|
 | 
						|
	  // Sindhi (Arabic or Devanagari)
 | 
						|
	  CASE "sd":
 | 
						|
		if ($country == "IN") { $cp = "UTF-8"; $spacing = "W"; $unifonts = "ind_hi_1_001"; }
 | 
						|
		else if ($country == "PK") { $cp = "UTF-8"; $dir = "rtl"; $spacing = "W"; $unifonts = "sd_1_001,sd_1_002"; }
 | 
						|
		else { $cp = "UTF-8"; $dir = "rtl"; $spacing = "W"; $unifonts = "sd_1_001,sd_1_002"; }
 | 
						|
		break;
 | 
						|
 | 
						|
 | 
						|
	  // INDIC 
 | 
						|
	  // Assamese
 | 
						|
	  CASE "as":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_bn_1_001"; break;
 | 
						|
	  // Bengali
 | 
						|
	  CASE "bn":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_bn_1_001"; break;
 | 
						|
	  // Gujarati
 | 
						|
	  CASE "gu":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_gu_1_001"; break;
 | 
						|
	  // Hindi (Devanagari)
 | 
						|
	  CASE "hi":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_hi_1_001"; break;
 | 
						|
	  // Kannada
 | 
						|
	  CASE "kn":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_kn_1_001"; break;
 | 
						|
	  // Kashmiri
 | 
						|
	  CASE "ks":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_hi_1_001"; break;
 | 
						|
	  // Malayalam
 | 
						|
	  CASE "ml":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_ml_1_001"; break;
 | 
						|
	  // Nepali (Devanagari)
 | 
						|
	  CASE "ne":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_hi_1_001"; break;
 | 
						|
	  // Oriya
 | 
						|
	  CASE "or":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_or_1_001"; break;
 | 
						|
	  // Punjabi (Gurmukhi)
 | 
						|
	  CASE "pa":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_pa_1_001"; break;
 | 
						|
	  // Tamil
 | 
						|
	  CASE "ta":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_ta_1_001"; break;
 | 
						|
	  // Telegu
 | 
						|
	  CASE "te":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "ind_te_1_001"; break;
 | 
						|
 | 
						|
	  // Sinhalese
 | 
						|
	  CASE "si":  $cp = "UTF-8"; $spacing = "W";  $unifonts = "freesans"; break;
 | 
						|
 | 
						|
	  // THAI
 | 
						|
	  CASE "th":  $cp = "UTF-8"; $spacing = "C";  $unifonts = "garuda,garudaB,garudaI,garudaBI,norasi,norasiB,norasiI,norasiBI,freeserif";  break;
 | 
						|
 | 
						|
	  // VIETNAMESE
 | 
						|
	  CASE "vi":  $cp = "UTF-8"; $unifonts = "dejavusans,dejavusansB,dejavusansI,dejavusansBI,dejavusanscondensed,dejavusanscondensedB,dejavusanscondensedI,dejavusanscondensedBI,freeserif"; break;
 | 
						|
 | 
						|
	  // CJK Langauges
 | 
						|
	  CASE "ja":  $cp = "SHIFT_JIS"; $spacing = "C";  break;
 | 
						|
	  CASE "ko":  $cp = "UHC"; $spacing = "C";  break;
 | 
						|
	  CASE "zh":
 | 
						|
		if ($country == "HK" || $country == "TW") { $cp = "BIG5"; $spacing = "C"; }
 | 
						|
		else if ($country == "CN") { $cp = "GBK"; $spacing = "C"; }
 | 
						|
	  	else { $cp = "GBK"; $spacing = "C"; }
 | 
						|
		break;
 | 
						|
 | 
						|
/*
 | 
						|
	  // CJK Langauges - ALTERNATIVE
 | 
						|
	  CASE "ja": 
 | 
						|
	  CASE "zh":  
 | 
						|
		$cp = "UTF-8"; $spacing = "C";  $unifonts = "zn_hannom_a"; break;
 | 
						|
	  CASE "ko":  $cp = "UTF-8"; $spacing = "C";  $unifonts = "unbatang_0613"; break;
 | 
						|
*/
 | 
						|
 | 
						|
 | 
						|
	  // Default UTF-8
 | 
						|
	  default:  $cp = "UTF-8"; break;	// mPDF 4.2 Don't need to set unifonts - will make all available if left blank
 | 
						|
							// Default spacing set to '' (i.e. mixed character/word)
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	$unifonts_arr = array();
 | 
						|
	if ($unifonts) {
 | 
						|
		$unifonts_arr = preg_split('/\s*,\s*/',$unifonts);
 | 
						|
	}
 | 
						|
	return array($cp,$unifonts_arr,$dir,$spacing);
 | 
						|
}
 | 
						|
 | 
						|
?>
 |