Merge
This commit is contained in:
parent
789427b75d
commit
342e26f679
@ -21,7 +21,7 @@ NuSoap 0.9.5 LGPL 2.1+ Yes
|
||||
odtPHP 1.0.1 GPL-2+ b Yes Library to build/edit ODT files
|
||||
PHPExcel 1.7.8 LGPL-2.1+ Yes Read/Write XLS files, read ODS files
|
||||
PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests
|
||||
TCPDF 6.0.021 LGPL-3+ Yes PDF generation
|
||||
TCPDF 6.0.093 LGPL-3+ Yes PDF generation
|
||||
|
||||
JS libraries:
|
||||
jQuery 1.8.2 MIT License Yes JS library
|
||||
|
||||
@ -252,6 +252,8 @@ Fix: Missing include files.lib.php in some pages that use dol_delete_recursive
|
||||
Fix: [ bug #1558 ] Product/service edit page title shows new Ref instead of old ref.
|
||||
Fix: [ bug #1553 ] Saving User displays setup removes menu.
|
||||
Fix: [ bug #1544 ] Can remove date from invoice
|
||||
Fix: list event view lost type event filter
|
||||
Fix: Add code save on create event
|
||||
|
||||
***** ChangeLog for 3.5.4 compared to 3.5.3 *****
|
||||
Fix: Hide title of event when agenda module disabled.
|
||||
|
||||
@ -74,7 +74,7 @@ class Categorie extends CommonObject
|
||||
function fetch($id,$label='')
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
||||
// Check parameters
|
||||
if (empty($id) && empty($label)) return -1;
|
||||
|
||||
@ -1151,11 +1151,11 @@ class Categorie extends CommonObject
|
||||
$cats = array();
|
||||
|
||||
$typeid=-1; $table='';;
|
||||
if ($type == '0' || $type == 'product') { $typeid=0; $table='product'; $type='product'; }
|
||||
if ($type == '0' || $type == 'product') { $typeid=0; $table='product'; $type='product'; }
|
||||
else if ($type == '1' || $type == 'supplier') { $typeid=1; $table='societe'; $type='fournisseur'; }
|
||||
else if ($type == '2' || $type == 'customer') { $typeid=2; $table='societe'; $type='societe'; }
|
||||
else if ($type == '3' || $type == 'member') { $typeid=3; $table='member'; $type='member'; }
|
||||
else if ($type == '4' || $type == 'contact') { $typeid=4; $table='socpeople'; $type='contact'; }
|
||||
else if ($type == '4' || $type == 'contact') { $typeid=4; $table='socpeople'; $type='contact'; }
|
||||
|
||||
$sql = "SELECT ct.fk_categorie, c.label";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."categorie_".$type." as ct, ".MAIN_DB_PREFIX."categorie as c";
|
||||
|
||||
@ -140,6 +140,7 @@ class ActionComm extends CommonObject
|
||||
if ($result > 0)
|
||||
{
|
||||
$this->type_id=$cactioncomm->id;
|
||||
$this->code=$cactioncomm->code;
|
||||
}
|
||||
else if ($result == 0)
|
||||
{
|
||||
|
||||
@ -2220,7 +2220,7 @@ if ($action == 'create')
|
||||
|
||||
// Payment mode
|
||||
print '<tr><td>' . $langs->trans('PaymentMode') . '</td><td colspan="2">';
|
||||
$form->select_types_paiements(isset($_POST['mode_reglement_id']) ? $_POST['mode_reglement_id'] : $mode_reglement_id, 'mode_reglement_id');
|
||||
$form->select_types_paiements(isset($_POST['mode_reglement_id']) ? $_POST['mode_reglement_id'] : $mode_reglement_id, 'mode_reglement_id', 'CRDT');
|
||||
print '</td></tr>';
|
||||
|
||||
// Bank Account
|
||||
@ -3181,10 +3181,13 @@ if ($action == 'create')
|
||||
print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmode&facid=' . $object->id . '">' . img_edit($langs->trans('SetMode'), 1) . '</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editmode') {
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
|
||||
} else {
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->mode_reglement_id, 'none');
|
||||
if ($action == 'editmode')
|
||||
{
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?facid='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT');
|
||||
}
|
||||
else
|
||||
{
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?facid='.$object->id, $object->mode_reglement_id, 'none', 'CRDT');
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
@ -1216,10 +1216,18 @@ class BonPrelevement extends CommonObject
|
||||
|
||||
|
||||
/**
|
||||
<<<<<<< HEAD
|
||||
* Generate a withdrawal file. Generation Formats:
|
||||
* European countries: SEPA
|
||||
* Others: Warning message
|
||||
* File is generated with name this->filename
|
||||
=======
|
||||
* Generate a withdrawal file.
|
||||
* Generation Formats:
|
||||
* - Europe: SEPA (France: CFONB no more supported, Spain: AEB19 if external module EsAEB is enabled)
|
||||
* - Others countries: Warning message
|
||||
* File is generated with name this->filename
|
||||
>>>>>>> refs/remotes/origin/3.6
|
||||
*
|
||||
* @return int 0 if OK, <0 if KO
|
||||
*/
|
||||
@ -1340,7 +1348,7 @@ class BonPrelevement extends CommonObject
|
||||
fputs($this->file, ' </PmtInf>'.$CrLf);
|
||||
fputs($this->file, ' </CstmrDrctDbtInitn>'.$CrLf);
|
||||
fputs($this->file, '</Document>'.$CrLf);
|
||||
|
||||
|
||||
$sql = "SELECT pl.amount";
|
||||
$sql.= " FROM";
|
||||
$sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,";
|
||||
@ -1349,14 +1357,14 @@ class BonPrelevement extends CommonObject
|
||||
$sql.= " WHERE pl.fk_prelevement_bons = ".$this->id;
|
||||
$sql.= " AND pl.rowid = pf.fk_prelevement_lignes";
|
||||
$sql.= " AND pf.fk_facture = f.rowid";
|
||||
|
||||
|
||||
//Lines
|
||||
$i = 0;
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $this->db->num_rows($resql);
|
||||
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
@ -1504,7 +1512,7 @@ class BonPrelevement extends CommonObject
|
||||
* @param string $row_bic rib.bic AS bic,
|
||||
* @param string $row_datec soc.datec,
|
||||
* @param string $row_drum soc.rowid AS drum
|
||||
* @return void
|
||||
* @return string Return string with SEPA part DrctDbtTxInf
|
||||
*/
|
||||
function EnregDestinataireSEPA($row_code_client, $row_nom, $row_address, $row_zip, $row_town, $row_country_code, $row_cb, $row_cg, $row_cc, $row_somme, $row_facnumber, $row_idfac, $row_iban, $row_bic, $row_datec, $row_drum)
|
||||
{
|
||||
@ -1528,15 +1536,15 @@ class BonPrelevement extends CommonObject
|
||||
$XML_DEBITOR .=' </DrctDbtTx>'.$CrLf;
|
||||
$XML_DEBITOR .=' <DbtrAgt>'.$CrLf;
|
||||
$XML_DEBITOR .=' <FinInstnId>'.$CrLf;
|
||||
$XML_DEBITOR .=' <BIC>'.$row_iban.'</BIC>'.$CrLf;
|
||||
$XML_DEBITOR .=' <BIC>'.$row_bic.'</BIC>'.$CrLf;
|
||||
$XML_DEBITOR .=' </FinInstnId>'.$CrLf;
|
||||
$XML_DEBITOR .=' </DbtrAgt>'.$CrLf;
|
||||
$XML_DEBITOR .=' <Dbtr>'.$CrLf;
|
||||
$XML_DEBITOR .=' <Nm>'.strtoupper($row_nom).'</Nm>'.$CrLf;
|
||||
$XML_DEBITOR .=' <Nm>'.strtoupper(dol_string_unaccent($row_nom)).'</Nm>'.$CrLf;
|
||||
$XML_DEBITOR .=' <PstlAdr>'.$CrLf;
|
||||
$XML_DEBITOR .=' <Ctry>'.$row_country_code.'</Ctry>'.$CrLf;
|
||||
$XML_DEBITOR .=' <AdrLine>'.strtr($row_adr, array(CHR(13) => ", ", CHR(10) => "")).'</AdrLine>'.$CrLf;
|
||||
$XML_DEBITOR .=' <AdrLine>'.$row_zip.' '.$row_town.'</AdrLine>'.$CrLf;
|
||||
$XML_DEBITOR .=' <AdrLine>'.dol_string_unaccent($row_zip.' '.$row_town).'</AdrLine>'.$CrLf;
|
||||
$XML_DEBITOR .=' </PstlAdr>'.$CrLf;
|
||||
$XML_DEBITOR .=' </Dbtr>'.$CrLf;
|
||||
$XML_DEBITOR .=' <DbtrAcct>'.$CrLf;
|
||||
@ -1619,7 +1627,8 @@ class BonPrelevement extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Write sender of request (me)
|
||||
* Write sender of request (me).
|
||||
* Note: The tag PmtInf is opened here but closed into caller
|
||||
*
|
||||
* @param string $configuration conf
|
||||
* @param date $ladate Date
|
||||
|
||||
@ -2343,8 +2343,8 @@ class Form
|
||||
dol_syslog(get_class($this)."::select_type_paiements ".$selected.", ".$htmlname.", ".$filtertype.", ".$format,LOG_DEBUG);
|
||||
|
||||
$filterarray=array();
|
||||
if ($filtertype == 'CRDT') $filterarray=array(0,2);
|
||||
elseif ($filtertype == 'DBIT') $filterarray=array(1,2);
|
||||
if ($filtertype == 'CRDT') $filterarray=array(0,2,3);
|
||||
elseif ($filtertype == 'DBIT') $filterarray=array(1,2,3);
|
||||
elseif ($filtertype != '' && $filtertype != '-1') $filterarray=explode(',',$filtertype);
|
||||
|
||||
$this->load_cache_types_paiements();
|
||||
@ -3192,12 +3192,13 @@ class Form
|
||||
/**
|
||||
* Affiche formulaire de selection des modes de reglement
|
||||
*
|
||||
* @param string $page Page
|
||||
* @param int $selected Id mode pre-selectionne
|
||||
* @param string $htmlname Name of select html field
|
||||
* @param string $page Page
|
||||
* @param int $selected Id mode pre-selectionne
|
||||
* @param string $htmlname Name of select html field
|
||||
* @param string $filtertype To filter on field type in llx_c_paiement (array('code'=>xx,'label'=>zz))
|
||||
* @return void
|
||||
*/
|
||||
function form_modes_reglement($page, $selected='', $htmlname='mode_reglement_id')
|
||||
function form_modes_reglement($page, $selected='', $htmlname='mode_reglement_id', $filtertype='')
|
||||
{
|
||||
global $langs;
|
||||
if ($htmlname != "none")
|
||||
@ -3207,7 +3208,7 @@ class Form
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
|
||||
print '<tr><td>';
|
||||
$this->select_types_paiements($selected,$htmlname);
|
||||
$this->select_types_paiements($selected,$htmlname,$filtertype);
|
||||
print '</td>';
|
||||
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
|
||||
print '</tr></table></form>';
|
||||
|
||||
@ -525,14 +525,14 @@ function dol_get_first_day_week($day,$month,$year,$gm=false)
|
||||
$tmpmonth = $prev_month;
|
||||
$tmpyear = $prev_year;
|
||||
|
||||
//Get first day of next week
|
||||
//Get first day of next week
|
||||
$tmptime=dol_mktime(12,0,0,$month,$tmpday,$year,1,0);
|
||||
$tmptime-=24*60*60*7;
|
||||
$tmparray=dol_getdate($tmptime,true);
|
||||
$prev_day = $tmparray['mday'];
|
||||
|
||||
//Check prev day of week is in same month than first day or not
|
||||
if ($prev_day>$tmpday)
|
||||
if ($prev_day > $tmpday)
|
||||
{
|
||||
$prev_month = $month-1;
|
||||
$prev_year = $year;
|
||||
|
||||
@ -390,38 +390,43 @@ function dol_string_unaccent($str)
|
||||
{
|
||||
if (utf8_check($str))
|
||||
{
|
||||
// See http://www.utf8-chartable.de/
|
||||
$string = rawurlencode($str);
|
||||
$replacements = array(
|
||||
'%C3%80' => 'A','%C3%81' => 'A',
|
||||
'%C3%88' => 'E','%C3%89' => 'E',
|
||||
'%C3%8C' => 'I','%C3%8D' => 'I',
|
||||
'%C3%92' => 'O','%C3%93' => 'O',
|
||||
'%C3%99' => 'U','%C3%9A' => 'U',
|
||||
'%C3%A0' => 'a','%C3%A1' => 'a','%C3%A2' => 'a',
|
||||
'%C3%80' => 'A','%C3%81' => 'A','%C3%82' => 'A','%C3%83' => 'A','%C3%84' => 'A','%C3%85' => 'A',
|
||||
'%C3%88' => 'E','%C3%89' => 'E','%C3%8A' => 'E','%C3%8B' => 'E',
|
||||
'%C3%8C' => 'I','%C3%8D' => 'I','%C3%8E' => 'I','%C3%8F' => 'I',
|
||||
'%C3%92' => 'O','%C3%93' => 'O','%C3%94' => 'O','%C3%95' => 'O','%C3%96' => 'O',
|
||||
'%C3%99' => 'U','%C3%9A' => 'U','%C3%9B' => 'U','%C3%9C' => 'U',
|
||||
'%C3%A0' => 'a','%C3%A1' => 'a','%C3%A2' => 'a','%C3%A3' => 'a','%C3%A4' => 'a','%C3%A5' => 'a',
|
||||
'%C3%A7' => 'c',
|
||||
'%C3%A8' => 'e','%C3%A9' => 'e','%C3%AA' => 'e','%C3%AB' => 'e',
|
||||
'%C3%AC' => 'i','%C3%AD' => 'i','%C3%AE' => 'i',
|
||||
'%C3%B2' => 'o','%C3%B3' => 'o',
|
||||
'%C3%B9' => 'u','%C3%BA' => 'u'
|
||||
'%C3%AC' => 'i','%C3%AD' => 'i','%C3%AE' => 'i','%C3%AF' => 'i',
|
||||
'%C3%B1' => 'n',
|
||||
'%C3%B2' => 'o','%C3%B3' => 'o','%C3%B4' => 'o','%C3%B5' => 'o','%C3%B6' => 'o',
|
||||
'%C3%B9' => 'u','%C3%BA' => 'u','%C3%BB' => 'u','%C3%BC' => 'u',
|
||||
'%C3%BF' => 'y'
|
||||
);
|
||||
$string=strtr($string, $replacements);
|
||||
return rawurldecode($string);
|
||||
}
|
||||
else
|
||||
{
|
||||
// See http://www.ascii-code.com/
|
||||
$string = strtr(
|
||||
$str,
|
||||
"\xC0\xC1\xC2\xC3\xC5\xC7
|
||||
"\xC0\xC1\xC2\xC3\xC4\xC5\xC7
|
||||
\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1
|
||||
\xD2\xD3\xD4\xD5\xD8\xD9\xDA\xDB\xDD
|
||||
\xE0\xE1\xE2\xE3\xE5\xE7\xE8\xE9\xEA\xEB
|
||||
\xE0\xE1\xE2\xE3\xE4\xE5\xE7\xE8\xE9\xEA\xEB
|
||||
\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF8
|
||||
\xF9\xFA\xFB\xFD\xFF",
|
||||
"AAAAAC
|
||||
\xF9\xFA\xFB\xFC\xFD\xFF",
|
||||
"AAAAAAC
|
||||
EEEEIIIIDN
|
||||
OOOOOUUUY
|
||||
aaaaaceeee
|
||||
aaaaaaceeee
|
||||
iiiidnooooo
|
||||
uuuyy"
|
||||
uuuuyy"
|
||||
);
|
||||
$string = strtr($string, array("\xC4"=>"Ae", "\xC6"=>"AE", "\xD6"=>"Oe", "\xDC"=>"Ue", "\xDE"=>"TH", "\xDF"=>"ss", "\xE4"=>"ae", "\xE6"=>"ae", "\xF6"=>"oe", "\xFC"=>"ue", "\xFE"=>"th"));
|
||||
return $string;
|
||||
|
||||
@ -1328,14 +1328,24 @@ if ($action == 'create')
|
||||
|
||||
// Payment term
|
||||
print '<tr><td class="nowrap">'.$langs->trans('PaymentConditionsShort').'</td><td colspan="2">';
|
||||
$form->select_conditions_paiements(isset($_POST['cond_reglement_id'])?$_POST['cond_reglement_id']:$cond_reglement_id,'cond_reglement_id');
|
||||
$form->select_conditions_paiements(isset($_POST['cond_reglement_id'])?$_POST['cond_reglement_id']:$cond_reglement_id, 'cond_reglement_id');
|
||||
print '</td></tr>';
|
||||
|
||||
// Payment mode
|
||||
print '<tr><td>'.$langs->trans('PaymentMode').'</td><td colspan="2">';
|
||||
$form->select_types_paiements(isset($_POST['mode_reglement_id'])?$_POST['mode_reglement_id']:$mode_reglement_id,'mode_reglement_id');
|
||||
$form->select_types_paiements(isset($_POST['mode_reglement_id'])?$_POST['mode_reglement_id']:$mode_reglement_id, 'mode_reglement_id', 'DBIT');
|
||||
print '</td></tr>';
|
||||
|
||||
// Project
|
||||
if (! empty($conf->projet->enabled)) {
|
||||
$formproject = new FormProjets($db);
|
||||
|
||||
$langs->load('projects');
|
||||
print '<tr><td>' . $langs->trans('Project') . '</td><td colspan="2">';
|
||||
$formproject->select_projects($soc->id, $projectid, 'projectid');
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Bank Account
|
||||
print '<tr><td>'.$langs->trans('BankAccount').'</td><td colspan="2">';
|
||||
$form->select_comptes($fk_account, 'fk_account', 0, '', 1);
|
||||
@ -1784,11 +1794,11 @@ else
|
||||
print '</td><td colspan="2">';
|
||||
if ($action == 'editmode')
|
||||
{
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'mode_reglement_id');
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'DBIT');
|
||||
}
|
||||
else
|
||||
{
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'none');
|
||||
$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'none', 'DBIT');
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
@ -1,3 +1,271 @@
|
||||
6.0.093 (2014-09-02)
|
||||
- Security fix: some serialize/unserialize methods were replaced with json_encode/json_decode to avoid a potential object injection with user supplied content. Thanks to ownCloud Inc. for reporting this issue.
|
||||
- K_TIMEZONE constant was added to the default configuration to supress date-time warnings.
|
||||
|
||||
6.0.092 (2014-09-01)
|
||||
- Bug item #956 "Monospaced fonts are not alignd at the baseline" was fixed.
|
||||
- Bug item #964 "Problem when changing font size" was fixed.
|
||||
- Bug item #969 "ImageSVG with radialGradient problem" was fixed.
|
||||
- sRGB.icc file was replaced with the one from the Debian package icc-profiles-free (2.0.1+dfsg-1)
|
||||
|
||||
6.0.091 (2014-08-13)
|
||||
- Issue #325"Division by zero when css fontsize equals 0" was fixed.
|
||||
|
||||
6.0.090 (2014-08-08)
|
||||
- Starting from this version TCPDF is also available in GitHub at https://github.com/tecnickcom/TCPDF
|
||||
- Function getmypid() was removed for better compatibility with shared hosting environments.
|
||||
- Support for pulling SVG stroke opacity value from RGBa color was mergeg [adf006].
|
||||
- Bug item #951 "HTML Table within TCPDF columns doesnt flow correctly on page break ..." was fixed.
|
||||
|
||||
6.0.089 (2014-07-16)
|
||||
- Bug item #948 "bottom line of rowspan cell not work correctly" was fixed.
|
||||
|
||||
6.0.088 (2014-07-09)
|
||||
- Bug item #946 "Case sensitive type check causes broken match for SVG" was fixed.
|
||||
- Bug item #945 "Imagick load doesn't account for passed data string " was fixed.
|
||||
|
||||
6.0.087 (2014-06-25)
|
||||
- A bug affecting fitcell option in Multicell was fixed.
|
||||
|
||||
6.0.086 (2014-06-20)
|
||||
- Bug item #938 "Hyphenation-dash extends outside of cell" was fixed (collateral effect).
|
||||
|
||||
6.0.085 (2014-06-19)
|
||||
- Some example images were replaced.
|
||||
- A race condition bug was fixed.
|
||||
- Bug item #938 "Hyphenation-dash extends outside of cell" was fixed.
|
||||
|
||||
6.0.084 (2014-06-13)
|
||||
- A bug related to MultiCell fitcell feature was fixed.
|
||||
- Bug item #931 "Documentation error for setPageFormat()" was fixed.
|
||||
|
||||
6.0.083 (2014-05-29)
|
||||
- Bug item #928 "setHtmlVSpace with HR element" was fixed.
|
||||
|
||||
6.0.082 (2014-05-23)
|
||||
- Bug item #926 "test statement instead of assignment used in tcpdf_fonts.php" was fixed.
|
||||
- Bug item #925 "924 transparent images bug" was fixed.
|
||||
|
||||
6.0.081 (2014-05-22)
|
||||
- Bug item #922 "writehtml tables thead repeating" was fixed.
|
||||
- Patch #71 "External and internal links, local and remote" wa applied.
|
||||
|
||||
6.0.080 (2014-05-20)
|
||||
- Bug item #921 "Fatal error in hyphenateText() function" was fixed.
|
||||
- Bug item #923 "Automatic Hyphenation error" was fixed.
|
||||
- Patch #70 "Augument TCPDFBarcode classes with ability to return raw png image data" was applied.
|
||||
|
||||
6.0.079 (2014-05-19)
|
||||
- Patch item #69 "Named destinations, HTML internal and external links" was merged.
|
||||
- Bug item #920 "hyphenateText() should not hyphenate the content of style-tags in HTML mode" was fixed.
|
||||
- Image method now trigs an error in case the cache is now writeable.
|
||||
- Fixed issue with layer default status.
|
||||
|
||||
6.0.078 (2014-05-12)
|
||||
- A warning issue in addTTFfont() method was fixed.
|
||||
- Fonts were updated to include cbbox metrics.
|
||||
|
||||
6.0.077 (2014-05-06)
|
||||
- A Datamatrix barcode bug was fixed.
|
||||
|
||||
6.0.076 (2014-05-06)
|
||||
- A bug in Datamatrix Base256 encoding was fixed.
|
||||
- Merged fix for SVG use/clip-gradient.
|
||||
- Now it is possible to prefix a page number in Link methods with the * character to avoid been changed when adding/deleting/moving pages (see example_045.php).
|
||||
|
||||
6.0.075 (2014-05-05)
|
||||
- Bug #917 "Using realtive Units like ex or em for images distort output in HTML mode" was fixed.
|
||||
|
||||
6.0.074 (2014-05-03)
|
||||
- Part of Bug #917 "Using realtive Units like ex or em for images distort output in HTML mode" was fixed.
|
||||
- Bug #915 "Problem with SVG Image using Radial Gradients" was fixed.
|
||||
|
||||
6.0.073 (2014-04-29)
|
||||
- Bug #913 "Possible bug with line-height" was fixed.
|
||||
- Bug #914 "MultiCell and FitCell" was fixed.
|
||||
- Bug #915 "Problem with SVG Image using Radial Gradients" was fixed.
|
||||
|
||||
6.0.072 (2014-04-27)
|
||||
- Deprecated curly braces substring syntax was replaced with square braces.
|
||||
|
||||
6.0.071 (2014-04-25)
|
||||
- Bug #911 "error with buffered png pics" was fixed.
|
||||
|
||||
6.0.070 (2014-04-24)
|
||||
- Bug #910 "An SVG image is being cut off (with clipping mask) when you use align options" was fixed.
|
||||
|
||||
6.0.069 (2014-04-24)
|
||||
- Datamatrix Base256 encoding was fixed.
|
||||
|
||||
6.0.068 (2014-04-22)
|
||||
- Some Datamatrix barcode bugs were fixed.
|
||||
|
||||
6.0.067 (2014-04-21)
|
||||
- startLayer() method signature was changed to include a new "lock" parameter.
|
||||
|
||||
6.0.066 (2014-04-20)
|
||||
- Bug #908 "Linebreak is not considered when getting length of the next string" was fixed.
|
||||
|
||||
6.0.065 (2014-04-10)
|
||||
- Bug #905 "RGB percentage color bug in convertHTMLColorToDec()" was fixed.
|
||||
|
||||
6.0.064 (2014-04-07)
|
||||
- Header and Footer fonts are now set by default.
|
||||
- Bug #904 "PDF corrupted" was fixed.
|
||||
|
||||
6.0.063 (2014-04-03)
|
||||
- Method TCPDF_IMAGES::_parsepng() was fixed to support transparency in Indexed images.
|
||||
|
||||
6.0.062 (2014-03-02)
|
||||
- The method startLayer() now accepts the NULL value for the $print parameter to not set the print layer option.
|
||||
|
||||
6.0.061 (2014-02-18)
|
||||
- Bug #893 "Parsing error on streamed xref for secured pdf" was fixed.
|
||||
|
||||
6.0.060 (2014-02-16)
|
||||
- Bug #891 "Error on parsing hexa fields" was fixed.
|
||||
- Bug #892 "Parsing pdf with trailing space at start" was fixed.
|
||||
|
||||
6.0.059 (2014-02-03)
|
||||
- SVG 'use' support was imporved.
|
||||
|
||||
6.0.058 (2014-01-31)
|
||||
- Bug #886 "Bugs with SVG using <defs> and <use>" was fixed.
|
||||
|
||||
6.0.057 (2014-01-26)
|
||||
- Bug #883 "Parsing error" was fixed.
|
||||
|
||||
6.0.056 (2014-01-25)
|
||||
- The automatic cache folder selection now works also with some restricted hosting environments.
|
||||
- CSS text-transform property is now supported (requires the multibyte string library for php) - see examle n. 061 (Thanks to Walter Ferraz).
|
||||
- Bug #884 "Parsing error prev tag looking for" was fixed.
|
||||
|
||||
6.0.055 (2014-01-15)
|
||||
- Bug #880 "Error detecting hX tags (h1,h2..)" was fixed
|
||||
- Bug #879 "Thead on the second page inherits style of previous tr" was fixed
|
||||
|
||||
6.0.054 (2014-01-13)
|
||||
- Bug #877 "Parenteses causing corrupt text" was fixed.
|
||||
|
||||
6.0.053 (2014-01-03)
|
||||
- Bug #876 "Cell padding should not be multiplied with number of lines in getStringHeight" was fixed.
|
||||
- Patch #68 "Empty img src attribute leads to access of uninitialized string offset" was applied.
|
||||
|
||||
6.0.052 (2013-12-12)
|
||||
- Bug #871 "Datamatrix coding" was fixed.
|
||||
|
||||
6.0.051 (2013-12-02)
|
||||
- cbbox array values in addTTFfont() were converted to integers.
|
||||
|
||||
6.0.050 (2013-12-01)
|
||||
- The method getNumLines() was extended to support hyphenation.
|
||||
- The CSS property line-height now supports non percentage values.
|
||||
|
||||
6.0.050 (2013-11-27)
|
||||
- A bug related to PNG images was fixed.
|
||||
|
||||
6.0.048 (2013-11-24)
|
||||
- SVG vars are now reset in ImageSVG() method.
|
||||
|
||||
6.0.047 (2013-11-19)
|
||||
- SVG support was extended to support some nested defs.
|
||||
|
||||
6.0.046 (2013-11-17)
|
||||
- preg_replace_callback functions were replaced to improve memory performances.
|
||||
|
||||
6.0.045 (2013-11-17)
|
||||
- Bug #862 "Parsing error on flate filter" was fixed.
|
||||
|
||||
6.0.044 (2013-11-10)
|
||||
- Bug #857 "Undefined offset error" was fixed.
|
||||
- The uniord method now uses a static cache to improve performances (thanks to Mathieu Masseboeuf for the sugegstion).
|
||||
- Two bugs in the TCPDF_FONTS class were fixed.
|
||||
|
||||
6.0.043 (2013-10-29)
|
||||
- Bug #854 "CSS instruction display" was fixed.
|
||||
|
||||
6.0.042 (2013-10-25)
|
||||
- Bug #852 "CMYK Colors Bug" was fixed.
|
||||
|
||||
6.0.041 (2013-10-21)
|
||||
- Bug #851 "Problem with images in PDF. PHP timing out" was fixed.
|
||||
|
||||
6.0.040 (2013-10-20)
|
||||
- Bug #849 "SVG import bug" was fixed.
|
||||
|
||||
6.0.039 (2013-10-13)
|
||||
- Bug #843 "Wrong call in parser" was fixed.
|
||||
- Bug #844 "Wrong object type named" was fixed.
|
||||
- Bug #845 "Parsing error on obj ref prefixed by '000000'" was fixed.
|
||||
|
||||
6.0.038 (2013-10-06)
|
||||
- Bug #841 "Division by zero warning at writeHTML a <li> tag" was fixed.
|
||||
|
||||
6.0.037 (2013-09-30)
|
||||
- Method getAllSpotColors() was added to return all spot colors.
|
||||
- Method colorRegistrationBar() was extended to automatically print all spot colors and support individual spot colors.
|
||||
- The method registrationMarkCMYK() was added to print a registration mark for CMYK colors.
|
||||
- A bug related to page groups was fixed.
|
||||
- Gradient() method now supports CMYK equivalents of spot colors.
|
||||
- Example n. 56 was updated.
|
||||
|
||||
6.0.036 (2013-09-29)
|
||||
- Methods for registration bars and crop marks were extended to support registration color (see example n. 56).
|
||||
- New default spot colors were added to tcpdf_colors.php, including the 'All' and 'None' special registration colors.
|
||||
|
||||
6.0.035 (2013-09-25)
|
||||
- TCPDF_PARSER class was improved.
|
||||
|
||||
6.0.034 (2013-09-24)
|
||||
- Bug #839 "Error in xref parsing in mixed newline chars" was fixed.
|
||||
|
||||
6.0.033 (2013-09-23)
|
||||
- Bug fix related to PNG image transparency using GD library.
|
||||
|
||||
6.0.032 (2013-09-23)
|
||||
- Bug #838 "Fatal error when imagick cannot handle the image, even though GD is available and can" was fixed.
|
||||
|
||||
6.0.031 (2013-09-18)
|
||||
- Bug #836 "Optional EOL marker before endstream" was fixed.
|
||||
- Some additional controls were added to avoid "division by zero" error with badly formatted input.
|
||||
|
||||
6.0.030 (2013-09-17)
|
||||
- Bug #835 "PDF417 and Cyrilic simbols" was fixed.
|
||||
|
||||
6.0.029 (2013-09-15)
|
||||
- Constants K_TCPDF_PARSER_THROW_EXCEPTION_ERROR and K_TCPDF_PARSER_IGNORE_DECODING_ERRORS where removed in favor of a new configuration array in the TCPDF_PARSER class.
|
||||
- The TCPDF_PARSER class can now be configured using the new $cfg parameter.
|
||||
|
||||
6.0.028 (2013-09-15)
|
||||
- A debug print_r was removed form tcpdf_parser.php.
|
||||
- TCPDF_FILTERS class now throws an exception in case of error.
|
||||
- TCPDF_PARSER class now throws an exception in case of error unless you define the constant K_TCPDF_PARSER_THROW_EXCEPTION_ERROR to false.
|
||||
- The constant K_TCPDF_PARSER_IGNORE_DECODING_ERRORS can be set to tru eto ignore decoding errors on TCPDF_PARSER.
|
||||
|
||||
6.0.027 (2013-09-14)
|
||||
- A bug in tcpdf_parser wen parsing hexadecimal strings was fixed.
|
||||
- A bug in tcpdf_parser wen looking for statxref was fixed.
|
||||
- A bug on RC4 encryption was fixed.
|
||||
|
||||
6.0.026 (2013-09-14)
|
||||
- A bug in tcpdf_parser wen decoding streams was fixed.
|
||||
|
||||
6.0.025 (2013-09-04)
|
||||
- A pregSplit() bug was fixed.
|
||||
- Improved content loading from URLs.
|
||||
- Improved font path loading.
|
||||
|
||||
6.0.024 (2013-09-02)
|
||||
- Bug #826 "addEmptySignatureAppearance issue" was fixed.
|
||||
|
||||
6.0.023 (2013-08-05)
|
||||
- GNU Freefont fonts were updated.
|
||||
- Licensing and copyright information about fonts were improved.
|
||||
- PNG image support was improved.
|
||||
|
||||
6.0.022 (2013-08-02)
|
||||
- fixing initialization problem for signature_appearance property.
|
||||
|
||||
6.0.021 (2013-07-18)
|
||||
- The bug caused by the preg_split function on some PHP 5.2.x versions was fixed.
|
||||
|
||||
|
||||
@ -8,11 +8,11 @@ http://sourceforge.net/donate/index.php?group_id=128076
|
||||
------------------------------------------------------------
|
||||
|
||||
Name: TCPDF
|
||||
Version: 6.0.021
|
||||
Release date: 2013-07-18
|
||||
Version: 6.0.093
|
||||
Release date: 2014-09-02
|
||||
Author: Nicola Asuni
|
||||
|
||||
Copyright (c) 2002-2013:
|
||||
Copyright (c) 2002-2014:
|
||||
Nicola Asuni
|
||||
Tecnick.com LTD
|
||||
www.tecnick.com
|
||||
@ -66,8 +66,8 @@ Source Code Documentation:
|
||||
Additional Documentation:
|
||||
http://www.tcpdf.org
|
||||
|
||||
License
|
||||
Copyright (C) 2002-2013 Nicola Asuni - Tecnick.com LTD
|
||||
License:
|
||||
Copyright (C) 2002-2014 Nicola Asuni - Tecnick.com LTD
|
||||
|
||||
TCPDF is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as
|
||||
@ -85,12 +85,31 @@ License
|
||||
|
||||
See LICENSE.TXT file for more information.
|
||||
|
||||
Third party fonts
|
||||
Third party fonts:
|
||||
|
||||
This library may include third party font files released with different licenses.
|
||||
These fonts are not required by TCPDF but have been included as you convenience.
|
||||
The original TTF font files have been renamed for compatibility with TCPDF and compressed using the gzcompress PHP function that uses the ZLIB data format (.z files).
|
||||
To get the original distribution archives please check the information on fonts subfolders:
|
||||
- DejaVu fonts 2.33 (Bitstream) - Copyright, License and other info: fonts/dejavu-fonts-ttf-2.33
|
||||
- GNU FreeFont (GNU-GPLv3) - Copyright, License and other info: fonts/freefont-20100919
|
||||
|
||||
All the PHP files on the fonts directory are subject to the general TCPDF license (GNU-LGPLv3),
|
||||
they do not contain any binary data but just a description of the general properties of a particular font.
|
||||
These files can be also generated on the fly using the font utilities and TCPDF methods.
|
||||
|
||||
All the original binary TTF font files have been renamed for compatibility with TCPDF and compressed using the gzcompress PHP function that uses the ZLIB data format (.z files).
|
||||
|
||||
The binary files (.z) that begins with the prefix "free" have been extracted from the GNU FreeFont collection (GNU-GPLv3).
|
||||
The binary files (.z) that begins with the prefix "pdfa" have been derived from the GNU FreeFont, so they are subject to the same license.
|
||||
For the details of Copyright, License and other information, please check the files inside the directory fonts/freefont-20120503
|
||||
Link : http://www.gnu.org/software/freefont/
|
||||
|
||||
The binary files (.z) that begins with the prefix "dejavu" have been extracted from the DejaVu fonts 2.33 (Bitstream) collection.
|
||||
For the details of Copyright, License and other information, please check the files inside the directory fonts/dejavu-fonts-ttf-2.33
|
||||
Link : http://dejavu-fonts.org
|
||||
|
||||
The binary files (.z) that begins with the prefix "ae" have been extracted from the Arabeyes.org collection (GNU-GPLv2).
|
||||
Link : http://projects.arabeyes.org/
|
||||
|
||||
ICC profile:
|
||||
TCPDF includes the sRGB.icc profile from the icc-profiles-free Debian package:
|
||||
https://packages.debian.org/source/stable/icc-profiles-free
|
||||
|
||||
|
||||
============================================================
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "tecnick.com/tcpdf",
|
||||
"version": "6.0.021",
|
||||
"version": "6.0.093",
|
||||
"homepage": "http://www.tcpdf.org/",
|
||||
"type": "library",
|
||||
"description": "TCPDF is a PHP class for generating PDF documents.",
|
||||
"description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
|
||||
"keywords": ["PDF","tcpdf","PDFD32000-2008","qrcode","datamatrix","pdf417","barcodes"],
|
||||
"license": "LGPLv3",
|
||||
"authors": [
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
//============================================================+
|
||||
// File name : tcpdf_config.php
|
||||
// Begin : 2004-06-11
|
||||
// Last Update : 2013-05-16
|
||||
// Last Update : 2014-09-02
|
||||
//
|
||||
// Description : Configuration file for TCPDF.
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2004-2013 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2004-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -36,7 +36,10 @@
|
||||
* @since 2004-10-27
|
||||
*/
|
||||
|
||||
// If you define the constant K_TCPDF_EXTERNAL_CONFIG, the following settings will be ignored.
|
||||
// IMPORTANT:
|
||||
// If you define the constant K_TCPDF_EXTERNAL_CONFIG, all the following settings will be ignored.
|
||||
// If you use the tcpdf_autoconfig.php, then you can overwrite some values here.
|
||||
|
||||
|
||||
/**
|
||||
* Installation path (/var/www/tcpdf/).
|
||||
@ -76,7 +79,7 @@
|
||||
/**
|
||||
* Cache directory for temporary files (full path).
|
||||
*/
|
||||
define ('K_PATH_CACHE', sys_get_temp_dir().'/');
|
||||
//define ('K_PATH_CACHE', '/tmp/');
|
||||
|
||||
/**
|
||||
* Generic name for a blank image.
|
||||
@ -210,10 +213,15 @@ define('K_THAI_TOPCHARS', true);
|
||||
define('K_TCPDF_CALLS_IN_HTML', true);
|
||||
|
||||
/**
|
||||
* If true adn PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution.
|
||||
* If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution.
|
||||
*/
|
||||
define('K_TCPDF_THROW_EXCEPTION_ERROR', false);
|
||||
|
||||
/**
|
||||
* Default timezone for datetime functions
|
||||
*/
|
||||
define('K_TIMEZONE', 'UTC');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -49,5 +49,6 @@ Tim May
|
||||
Valentin Stoykov
|
||||
Vasek Stodulka
|
||||
Wesley Transue
|
||||
Yoshiki Ohshima
|
||||
|
||||
$Id: AUTHORS 2461 2011-02-18 16:38:20Z ben_laenen $
|
||||
$Id: AUTHORS 2495 2011-11-14 22:56:26Z noct_dreamer $
|
||||
@ -1,3 +1,61 @@
|
||||
Changes from 2.33 to 2.34
|
||||
* Sans, SansMono, Serif: unlinked references of U+2596 for bug 50848
|
||||
(by Denis Jacquerye)
|
||||
* Sans, SansMono, Serif: added U+A7AA (by Denis Jacquerye)
|
||||
* Sans, SansMono, Serif: added U+2A6A, U+2A6B, U+2E1F based on U+223B
|
||||
(by Denis Jacquerye)
|
||||
* Sans, Serif: removed superfluous ligature definitions for ffl und ffi
|
||||
(bug 55363) (by Gee Fung Sit 薛至峰)
|
||||
* Sans, Serif: swapped glyphs for U+25D2 and U+25D3 (bug 55197)
|
||||
(by Gee Fung Sit 薛至峰)
|
||||
* Sans, Serif: added U+A740, U+A741 (by Denis Jacquerye)
|
||||
* Sans: added U+20BA Turkish Lira sign (by Denis Jacquerye)
|
||||
* Sans: replaced Georgian Asomtavruli U+10A0-U+10C5 and Mkhedruli U+10D0-U+10FC
|
||||
with new version (by Besarion Gugushvili)
|
||||
* Sans: added Georgian Nuskhuri U+2D00-U+U+2D25 (by Besarion Gugushvili)
|
||||
* Sans: added Private Use Area glyphs for Georgian U+F400-U+F441
|
||||
(by Besarion Gugushvili)
|
||||
* Sans: tweaked U+0250, U+0254 (by Denis Jacquerye)
|
||||
* Sans: adjusted hinting of U+032C-U+032D, avoiding problem on some platforms
|
||||
(by Denis Jacquerye)
|
||||
* Sans: added U+A7A0-U+A7A9, pre-1921 Latvian letters with oblique stroke
|
||||
(by Denis Jacquerye)
|
||||
* Sans: added anchors to U+2C6D (by Denis Jacquerye)
|
||||
* Sans: added cedilla anchor to some Latin characters (by Denis Jacquerye)
|
||||
* Sans: added ogonek anchor to A, E, O, U, Y (by Denis Jacquerye)
|
||||
* Sans: adjusted ogonek reference in U+0172, U+01EA, U+01EB
|
||||
(by Denis Jacquerye)
|
||||
* Sans: added anchors to U+0104, U+0105 (by Denis Jacquerye)
|
||||
* Sans: added U+1F600, U+1F611, U+1F615, U+1F617, U+1F619, U+1F61B, U+1F61F,
|
||||
U+1F626-U+1F627, U+1F62E-U+1F62F, U+1F634 (by Gee Fung Sit 薛至峰)
|
||||
* Sans: replaced U+27A1 with mirror image of U+2B05 for consistency
|
||||
(by Gee Fung Sit 薛至峰)
|
||||
* Sans: copied hints from U+14A3, U+14A7 to U+2142-U+2143
|
||||
(by Gee Fung Sit 薛至峰)
|
||||
* Sans: added Lisu block (by Gee Fung Sit 薛至峰)
|
||||
* Sans: typographical improvements to U+0166-U+0167, U+02A6, U+02AA
|
||||
(by Gee Fung Sit 薛至峰)
|
||||
* Sans: slightly change hinting of "2" to fix bug 37395 (by Ben Laenen)
|
||||
* Sans: fixed U+1444 which had wrong top dot that shouldn't be there
|
||||
(by Denis Jacquerye)
|
||||
* Sans: added anchors for diacritics to U+01B7, U+01B8, U+01B9, U+0292
|
||||
(by Denis Jacquerye)
|
||||
* Sans: added U+01B7, U+01B8 to context for case diacritics above
|
||||
* SansMono: fixed U+0574 (by Ruben Hakobian)
|
||||
* SansMono: added U+2016, U+27C2 (by Yoshiki Ohshima)
|
||||
* SansMono: added U+02CE, U+02CF (by Denis Jacquerye)
|
||||
* SansMono: added U+2148, U+27E6-U+27E7, U+2B05-U+2B0D, U+1D55A
|
||||
(by Gee Fung Sit 薛至峰)
|
||||
* Serif: added U+02BA, U+02C2-U+02C5, U+02CA-U+02CB, U+02D7, U+02F3, U+02F7,
|
||||
U+046C-U+046D, U+0476-U+0477, U+1D7C-U+1D7F, U+20B8, U+2132, U+214E, U+2C7B
|
||||
to Serif (by Gee Fung Sit 薛至峰)
|
||||
* Serif: typographic improvements to U+0194, U+01B1, U+0263, U+028A, U+02A6,
|
||||
U+02A8, U+02AA, U+02E0, U+03DC, U+1D3B, U+1D7B (by Gee Fung Sit 薛至峰)
|
||||
* Serif: added small cap versions of q, x (in italic styles), delta, theta, xi,
|
||||
sigma, phi, omega, not wired in yet (by Gee Fung Sit 薛至峰)
|
||||
* Serif: added anchors to U+0234-U+0236 (by Gee Fung Sit 薛至峰)
|
||||
* Serif: added U+02EC, U+02EF, U+02F0, U+0360 (by Denis Jacquerye)
|
||||
|
||||
Changes from 2.32 to 2.33
|
||||
|
||||
* added Old Italic block to Sans (by MaEr)
|
||||
@ -1312,4 +1370,4 @@ Changes from 0.9 to 0.9.1:
|
||||
- proper caron shape for dcaron and tcaron
|
||||
- minor visual changes
|
||||
|
||||
$Id: NEWS 2471 2011-02-27 14:25:15Z ben_laenen $
|
||||
$Id: NEWS 2535 2013-08-25 15:21:17Z moyogo $
|
||||
@ -1,4 +1,4 @@
|
||||
DejaVu fonts 2.33 (c)2004-2011 DejaVu fonts team
|
||||
DejaVu fonts 2.34 (c)2004-2013 DejaVu fonts team
|
||||
------------------------------------------------
|
||||
|
||||
The DejaVu fonts are a font family based on the Bitstream Vera Fonts
|
||||
@ -56,4 +56,4 @@ U+213C-U+2140, U+2295-U+2298, U+2308-U+230B, U+26A2-U+26B1, U+2701-U+2704,
|
||||
U+2706-U+2709, U+270C-U+274B, U+2758-U+275A, U+2761-U+2775, U+2780-U+2794,
|
||||
U+2798-U+27AF, U+27B1-U+27BE, U+FB05-U+FB06
|
||||
|
||||
$Id: README 2471 2011-02-27 14:25:15Z ben_laenen $
|
||||
$Id: README 2535 2013-08-25 15:21:17Z moyogo $
|
||||
@ -1,5 +1,5 @@
|
||||
This is the language coverage file for DejaVu fonts
|
||||
($Id$)
|
||||
($Id: langcover.txt 2538 2013-08-25 16:02:56Z moyogo $)
|
||||
|
||||
Sans Serif Sans Mono
|
||||
aa Afar 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
@ -8,13 +8,13 @@ af Afrikaans 100% (69/69) 100% (69/69)
|
||||
ak Akan 100% (73/73) 100% (73/73) 100% (73/73)
|
||||
am Amharic (0/264) (0/264) (0/264)
|
||||
an Aragonese 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
ar Arabic 100% (125/125) (0/125) 100% (125/125)
|
||||
ar Arabic 100% (36/36) (0/36) 100% (36/36)
|
||||
as Assamese (0/64) (0/64) (0/64)
|
||||
ast Asturian/Bable/Leonese/Asturleonese 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
ast Asturian/Bable/Leonese/Asturleonese 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
av Avaric 100% (67/67) 100% (67/67) 100% (67/67)
|
||||
ay Aymara 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
az-az Azerbaijani in Azerbaijan 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
az-ir Azerbaijani in Iran 100% (130/130) (0/130) 100% (130/130)
|
||||
az-ir Azerbaijani in Iran 100% (40/40) (0/40) 100% (40/40)
|
||||
ba Bashkir 100% (82/82) 100% (82/82) 97% (80/82)
|
||||
be Byelorussian 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
ber-dz Berber in Algeria 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
@ -28,6 +28,7 @@ bm Bambara 100% (60/60) 100% (60/60)
|
||||
bn Bengali (0/63) (0/63) (0/63)
|
||||
bo Tibetan (0/95) (0/95) (0/95)
|
||||
br Breton 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
brx Bodo (Devanagari script) (0/82) (0/82) (0/82)
|
||||
bs Bosnian 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
bua Buriat (Buryat) 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
byn Blin/Bilin (0/255) (0/255) (0/255)
|
||||
@ -40,11 +41,12 @@ co Corsican 100% (84/84) 100% (84/84)
|
||||
crh Crimean Tatar/Crimean Turkish 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
cs Czech 100% (82/82) 100% (82/82) 100% (82/82)
|
||||
csb Kashubian 100% (74/74) 100% (74/74) 100% (74/74)
|
||||
cu Old Church Slavonic 100% (103/103) 86% (89/103) 78% (81/103)
|
||||
cu Old Church Slavonic 100% (103/103) 90% (93/103) 78% (81/103)
|
||||
cv Chuvash 100% (74/74) 100% (74/74) 100% (74/74)
|
||||
cy Welsh 100% (78/78) 100% (78/78) 100% (78/78)
|
||||
da Danish 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
de German 100% (59/59) 100% (59/59) 100% (59/59)
|
||||
doi Dogri (0/85) (0/85) (0/85)
|
||||
dv Divehi/Dhivehi/Maldivian (0/49) (0/49) (0/49)
|
||||
dz Dzongkha (0/95) (0/95) (0/95)
|
||||
ee Ewe 100% (99/99) 100% (99/99) 100% (99/99)
|
||||
@ -54,7 +56,7 @@ eo Esperanto 100% (64/64) 100% (64/64)
|
||||
es Spanish 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
et Estonian 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
eu Basque 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
fa Persian 100% (129/129) (0/129) 100% (129/129)
|
||||
fa Persian 100% (40/40) (0/40) 100% (40/40)
|
||||
fat Fanti 100% (73/73) 100% (73/73) 100% (73/73)
|
||||
ff Fulah (Fula) 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
fi Finnish 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
@ -107,7 +109,7 @@ kn Kannada (0/70) (0/70)
|
||||
ko Korean (0/2443) (0/2443) (0/2443)
|
||||
kok Kokani (Devanagari script) (0/68) (0/68) (0/68)
|
||||
kr Kanuri 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
ks Kashmiri 98% (143/145) (0/145) 97% (141/145)
|
||||
ks Kashmiri 78% (26/33) (0/33) 69% (23/33)
|
||||
ku-am Kurdish in Armenia 100% (64/64) 100% (64/64) 100% (64/64)
|
||||
ku-iq Kurdish in Iraq 100% (32/32) (0/32) 87% (28/32)
|
||||
ku-ir Kurdish in Iran 100% (32/32) (0/32) 87% (28/32)
|
||||
@ -118,7 +120,7 @@ kw Cornish 100% (64/64) 100% (64/64)
|
||||
kwm Kwambi 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
ky Kirgiz 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
la Latin 100% (68/68) 100% (68/68) 100% (68/68)
|
||||
lah Lahnda 98% (143/145) (0/145) 97% (141/145)
|
||||
lah Lahnda 92% (25/27) (0/27) 85% (23/27)
|
||||
lb Luxembourgish (Letzeburgesch) 100% (75/75) 100% (75/75) 100% (75/75)
|
||||
lez Lezghian (Lezgian) 100% (67/67) 100% (67/67) 100% (67/67)
|
||||
lg Ganda 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
@ -135,6 +137,7 @@ mk Macedonian 100% (42/42) 100% (42/42)
|
||||
ml Malayalam (0/68) (0/68) (0/68)
|
||||
mn-cn Mongolian in China (0/130) (0/130) (0/130)
|
||||
mn-mn Mongolian in Mongolia 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
mni Maniputi (0/78) (0/78) (0/78)
|
||||
mo Moldavian 100% (128/128) 100% (128/128) 100% (128/128)
|
||||
mr Marathi (Devanagari script) (0/68) (0/68) (0/68)
|
||||
ms Malay 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
@ -143,11 +146,12 @@ my Burmese (Myanmar) (0/48) (0/48)
|
||||
na Nauru 100% (60/60) 100% (60/60) 100% (60/60)
|
||||
nb Norwegian Bokmal 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
nds Low Saxon 100% (59/59) 100% (59/59) 100% (59/59)
|
||||
ne Nepali (Devanagari script) (0/68) (0/68) (0/68)
|
||||
ne Nepali (0/72) (0/72) (0/72)
|
||||
ng Ndonga 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
nl Dutch 100% (82/82) 100% (82/82) 100% (82/82)
|
||||
nn Norwegian Nynorsk 100% (76/76) 100% (76/76) 100% (76/76)
|
||||
no Norwegian (Bokmal) 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
nqo N'Ko 91% (54/59) (0/59) (0/59)
|
||||
nr Ndebele, South 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
nso Northern Sotho 100% (58/58) 100% (58/58) 100% (58/58)
|
||||
nv Navajo/Navaho 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
@ -158,10 +162,12 @@ or Oriya (0/68) (0/68)
|
||||
os Ossetic 100% (66/66) 100% (66/66) 100% (66/66)
|
||||
ota Ottoman Turkish 100% (37/37) (0/37) 97% (36/37)
|
||||
pa Panjabi/Punjabi (0/63) (0/63) (0/63)
|
||||
pa-pk Panjabi/Punjabi in Pakistan 98% (143/145) (0/145) 97% (141/145)
|
||||
pa-pk Panjabi/Punjabi in Pakistan 92% (25/27) (0/27) 85% (23/27)
|
||||
pap-an Papiamento in Netherlands Antilles 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
pap-aw Papiamento in Aruba 100% (54/54) 100% (54/54) 100% (54/54)
|
||||
pes Western Farsi 100% (40/40) (0/40) 100% (40/40)
|
||||
pl Polish 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
prs Dari/Eastern Farsi 100% (40/40) (0/40) 100% (40/40)
|
||||
ps-af Pashto in Afghanistan 95% (47/49) (0/49) 77% (38/49)
|
||||
ps-pk Pashto in Pakistan 93% (46/49) (0/49) 75% (37/49)
|
||||
pt Portuguese 100% (82/82) 100% (82/82) 100% (82/82)
|
||||
@ -173,6 +179,7 @@ ru Russian 100% (66/66) 100% (66/66)
|
||||
rw Kinyarwanda 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
sa Sanskrit (Devanagari script) (0/68) (0/68) (0/68)
|
||||
sah Yakut 100% (76/76) 100% (76/76) 100% (76/76)
|
||||
sat Santali (Devanagari script) (0/70) (0/70) (0/70)
|
||||
sc Sardinian 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
sco Scots 100% (56/56) 100% (56/56) 100% (56/56)
|
||||
sd Sindhi 100% (54/54) (0/54) 79% (43/54)
|
||||
@ -217,9 +224,9 @@ tt Tatar 100% (76/76) 100% (76/76)
|
||||
tw Twi 100% (73/73) 100% (73/73) 100% (73/73)
|
||||
ty Tahitian 100% (65/65) 100% (65/65) 100% (65/65)
|
||||
tyv Tuvinian 100% (70/70) 100% (70/70) 100% (70/70)
|
||||
ug Uighur 100% (125/125) (0/125) 100% (125/125)
|
||||
ug Uyghur 87% (29/33) (0/33) 78% (26/33)
|
||||
uk Ukrainian 100% (72/72) 100% (72/72) 100% (72/72)
|
||||
ur Urdu 98% (143/145) (0/145) 97% (141/145)
|
||||
ur Urdu 92% (25/27) (0/27) 85% (23/27)
|
||||
uz Uzbek 100% (52/52) 100% (52/52) 100% (52/52)
|
||||
ve Venda 100% (62/62) 100% (62/62) 100% (62/62)
|
||||
vi Vietnamese 100% (194/194) 100% (194/194) 76% (148/194)
|
||||
@ -1,5 +1,5 @@
|
||||
This is the status file for DejaVu fonts
|
||||
($Id: status.txt 2425 2010-08-22 16:07:31Z moyogo $)
|
||||
($Id: status.txt 2475 2011-02-27 14:51:17Z ben_laenen $)
|
||||
|
||||
original = present in original Bitstream Vera 1.10
|
||||
<version> = added in DejaVu fonts <version>
|
||||
@ -637,7 +637,7 @@ U+02b6 uni02B6 1.14
|
||||
U+02b7 uni02B7 1.14
|
||||
U+02b8 uni02B8 1.14
|
||||
U+02b9 uni02B9 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+02ba uni02BA 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02ba uni02BA 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02bb uni02BB 1.5
|
||||
U+02bc uni02BC 1.12
|
||||
U+02bd uni02BD 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed)
|
||||
@ -645,20 +645,20 @@ U+02be uni02BE 2.2
|
||||
U+02bf uni02BF 2.2
|
||||
U+02c0 uni02C0 1.14
|
||||
U+02c1 uni02C1 1.14
|
||||
U+02c2 uni02C2 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02c3 uni02C3 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02c4 uni02C4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02c5 uni02C5 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02c2 uni02C2 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02c3 uni02C3 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02c4 uni02C4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02c5 uni02C5 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02c6 circumflex original
|
||||
U+02c7 caron original
|
||||
U+02c8 uni02C8 2.0
|
||||
U+02c9 uni02C9 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed)
|
||||
U+02ca uni02CA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+02cb uni02CB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+02ca uni02CA 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02cb uni02CB 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02cc uni02CC 2.0
|
||||
U+02cd uni02CD 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02ce uni02CE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+02cf uni02CF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+02ce uni02CE 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+02cf uni02CF 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+02d0 uni02D0 1.14
|
||||
U+02d1 uni02D1 1.14
|
||||
U+02d2 uni02D2 2.0
|
||||
@ -666,7 +666,7 @@ U+02d3 uni02D3 2.2
|
||||
U+02d4 uni02D4 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02d5 uni02D5 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02d6 uni02D6 2.0
|
||||
U+02d7 uni02D7 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+02d7 uni02D7 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02d8 breve original
|
||||
U+02d9 dotaccent original
|
||||
U+02da ring original
|
||||
@ -685,11 +685,13 @@ U+02e6 uni02E6 2.0
|
||||
U+02e7 uni02E7 2.0
|
||||
U+02e8 uni02E8 2.0
|
||||
U+02e9 uni02E9 2.0
|
||||
U+02ec uni02EC 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02ec uni02EC 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02ed uni02ED 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+02ee uni02EE 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+02f3 uni02F3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+02f7 uni02F7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+02ef uni02EF 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02f0 uni02F0 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02f3 uni02F3 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.14 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+02f7 uni02F7 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+0300 gravecomb 1.15
|
||||
U+0301 acutecomb 1.15
|
||||
U+0302 uni0302 1.15
|
||||
@ -780,7 +782,7 @@ U+035c uni035C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Conden
|
||||
U+035d uni035D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+035e uni035E 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+035f uni035F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+0360 uni0360 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+0360 uni0360 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+0361 uni0361 2.0
|
||||
U+0362 uni0362 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+0370 uni0370 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
@ -1025,8 +1027,8 @@ U+0468 uni0468 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Conden
|
||||
U+0469 uni0469 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+046a uni046A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.21 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+046b uni046B 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.21 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+046c uni046C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+046d uni046D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+046c uni046C 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+046d uni046D 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+046e uni046E 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+046f uni046F 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+0470 uni0470 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
@ -1035,8 +1037,8 @@ U+0472 uni0472 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Conden
|
||||
U+0473 uni0473 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+0474 uni0474 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.12 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+0475 uni0475 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.12 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+0476 uni0476 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+0477 uni0477 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+0476 uni0476 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+0477 uni0477 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+0478 uni0478 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+0479 uni0479 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+047a uni047A 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
@ -2259,7 +2261,10 @@ U+1d6b uni1D6B 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Co
|
||||
U+1d77 uni1D77 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.3 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.4 (Sans ExtraLight) 2.23 (Serif Italic Condensed)
|
||||
U+1d78 uni1D78 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.17 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.18 (Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed)
|
||||
U+1d7b uni1D7B 2.3
|
||||
U+1d7d uni1D7D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1d7c uni1D7C 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+1d7d uni1D7D 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+1d7e uni1D7E 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+1d7f uni1D7F 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+1d85 uni1D85 2.3
|
||||
U+1d9b uni1D9B 2.3
|
||||
U+1d9c uni1D9C 2.3
|
||||
@ -2811,7 +2816,7 @@ U+2012 figuredash 1.5
|
||||
U+2013 endash original
|
||||
U+2014 emdash original
|
||||
U+2015 uni2015 1.5
|
||||
U+2016 uni2016 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2016 uni2016 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.26 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2017 underscoredbl 2.3
|
||||
U+2018 quoteleft original
|
||||
U+2019 quoteright original
|
||||
@ -2960,8 +2965,9 @@ U+20b2 uni20B2 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Obliq
|
||||
U+20b3 uni20B3 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.26 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+20b4 uni20B4 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+20b5 uni20B5 2.2
|
||||
U+20b8 uni20B8 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique)
|
||||
U+20b8 uni20B8 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+20b9 uni20B9 2.32
|
||||
U+20ba uni20BA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+20d0 uni20D0 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique)
|
||||
U+20d1 uni20D1 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique)
|
||||
U+20d6 uni20D6 2.8 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
@ -3018,7 +3024,7 @@ U+212e estimated 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Conden
|
||||
U+212f uni212F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2130 uni2130 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2131 uni2131 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2132 uni2132 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight)
|
||||
U+2132 uni2132 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2133 uni2133 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2134 uni2134 2.4 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+2135 aleph 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
@ -3033,17 +3039,17 @@ U+213d uni213D 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Obliq
|
||||
U+213e uni213E 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+213f uni213F 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+2140 uni2140 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+2141 uni2141 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2142 uni2142 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2143 uni2143 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2144 uni2144 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2141 uni2141 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans ExtraLight)
|
||||
U+2142 uni2142 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans ExtraLight)
|
||||
U+2143 uni2143 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans ExtraLight)
|
||||
U+2144 uni2144 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans ExtraLight)
|
||||
U+2145 uni2145 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+2146 uni2146 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+2147 uni2147 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+2148 uni2148 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+2148 uni2148 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2149 uni2149 2.10 (Sans, Sans Bold, Sans Bold Oblique, Sans Oblique) 2.11 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+214b uni214B 2.2 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.10 (Sans ExtraLight) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+214e uni214E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+214e uni214E 2.12 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2150 uni2150 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2151 uni2151 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2152 uni2152 2.32 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
@ -4224,11 +4230,12 @@ U+27bc uni27BC 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Conden
|
||||
U+27bd uni27BD 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold)
|
||||
U+27be uni27BE 2.5 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.7 (Sans Mono, Sans Mono Bold)
|
||||
U+27bf uni27BF 2.7 (Sans Mono Bold)
|
||||
U+27c2 uni27C2 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+27c5 uni27C5 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+27c6 uni27C6 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+27e0 uni27E0 2.3
|
||||
U+27e6 uni27E6 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+27e7 uni27E7 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+27e6 uni27E6 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+27e7 uni27E7 2.15 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+27e8 uni27E8 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+27e9 uni27E9 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.13 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+27ea uni27EA 2.3 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
@ -4667,6 +4674,8 @@ U+2a1a uni2A1A 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Conden
|
||||
U+2a1b uni2A1B 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2a1c uni2A1C 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2a2f uni2A2F 2.16 (Sans, Sans Bold, Sans Bold Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Italic) 2.17 (Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2a6a uni2A6A 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2a6b uni2A6B 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2a7d uni2A7D 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2a7e uni2A7E 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2a7f uni2A7F 2.7 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
@ -4723,15 +4732,15 @@ U+2b01 uni2B01 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Conde
|
||||
U+2b02 uni2B02 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b03 uni2B03 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b04 uni2B04 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b05 uni2B05 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b06 uni2B06 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b07 uni2B07 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b08 uni2B08 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b09 uni2B09 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b0a uni2B0A 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b0b uni2B0B 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b0c uni2B0C 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b0d uni2B0D 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b05 uni2B05 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b06 uni2B06 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b07 uni2B07 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b08 uni2B08 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b09 uni2B09 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b0a uni2B0A 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b0b uni2B0B 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b0c uni2B0C 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b0d uni2B0D 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+2b0e uni2B0E 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b0f uni2B0F 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
U+2b10 uni2B10 2.14 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.23 (Serif Italic Condensed)
|
||||
@ -4779,49 +4788,49 @@ U+2c76 uni2C76 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Conden
|
||||
U+2c77 uni2C77 2.9 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.18 (Sans ExtraLight, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.20 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.23 (Serif Italic Condensed)
|
||||
U+2c79 uni2C79 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic)
|
||||
U+2c7a uni2C7A 2.27
|
||||
U+2c7b uni2C7B 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2c7b uni2C7B 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.34 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2c7c uni2C7C 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic)
|
||||
U+2c7d uni2C7D 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.28 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.31 (Serif Condensed Italic)
|
||||
U+2c7e uni2C7E 2.31 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2c7f uni2C7F 2.31 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2d00 uni2D00 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d01 uni2D01 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d02 uni2D02 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d03 uni2D03 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d04 uni2D04 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d05 uni2D05 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d06 uni2D06 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d07 uni2D07 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d08 uni2D08 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d09 uni2D09 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d0a uni2D0A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d0b uni2D0B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d0c uni2D0C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d0d uni2D0D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d0e uni2D0E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d0f uni2D0F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d10 uni2D10 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d11 uni2D11 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d12 uni2D12 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d13 uni2D13 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d14 uni2D14 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d15 uni2D15 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d16 uni2D16 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d17 uni2D17 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d18 uni2D18 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d19 uni2D19 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d1a uni2D1A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d1b uni2D1B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d1c uni2D1C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d1d uni2D1D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d1e uni2D1E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d1f uni2D1F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d20 uni2D20 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d21 uni2D21 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d22 uni2D22 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d23 uni2D23 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d24 uni2D24 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d25 uni2D25 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+2d00 uni2D00 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d01 uni2D01 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d02 uni2D02 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d03 uni2D03 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d04 uni2D04 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d05 uni2D05 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d06 uni2D06 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d07 uni2D07 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d08 uni2D08 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d09 uni2D09 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d0a uni2D0A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d0b uni2D0B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d0c uni2D0C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d0d uni2D0D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d0e uni2D0E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d0f uni2D0F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d10 uni2D10 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d11 uni2D11 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d12 uni2D12 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d13 uni2D13 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d14 uni2D14 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d15 uni2D15 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d16 uni2D16 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d17 uni2D17 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d18 uni2D18 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d19 uni2D19 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d1a uni2D1A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d1b uni2D1B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d1c uni2D1C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d1d uni2D1D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d1e uni2D1E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d1f uni2D1F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d20 uni2D20 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d21 uni2D21 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d22 uni2D22 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d23 uni2D23 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d24 uni2D24 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d25 uni2D25 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+2d30 uni2D30 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold)
|
||||
U+2d31 uni2D31 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold)
|
||||
U+2d32 uni2D32 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold)
|
||||
@ -4878,6 +4887,8 @@ U+2d64 uni2D64 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condense
|
||||
U+2d65 uni2D65 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold)
|
||||
U+2d6f uni2D6F 2.18 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold)
|
||||
U+2e18 uni2E18 2.26
|
||||
U+2e1e uni2E1E 2.34 (Sans, Sans Condensed)
|
||||
U+2e1f uni2E1F 2.34 (Sans Bold, Sans Bold Oblique, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+2e22 uni2E22 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.30 (Sans Bold) 2.31 (Serif Condensed Italic)
|
||||
U+2e23 uni2E23 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.30 (Sans Bold) 2.31 (Serif Condensed Italic)
|
||||
U+2e24 uni2E24 2.29 (Sans, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.30 (Sans Bold) 2.31 (Serif Condensed Italic)
|
||||
@ -4947,6 +4958,54 @@ U+4dfc uni4DFC 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Conde
|
||||
U+4dfd uni4DFD 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+4dfe uni4DFE 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+4dff uni4DFF 2.22 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a4d0 uniA4D0 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d1 uniA4D1 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d2 uniA4D2 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d3 uniA4D3 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d4 uniA4D4 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d5 uniA4D5 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d6 uniA4D6 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d7 uniA4D7 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d8 uniA4D8 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4d9 uniA4D9 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4da uniA4DA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4db uniA4DB 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4dc uniA4DC 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4dd uniA4DD 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4de uniA4DE 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4df uniA4DF 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e0 uniA4E0 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e1 uniA4E1 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e2 uniA4E2 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e3 uniA4E3 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e4 uniA4E4 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e5 uniA4E5 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e6 uniA4E6 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e7 uniA4E7 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e8 uniA4E8 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4e9 uniA4E9 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4ea uniA4EA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4eb uniA4EB 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4ec uniA4EC 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4ed uniA4ED 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4ee uniA4EE 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4ef uniA4EF 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f0 uniA4F0 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f1 uniA4F1 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f2 uniA4F2 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f3 uniA4F3 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f4 uniA4F4 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f5 uniA4F5 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f6 uniA4F6 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f7 uniA4F7 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f8 uniA4F8 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4f9 uniA4F9 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4fa uniA4FA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4fb uniA4FB 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4fc uniA4FC 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4fd uniA4FD 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4fe uniA4FE 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a4ff uniA4FF 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+a644 uniA644 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+a645 uniA645 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+a646 uniA646 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.27 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
@ -5028,6 +5087,8 @@ U+a73c uniA73C 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Conde
|
||||
U+a73d uniA73D 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.32 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a73e uniA73E 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a73f uniA73F 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a740 uniA740 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a741 uniA741 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a746 uniA746 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a747 uniA747 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a748 uniA748 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
@ -5066,6 +5127,17 @@ U+a78d uniA78D 2.31
|
||||
U+a78e uniA78E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique)
|
||||
U+a790 uniA790 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a791 uniA791 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a7a0 uniA7A0 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a1 uniA7A1 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a2 uniA7A2 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a3 uniA7A3 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a4 uniA7A4 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a5 uniA7A5 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a6 uniA7A6 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a7 uniA7A7 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a8 uniA7A8 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7a9 uniA7A9 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+a7aa uniA7AA 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a7fa uniA7FA 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique, Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a7fb uniA7FB 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
U+a7fc uniA7FC 2.26 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique) 2.33 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic)
|
||||
@ -5140,46 +5212,71 @@ U+f217 uniF217 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Conden
|
||||
U+f21a uniF21A 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f21b uniF21B 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f25f uniF25F 2.6 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f400 uniF400 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f401 uniF401 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f402 uniF402 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f403 uniF403 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f404 uniF404 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f405 uniF405 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f406 uniF406 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f407 uniF407 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f408 uniF408 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f409 uniF409 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f40a uniF40A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f40b uniF40B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f40c uniF40C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f40d uniF40D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f40e uniF40E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f40f uniF40F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f410 uniF410 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f411 uniF411 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f412 uniF412 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f413 uniF413 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f414 uniF414 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f415 uniF415 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f416 uniF416 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f417 uniF417 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f418 uniF418 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f419 uniF419 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f41a uniF41A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f41b uniF41B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f41c uniF41C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f41d uniF41D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f41e uniF41E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f41f uniF41F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f420 uniF420 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f421 uniF421 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f422 uniF422 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f423 uniF423 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f424 uniF424 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f425 uniF425 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f426 uniF426 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f428 uniF428 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic)
|
||||
U+f400 uniF400 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f401 uniF401 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f402 uniF402 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f403 uniF403 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f404 uniF404 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f405 uniF405 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f406 uniF406 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f407 uniF407 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f408 uniF408 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f409 uniF409 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f40a uniF40A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f40b uniF40B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f40c uniF40C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f40d uniF40D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f40e uniF40E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f40f uniF40F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f410 uniF410 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f411 uniF411 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f412 uniF412 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f413 uniF413 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f414 uniF414 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f415 uniF415 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f416 uniF416 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f417 uniF417 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f418 uniF418 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f419 uniF419 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f41a uniF41A 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f41b uniF41B 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f41c uniF41C 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f41d uniF41D 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f41e uniF41E 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f41f uniF41F 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f420 uniF420 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f421 uniF421 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f422 uniF422 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f423 uniF423 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f424 uniF424 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f425 uniF425 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans ExtraLight, Sans Oblique)
|
||||
U+f426 uniF426 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f428 uniF428 2.28 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Italic, Serif Italic Condensed) 2.31 (Serif Condensed Italic) 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f429 uniF429 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f42a uniF42A 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f42b uniF42B 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f42c uniF42C 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f42d uniF42D 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f42e uniF42E 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f42f uniF42F 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f430 uniF430 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f431 uniF431 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f432 uniF432 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f433 uniF433 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f434 uniF434 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f435 uniF435 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f436 uniF436 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f437 uniF437 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f438 uniF438 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f439 uniF439 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f43a uniF43A 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f43b uniF43B 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f43c uniF43C 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f43d uniF43D 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f43e uniF43E 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f43f uniF43F 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f440 uniF440 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f441 uniF441 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+f5c5 uniF5C5 2.9 (Sans Bold Oblique, Sans Condensed Bold Oblique)
|
||||
U+f6c4 uniF6C4 2.10 (Serif Bold Italic, Serif Italic) 2.11 (Serif Condensed Bold Italic, Serif Condensed Italic) 2.23 (Serif Italic Condensed)
|
||||
U+f6c5 uniF6C5 2.5 (Serif, Serif Bold, Serif Bold Italic, Serif Condensed, Serif Condensed Bold, Serif Condensed Bold Italic, Serif Condensed Italic, Serif Italic) 2.7 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique) 2.9 (Sans, Sans Bold, Sans Condensed, Sans Condensed Bold, Sans Condensed Oblique, Sans Oblique) 2.18 (Sans ExtraLight) 2.23 (Serif Italic Condensed)
|
||||
@ -5819,7 +5916,7 @@ U+1d556 u1D556 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Cond
|
||||
U+1d557 u1D557 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+1d558 u1D558 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+1d559 u1D559 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+1d55a u1D55A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+1d55a u1D55A 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed) 2.34 (Sans Mono, Sans Mono Bold, Sans Mono Bold Oblique, Sans Mono Oblique)
|
||||
U+1d55b u1D55B 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+1d55c u1D55C 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed)
|
||||
U+1d55d u1D55D 2.18 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique) 2.22 (Serif, Serif Condensed)
|
||||
@ -6604,6 +6701,7 @@ U+1f42d u1F42D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Cond
|
||||
U+1f42e u1F42E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f431 u1F431 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f435 u1F435 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f600 u1F600 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f601 u1F601 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f602 u1F602 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f603 u1F603 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
@ -6620,29 +6718,40 @@ U+1f60d u1F60D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Cond
|
||||
U+1f60e u1F60E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f60f u1F60F 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f610 u1F610 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f611 u1F611 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f612 u1F612 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f613 u1F613 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f614 u1F614 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f615 u1F615 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f616 u1F616 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f617 u1F617 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f618 u1F618 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f619 u1F619 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f61a u1F61A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f61b u1F61B 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f61c u1F61C 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f61d u1F61D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f61e u1F61E 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f61f u1F61F 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f620 u1F620 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f621 u1F621 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f622 u1F622 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f623 u1F623 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f625 u1F625 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f626 u1F626 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f627 u1F627 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f628 u1F628 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f629 u1F629 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f62a u1F62A 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f62b u1F62B 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f62d u1F62D 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f62e u1F62E 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f62f u1F62F 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f630 u1F630 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f631 u1F631 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f632 u1F632 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f633 u1F633 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f634 u1F634 2.34 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f635 u1F635 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f636 u1F636 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
U+1f637 u1F637 2.33 (Sans, Sans Bold, Sans Bold Oblique, Sans Condensed, Sans Condensed Bold, Sans Condensed Bold Oblique, Sans Condensed Oblique, Sans Oblique)
|
||||
@ -1,5 +1,5 @@
|
||||
This is the Unicode coverage file for DejaVu fonts
|
||||
($Id$)
|
||||
($Id: unicover.txt 2538 2013-08-25 16:02:56Z moyogo $)
|
||||
|
||||
Control and similar characters are discounted from totals.
|
||||
|
||||
@ -9,24 +9,25 @@ U+0080 Latin-1 Supplement 100% (96/96) 100% (96/96)
|
||||
U+0100 Latin Extended-A 100% (128/128) 100% (128/128) 100% (128/128)
|
||||
U+0180 Latin Extended-B 100% (208/208) 100% (208/208) 86% (180/208)
|
||||
U+0250 IPA Extensions 100% (96/96) 100% (96/96) 100% (96/96)
|
||||
U+02b0 Spacing Modifier Letters 78% (63/80) 57% (46/80) 60% (48/80)
|
||||
U+0300 Combining Diacritical Marks 83% (93/112) 60% (68/112) 59% (67/112)
|
||||
U+02b0 Spacing Modifier Letters 78% (63/80) 73% (59/80) 62% (50/80)
|
||||
U+0300 Combining Diacritical Marks 83% (93/112) 61% (69/112) 59% (67/112)
|
||||
U+0370 Greek and Coptic 100% (134/134) 89% (120/134) 82% (110/134)
|
||||
U+0400 Cyrillic 100% (256/256) 78% (200/256) 70% (180/256)
|
||||
U+0400 Cyrillic 100% (256/256) 79% (204/256) 70% (180/256)
|
||||
U+0500 Cyrillic Supplement 95% (38/40) 25% (10/40) 15% (6/40)
|
||||
U+0530 Armenian 100% (86/86) 100% (86/86) 100% (86/86)
|
||||
U+0530 Armenian 98% (86/87) 98% (86/87) 98% (86/87)
|
||||
U+0590 Hebrew 62% (54/87) (0/87) (0/87)
|
||||
U+0600 Arabic 63% (161/252) (0/252) 39% (99/252)
|
||||
U+0600 Arabic 63% (161/253) (0/253) 39% (99/253)
|
||||
U+0700 Syriac (0/77) (0/77) (0/77)
|
||||
U+0750 Arabic Supplement (0/48) (0/48) (0/48)
|
||||
U+0780 Thaana (0/50) (0/50) (0/50)
|
||||
U+07c0 NKo 91% (54/59) (0/59) (0/59)
|
||||
U+0800 Samaritan (0/61) (0/61) (0/61)
|
||||
U+0840 Mandaic (0/29) (0/29) (0/29)
|
||||
U+08a0 Arabic Extended-A (0/39) (0/39) (0/39)
|
||||
U+0900 Devanagari (0/127) (0/127) (0/127)
|
||||
U+0980 Bengali (0/92) (0/92) (0/92)
|
||||
U+0a00 Gurmukhi (0/79) (0/79) (0/79)
|
||||
U+0a80 Gujarati (0/83) (0/83) (0/83)
|
||||
U+0a80 Gujarati (0/84) (0/84) (0/84)
|
||||
U+0b00 Oriya (0/90) (0/90) (0/90)
|
||||
U+0b80 Tamil (0/72) (0/72) (0/72)
|
||||
U+0c00 Telugu (0/93) (0/93) (0/93)
|
||||
@ -34,10 +35,10 @@ U+0c80 Kannada (0/86) (0/86)
|
||||
U+0d00 Malayalam (0/98) (0/98) (0/98)
|
||||
U+0d80 Sinhala (0/80) (0/80) (0/80)
|
||||
U+0e00 Thai 1% (1/87) (0/87) (0/87)
|
||||
U+0e80 Lao 100% (65/65) (0/65) 70% (46/65)
|
||||
U+0e80 Lao 97% (65/67) (0/67) 68% (46/67)
|
||||
U+0f00 Tibetan (0/211) (0/211) (0/211)
|
||||
U+1000 Myanmar (0/160) (0/160) (0/160)
|
||||
U+10a0 Georgian 100% (83/83) 100% (83/83) 54% (45/83)
|
||||
U+10a0 Georgian 94% (83/88) 94% (83/88) 51% (45/88)
|
||||
U+1100 Hangul Jamo (0/256) (0/256) (0/256)
|
||||
U+1200 Ethiopic (0/358) (0/358) (0/358)
|
||||
U+1380 Ethiopic Supplement (0/26) (0/26) (0/26)
|
||||
@ -59,21 +60,22 @@ U+19e0 Khmer Symbols (0/32) (0/32)
|
||||
U+1a00 Buginese (0/30) (0/30) (0/30)
|
||||
U+1a20 Tai Tham (0/127) (0/127) (0/127)
|
||||
U+1b00 Balinese (0/121) (0/121) (0/121)
|
||||
U+1b80 Sundanese (0/55) (0/55) (0/55)
|
||||
U+1b80 Sundanese (0/64) (0/64) (0/64)
|
||||
U+1bc0 Batak (0/56) (0/56) (0/56)
|
||||
U+1c00 Lepcha (0/74) (0/74) (0/74)
|
||||
U+1c50 Ol Chiki (0/48) (0/48) (0/48)
|
||||
U+1cd0 Vedic Extensions (0/35) (0/35) (0/35)
|
||||
U+1d00 Phonetic Extensions 82% (106/128) 86% (111/128) 48% (62/128)
|
||||
U+1cc0 Sundanese Supplement (0/8) (0/8) (0/8)
|
||||
U+1cd0 Vedic Extensions (0/39) (0/39) (0/39)
|
||||
U+1d00 Phonetic Extensions 82% (106/128) 89% (115/128) 48% (62/128)
|
||||
U+1d80 Phonetic Extensions Supplement 59% (38/64) 59% (38/64) 57% (37/64)
|
||||
U+1dc0 Combining Diacritical Marks Supplement 13% (6/43) 13% (6/43) (0/43)
|
||||
U+1e00 Latin Extended Additional 98% (252/256) 98% (252/256) 71% (182/256)
|
||||
U+1f00 Greek Extended 100% (233/233) 100% (233/233) 100% (233/233)
|
||||
U+2000 General Punctuation 100% (107/107) 81% (87/107) 48% (52/107)
|
||||
U+2000 General Punctuation 100% (107/107) 81% (87/107) 49% (53/107)
|
||||
U+2070 Superscripts and Subscripts 100% (42/42) 100% (42/42) 100% (42/42)
|
||||
U+20a0 Currency Symbols 92% (24/26) 26% (7/26) 92% (24/26)
|
||||
U+20a0 Currency Symbols 92% (25/27) 29% (8/27) 88% (24/27)
|
||||
U+20d0 Combining Diacritical Marks for Symbols 21% (7/33) (0/33) (0/33)
|
||||
U+2100 Letterlike Symbols 93% (75/80) 40% (32/80) 21% (17/80)
|
||||
U+2100 Letterlike Symbols 93% (75/80) 42% (34/80) 22% (18/80)
|
||||
U+2150 Number Forms 94% (55/58) 94% (55/58) 22% (13/58)
|
||||
U+2190 Arrows 100% (112/112) 100% (112/112) 100% (112/112)
|
||||
U+2200 Mathematical Operators 100% (256/256) 39% (100/256) 62% (159/256)
|
||||
@ -86,21 +88,21 @@ U+2580 Block Elements 100% (32/32) 100% (32/32)
|
||||
U+25a0 Geometric Shapes 100% (96/96) 100% (96/96) 100% (96/96)
|
||||
U+2600 Miscellaneous Symbols 73% (187/256) 11% (30/256) 58% (149/256)
|
||||
U+2700 Dingbats 91% (174/191) 0% (1/191) 75% (144/191)
|
||||
U+27c0 Miscellaneous Mathematical Symbols-A 19% (9/46) 10% (5/46) 10% (5/46)
|
||||
U+27c0 Miscellaneous Mathematical Symbols-A 18% (9/48) 10% (5/48) 16% (8/48)
|
||||
U+27f0 Supplemental Arrows-A 100% (16/16) 100% (16/16) (0/16)
|
||||
U+2800 Braille Patterns 100% (256/256) 100% (256/256) (0/256)
|
||||
U+2900 Supplemental Arrows-B 4% (6/128) 100% (128/128) (0/128)
|
||||
U+2980 Miscellaneous Mathematical Symbols-B 10% (13/128) 0% (1/128) 2% (3/128)
|
||||
U+2a00 Supplemental Mathematical Operators 28% (72/256) 1% (4/256) 0% (1/256)
|
||||
U+2b00 Miscellaneous Symbols and Arrows 40% (35/87) 31% (27/87) 10% (9/87)
|
||||
U+2a00 Supplemental Mathematical Operators 28% (74/256) 2% (6/256) 1% (3/256)
|
||||
U+2b00 Miscellaneous Symbols and Arrows 40% (35/87) 31% (27/87) 20% (18/87)
|
||||
U+2c00 Glagolitic (0/94) (0/94) (0/94)
|
||||
U+2c60 Latin Extended-C 96% (31/32) 81% (26/32) 43% (14/32)
|
||||
U+2c80 Coptic (0/121) (0/121) (0/121)
|
||||
U+2d00 Georgian Supplement (0/38) 100% (38/38) (0/38)
|
||||
U+2d30 Tifinagh 96% (55/57) (0/57) (0/57)
|
||||
U+2c60 Latin Extended-C 96% (31/32) 84% (27/32) 43% (14/32)
|
||||
U+2c80 Coptic (0/123) (0/123) (0/123)
|
||||
U+2d00 Georgian Supplement 95% (38/40) 95% (38/40) (0/40)
|
||||
U+2d30 Tifinagh 93% (55/59) (0/59) (0/59)
|
||||
U+2d80 Ethiopic Extended (0/79) (0/79) (0/79)
|
||||
U+2de0 Cyrillic Extended-A (0/32) (0/32) (0/32)
|
||||
U+2e00 Supplemental Punctuation 12% (6/50) 12% (6/50) 12% (6/50)
|
||||
U+2e00 Supplemental Punctuation 11% (7/60) 11% (7/60) 11% (7/60)
|
||||
U+2e80 CJK Radicals Supplement (0/115) (0/115) (0/115)
|
||||
U+2f00 Kangxi Radicals (0/214) (0/214) (0/214)
|
||||
U+2ff0 Ideographic Description Characters (0/12) (0/12) (0/12)
|
||||
@ -120,12 +122,12 @@ U+4dc0 Yijing Hexagram Symbols 100% (64/64) (0/64)
|
||||
U+4e00 CJK Unified Ideographs (0/0) (0/0) (0/0)
|
||||
U+a000 Yi Syllables (0/1165) (0/1165) (0/1165)
|
||||
U+a490 Yi Radicals (0/55) (0/55) (0/55)
|
||||
U+a4d0 Lisu (0/48) (0/48) (0/48)
|
||||
U+a4d0 Lisu 100% (48/48) (0/48) (0/48)
|
||||
U+a500 Vai (0/300) (0/300) (0/300)
|
||||
U+a640 Cyrillic Extended-B 38% (31/80) 12% (10/80) (0/80)
|
||||
U+a640 Cyrillic Extended-B 34% (31/89) 11% (10/89) (0/89)
|
||||
U+a6a0 Bamum (0/88) (0/88) (0/88)
|
||||
U+a700 Modifier Tone Letters 62% (20/32) 62% (20/32) 62% (20/32)
|
||||
U+a720 Latin Extended-D 48% (62/129) 42% (55/129) 10% (14/129)
|
||||
U+a720 Latin Extended-D 55% (75/134) 43% (58/134) 11% (15/134)
|
||||
U+a800 Syloti Nagri (0/44) (0/44) (0/44)
|
||||
U+a830 Common Indic Number Forms (0/10) (0/10) (0/10)
|
||||
U+a840 Phags-pa (0/56) (0/56) (0/56)
|
||||
@ -138,7 +140,8 @@ U+a980 Javanese (0/91) (0/91)
|
||||
U+aa00 Cham (0/83) (0/83) (0/83)
|
||||
U+aa60 Myanmar Extended-A (0/28) (0/28) (0/28)
|
||||
U+aa80 Tai Viet (0/72) (0/72) (0/72)
|
||||
U+ab00 Ethiopic Extended-A (0/33) (0/33) (0/33)
|
||||
U+aae0 Meetei Mayek Extensions (0/23) (0/23) (0/23)
|
||||
U+ab00 Ethiopic Extended-A (0/32) (0/32) (0/32)
|
||||
U+abc0 Meetei Mayek (0/56) (0/56) (0/56)
|
||||
U+ac00 Hangul Syllables (0/0) (0/0) (0/0)
|
||||
U+d7b0 Hangul Jamo Extended-B (0/72) (0/72) (0/72)
|
||||
@ -146,7 +149,7 @@ U+d800 High Surrogates (0/0) (0/0)
|
||||
U+db80 High Private Use Surrogates (0/0) (0/0) (0/0)
|
||||
U+dc00 Low Surrogates (0/0) (0/0) (0/0)
|
||||
U+e000 Private Use Area (0/0) (0/0) (0/0)
|
||||
U+f900 CJK Compatibility Ideographs (0/470) (0/470) (0/470)
|
||||
U+f900 CJK Compatibility Ideographs (0/472) (0/472) (0/472)
|
||||
U+fb00 Alphabetic Presentation Forms 100% (58/58) 12% (7/58) 3% (2/58)
|
||||
U+fb50 Arabic Presentation Forms-A 16% (98/611) (0/611) 11% (72/611)
|
||||
U+fe00 Variation Selectors 100% (16/16) 100% (16/16) (0/16)
|
||||
@ -176,6 +179,8 @@ U+10800 Cypriot Syllabary (0/55) (0/55)
|
||||
U+10840 Imperial Aramaic (0/31) (0/31) (0/31)
|
||||
U+10900 Phoenician (0/29) (0/29) (0/29)
|
||||
U+10920 Lydian (0/27) (0/27) (0/27)
|
||||
U+10980 Meroitic Hieroglyphs (0/32) (0/32) (0/32)
|
||||
U+109a0 Meroitic Cursive (0/26) (0/26) (0/26)
|
||||
U+10a00 Kharoshthi (0/65) (0/65) (0/65)
|
||||
U+10a60 Old South Arabian (0/32) (0/32) (0/32)
|
||||
U+10b00 Avestan (0/61) (0/61) (0/61)
|
||||
@ -185,24 +190,30 @@ U+10c00 Old Turkic (0/73) (0/73)
|
||||
U+10e60 Rumi Numeral Symbols (0/31) (0/31) (0/31)
|
||||
U+11000 Brahmi (0/108) (0/108) (0/108)
|
||||
U+11080 Kaithi (0/66) (0/66) (0/66)
|
||||
U+110d0 Sora Sompeng (0/35) (0/35) (0/35)
|
||||
U+11100 Chakma (0/67) (0/67) (0/67)
|
||||
U+11180 Sharada (0/83) (0/83) (0/83)
|
||||
U+11680 Takri (0/66) (0/66) (0/66)
|
||||
U+12000 Cuneiform (0/879) (0/879) (0/879)
|
||||
U+12400 Cuneiform Numbers and Punctuation (0/103) (0/103) (0/103)
|
||||
U+13000 Egyptian Hieroglyphs (0/1071) (0/1071) (0/1071)
|
||||
U+16800 Bamum Supplement (0/569) (0/569) (0/569)
|
||||
U+16f00 Miao (0/133) (0/133) (0/133)
|
||||
U+1b000 Kana Supplement (0/2) (0/2) (0/2)
|
||||
U+1d000 Byzantine Musical Symbols (0/246) (0/246) (0/246)
|
||||
U+1d100 Musical Symbols (0/220) (0/220) (0/220)
|
||||
U+1d200 Ancient Greek Musical Notation (0/70) (0/70) (0/70)
|
||||
U+1d300 Tai Xuan Jing Symbols 100% (87/87) (0/87) (0/87)
|
||||
U+1d360 Counting Rod Numerals (0/18) (0/18) (0/18)
|
||||
U+1d400 Mathematical Alphanumeric Symbols 11% (117/996) 5% (55/996) 6% (62/996)
|
||||
U+1d400 Mathematical Alphanumeric Symbols 11% (117/996) 5% (55/996) 6% (63/996)
|
||||
U+1ee00 Arabic Mathematical Alphabetic Symbols (0/143) (0/143) (0/143)
|
||||
U+1f000 Mahjong Tiles (0/44) (0/44) (0/44)
|
||||
U+1f030 Domino Tiles 100% (100/100) (0/100) (0/100)
|
||||
U+1f0a0 Playing Cards 100% (59/59) (0/59) (0/59)
|
||||
U+1f100 Enclosed Alphanumeric Supplement (0/169) (0/169) (0/169)
|
||||
U+1f100 Enclosed Alphanumeric Supplement (0/171) (0/171) (0/171)
|
||||
U+1f200 Enclosed Ideographic Supplement (0/57) (0/57) (0/57)
|
||||
U+1f300 Miscellaneous Symbols And Pictographs 0% (4/529) (0/529) (0/529)
|
||||
U+1f600 Emoticons 80% (51/63) (0/63) (0/63)
|
||||
U+1f300 Miscellaneous Symbols And Pictographs 0% (4/533) (0/533) (0/533)
|
||||
U+1f600 Emoticons 82% (63/76) (0/76) (0/76)
|
||||
U+1f680 Transport And Map Symbols (0/70) (0/70) (0/70)
|
||||
U+1f700 Alchemical Symbols (0/116) (0/116) (0/116)
|
||||
U+20000 CJK Unified Ideographs Extension B (0/0) (0/0) (0/0)
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
16
htdocs/includes/tcpdf/fonts/dejavusanscondensed.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusanscondensed.php
Normal file
File diff suppressed because one or more lines are too long
16
htdocs/includes/tcpdf/fonts/dejavusanscondensedb.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusanscondensedb.php
Normal file
File diff suppressed because one or more lines are too long
16
htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.php
Normal file
File diff suppressed because one or more lines are too long
16
htdocs/includes/tcpdf/fonts/dejavusanscondensedi.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusanscondensedi.php
Normal file
File diff suppressed because one or more lines are too long
16
htdocs/includes/tcpdf/fonts/dejavusansextralight.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusansextralight.php
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
16
htdocs/includes/tcpdf/fonts/dejavusansmono.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusansmono.php
Normal file
File diff suppressed because one or more lines are too long
16
htdocs/includes/tcpdf/fonts/dejavusansmonob.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusansmonob.php
Normal file
File diff suppressed because one or more lines are too long
16
htdocs/includes/tcpdf/fonts/dejavusansmonobi.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusansmonobi.php
Normal file
File diff suppressed because one or more lines are too long
16
htdocs/includes/tcpdf/fonts/dejavusansmonoi.php
Normal file
16
htdocs/includes/tcpdf/fonts/dejavusansmonoi.php
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -167,9 +167,9 @@ particular ISO 10646 blocks.
|
||||
Devanagari (U+0900-U+097F)
|
||||
Gujarati (U+0A80-U+0AFF)
|
||||
|
||||
* Pravin Satpute <pravin_ind21 AT hotmail.com>, Bageshri Salvi
|
||||
<sbagrshri AT yahoo.co.in>, Rahul Bhalerao <rahul_pb_india AT
|
||||
yahoo.com> and Sandeep Shedmake <surgs2k47 AT yahoo.co.in>
|
||||
* Pravin Satpute <pravin.d.s AT gmail.com>, Bageshri Salvi
|
||||
<sbagrshri AT yahoo.co.in>, Rahul Bhalerao <b.rahul.pm AT gmail.com> and
|
||||
Sandeep Shedmake <sandeep.shedmake AT gmail.com>
|
||||
|
||||
Devanagari (U+0900-U+097F)
|
||||
Gujarati (U+0A80-U+0AFF)
|
||||
@ -210,6 +210,8 @@ particular ISO 10646 blocks.
|
||||
* Steve White <stevan_white AT gmail.com>
|
||||
Glagolitic (U+2C00-U+2C5F)
|
||||
Coptic (U+2C80-U+2CFF)
|
||||
Arabic (U+0600-U+06FF) (Mono)
|
||||
Old Italic (U+10300-U+1032F)
|
||||
|
||||
* Pavel Skrylev is responsible for
|
||||
Cyrillic Extended-A (U+2DEO-U+2DFF)
|
||||
@ -224,6 +226,11 @@ particular ISO 10646 blocks.
|
||||
Ugaritic (U+10380-U+1039F)
|
||||
Old Persian (U+103A0-U+103DF)
|
||||
|
||||
* Masoud Pourmoosa
|
||||
Arabic (U+0600-U+06FF)
|
||||
|
||||
* Emmanuel Vallois
|
||||
Python scripts, support
|
||||
|
||||
* Primož Peterlin <primoz.peterlin AT biofiz.mf.uni-lj.si>
|
||||
maintained FreeFont for several years, and is thanked for all his work.
|
||||
@ -232,4 +239,4 @@ Please see the CREDITS file for details on who contributed particular
|
||||
subsets of the glyphs in font files.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
$Id: AUTHORS,v 1.23 2010/09/11 13:24:11 Stevan_White Exp $
|
||||
$Id: AUTHORS,v 1.23 2010-09-11 13:24:11 Stevan_White Exp $
|
||||
@ -8,7 +8,7 @@ This file lists contributors and contributions to the GNU FreeFont project.
|
||||
* URW++ Design & Development GmbH <http://www.urwpp.de/>
|
||||
|
||||
URW++ donated a set of 35 core PostScript Type 1 fonts to the
|
||||
Ghostscript project <http://www.cs.wisc.edu/~ghost/>, to be available
|
||||
Ghostscript project <http://www.ghostscript.com/>, to be available
|
||||
under the terms of GNU General Public License (GPL).
|
||||
|
||||
Basic Latin (U+0041-U+007A)
|
||||
@ -56,23 +56,23 @@ Current info: <http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=omega>
|
||||
|
||||
Valek Filippov added Cyrillic glyphs and composite Latin Extended A to
|
||||
the whole set of the abovementioned URW set of 35 PostScript core fonts,
|
||||
<ftp://ftp.gnome.ru/fonts/urw/>. The fonts are available under GPL.
|
||||
<ftp://ftp.gnome.ru/fonts/>. The fonts are available under GPL.
|
||||
(The Cyrillic range was since replaced by another font.)
|
||||
|
||||
Latin Extended-A (U+0100-U+017F)
|
||||
Cyrillic (U+0400-U+04FF)
|
||||
|
||||
|
||||
* Wadalab Kanji Comittee
|
||||
|
||||
Between April 1990 and March 1992, Wadalab Kanji Comittee put together
|
||||
a series of scalable font files with Japanese scripts, in four forms:
|
||||
Sai Micho, Chu Mincho, Cho Kaku and Saimaru. The font files are
|
||||
written in custom file format, while tools for conversion into
|
||||
Metafont and PostScript Type 1 are also supplied. The Wadalab Kanji
|
||||
Comittee has later been dismissed, and the resulting files can be now
|
||||
found on the FTP server of the Depertment of Mathematical Engineering
|
||||
and Information Physics, Faculty of Engineering, University of Tokyo
|
||||
<ftp://ftp.ipl.t.u-tokyo.ac.jp/Font/>.
|
||||
Between April 1990 and March 1992, Wadalab Kanji Comittee put together a
|
||||
series of scalable font files with Japanese scripts, in four forms:
|
||||
Sai Micho, Chu Mincho, Cho Kaku and Saimaru.
|
||||
The font files are written in custom file format, while tools for conversion
|
||||
into Metafont and PostScript Type 1 are also supplied. The Wadalab Kanji
|
||||
Comittee was later dismissed. The resulting files were once found on the FTP
|
||||
server of the Department of Mathematical Engineering and Information Physics,
|
||||
Faculty of Engineering, University of Tokyo. Some of these are available at
|
||||
<http://www.ctan.org/tex-archive/fonts/wadalab>
|
||||
|
||||
Hiragana (U+3040-U+309F)
|
||||
Katakana (U+30A0-U+30FF)
|
||||
@ -98,9 +98,9 @@ TX fonts are are distributed under the GNU public license (GPL).
|
||||
|
||||
* Angelo Haritsis <ah AT computer.org>
|
||||
|
||||
Angelo Haritsis has compiled a set of Greek Type 1 fonts, available on
|
||||
<ftp://ftp.hellug.gr/pub/unix/linux/GREEK/fonts/greekXfonts-Type1-1.1.tgz>.
|
||||
The glyphs from this source has been used to compose Greek glyphs in
|
||||
Angelo Haritsis has compiled a set of Greek Type 1 fonts, once available as
|
||||
as a tarball named greekXfonts-Type1-1.1.tgz.
|
||||
The glyphs from this source have been used to compose Greek glyphs in
|
||||
FreeSans and FreeMono.
|
||||
|
||||
Angelo's licence says: "You can enjoy free use of these fonts for
|
||||
@ -165,14 +165,13 @@ compatible with Helvetica or Arial. Available on
|
||||
2002-01-24, Sam writes: "Arial Armenian font is free for
|
||||
non-commercial use, so it is OK to use under GPL license."
|
||||
|
||||
Armenian (U+0530-U+058F)
|
||||
Armenian (U+0530-U+058F)
|
||||
|
||||
|
||||
* Mohamed Ishan <ishan AT mitf.f2s.com>
|
||||
* Mohamed Ishan <>
|
||||
|
||||
Mohamed Ishan has started a Thaana Unicode Project
|
||||
<http://thaana.sourceforge.net/> and among other things created a
|
||||
couple of Thaana fonts, available under FDL or BDF license.
|
||||
Mohamed Ishan started the Thaana Unicode Project and among other things
|
||||
created a couple of Thaana fonts, available under FDL or BDF license.
|
||||
|
||||
Thaana (U+0780-U+07BF)
|
||||
|
||||
@ -180,7 +179,7 @@ couple of Thaana fonts, available under FDL or BDF license.
|
||||
* Sushant Kumar Dash <sushant AT writeme.com> (*)
|
||||
|
||||
Sushant Dash has created a font in his mother tongue, Oriya. As he
|
||||
states on his web page <http://members.tripod.com/~sushantdash/>:
|
||||
states on his web page <http://sushantdash.tripod.com/>:
|
||||
"Please feel free to foreword this mail to your Oriya friends. No
|
||||
copyright law is applied for this font. It is totally free!!! Feel
|
||||
free to modify this using any font editing tools. This is designed for
|
||||
@ -220,14 +219,13 @@ Available under the GNU General Public License.
|
||||
* Frans Velthuis <velthuis AT rc.rug.nl> and Anshuman Pandey
|
||||
<apandey AT u.washington.edu>
|
||||
|
||||
In 1991, Frans Velthuis from the Groningen University, The
|
||||
Netherlands, released a Devanagari font as Metafont source, available
|
||||
under the terms of GNU GPL. Later, Anshuman Pandey from the Washington
|
||||
University, Seattle, USA, took over the maintenance of font. Fonts can
|
||||
be found on CTAN, <ftp://ftp.dante.de/tex-archive/language/devanagari/>. I
|
||||
converted the font to Type 1 format using Péter Szabó's TeXtrace
|
||||
program <http://www.inf.bme.hu/~pts/textrace/> and removed some
|
||||
redundant control points with PfaEdit.
|
||||
In 1991, Frans Velthuis from the Groningen University, The Netherlands,
|
||||
released a Devanagari font as Metafont source, available under the terms of
|
||||
GNU GPL. Later, Anshuman Pandey from the Washington University, Seattle, USA,
|
||||
took over the maintenance of font. Zdeněk Wagner has provided a huge amount
|
||||
of expert advice regarding the implementation of the font in FreeSerif.
|
||||
Fonts can be found on CTAN,
|
||||
<ftp://ftp.dante.de/tex-archive/language/devanagari/>.
|
||||
|
||||
Devanagari (U+0900-U+097F)
|
||||
|
||||
@ -313,8 +311,8 @@ Vyacheslav Dikonov made a Braille unicode font that could be merged
|
||||
with the UCS fonts to fill the 2800-28FF range completely. (uniform
|
||||
scaling is possible to adapt it to any cell size). He also contributed
|
||||
a free syriac font, whose glyphs (about half of them) are borrowed
|
||||
from the "Carlo Ator" font freely downloadable from
|
||||
<http://www.aacf.asso.fr/>. Vyacheslav also filled in a few missing
|
||||
from the "Carlo Ator" font by Tim Erickson.
|
||||
Vyacheslav also filled in a few missing
|
||||
spots in the U+2000-U+27FF area, e.g. the box drawing section, sets of
|
||||
subscript and superscript digits and capital Roman numbers.
|
||||
|
||||
@ -322,6 +320,13 @@ subscript and superscript digits and capital Roman numbers.
|
||||
Box Drawing (U+2500-U+257F)
|
||||
Braille (U+2800-U+28FF)
|
||||
|
||||
* Tim Erickson
|
||||
|
||||
Is the author of several Eurasian fonts, including "Carlo Ator".
|
||||
He has given his written permission for glyphs from this font to be
|
||||
included in FreeFont.
|
||||
Syriac (U+0700-U+074A)
|
||||
|
||||
|
||||
* M.S. Sridhar <mssridhar AT vsnl.com>
|
||||
|
||||
@ -431,9 +436,9 @@ sonalisonania AT yahoo.com, jitendras AT vsnl.com, alka AT ncst.ernet.in.
|
||||
website: www.janabhaaratii.org.in.
|
||||
|
||||
|
||||
* Pravin Satpute <pravin_ind21 AT hotmail.com>, Bageshri Salvi
|
||||
<sbagrshri AT yahoo.co.in>, Rahul Bhalerao <rahul_pb_india AT
|
||||
yahoo.com> and Sandeep Shedmake <surgs2k47 AT yahoo.co.in>
|
||||
* Pravin Satpute <pravin.d.s AT gmail.com>, Bageshri Salvi
|
||||
<sbagrshri AT yahoo.co.in>, Rahul Bhalerao <b.rahul.pm AT
|
||||
gmail.com> and Sandeep Shedmake <sandeep.shedmake AT gmail.com>
|
||||
|
||||
Devanagari (U+0900-U+097F)
|
||||
Gujarati (U+0A80-U+0AFF)
|
||||
@ -446,9 +451,9 @@ Unicode pan-Indic fonts: "Samyak" and "Samyak Sans". "Samyak" font
|
||||
belongs to serif style and is an original work of the team; "Samyak
|
||||
Sans" font belongs to sans serif style and is actually a compilation
|
||||
of already released Indic fonts (Gargi, Padma, Mukti, Utkal, Akruti
|
||||
and ThendralUni). Both fonts are based on Unicode standard. You can
|
||||
download the font files (released under GNU/GPL License) from
|
||||
http://www.gnowledge.org/Gnoware/localization/font.htm
|
||||
and ThendralUni). Both fonts are based on Unicode standard.
|
||||
The fonts are now hosted at Sarovar.org:
|
||||
http://sarovar.org/projects/samyak/
|
||||
|
||||
|
||||
* Kulbir Singh Thind
|
||||
@ -457,7 +462,7 @@ http://www.gnowledge.org/Gnoware/localization/font.htm
|
||||
|
||||
Dr. Kulbir Singh Thind designed a set of Gurmukhi Unicode fonts,
|
||||
AnmolUni and AnmolUni-Bold, which are available under the terms of GNU
|
||||
Generel Public Licens from the Punjabu Computing Resource Center,
|
||||
Generel Public License from the Punjabu Computing Resource Center,
|
||||
http://guca.sourceforge.net/typography/fonts/anmoluni/.
|
||||
|
||||
|
||||
@ -503,6 +508,8 @@ Made the TemporaLCGUni fonts, based on the URW++ fonts, from which at one
|
||||
point FreeSerif Cyrillic, and some of the Greek, was drawn. He also provided
|
||||
valuable direction about Cyrillic and Greek typesetting.
|
||||
|
||||
Cyrillic (U+0400-U+04FF)
|
||||
|
||||
* George Douros
|
||||
|
||||
The creator of several fonts focusing on ancient scripts and symbols.
|
||||
@ -512,7 +519,7 @@ of ancient sources.
|
||||
Aegean: Phoenecian
|
||||
Analecta: Gothic (U+10330-U+1034F)
|
||||
Musical: Byzantine & Western
|
||||
Unicode: many Miscellaneous Symbols, Miscellaneous Technical,
|
||||
Unicode: many Miscellaneous Symbols, Miscellaneous Technical, OCR,
|
||||
supplemental Symbols, and Mathematical Alphanumeric symbols,
|
||||
Mah Jong, and the outline of the Domino.
|
||||
|
||||
@ -558,19 +565,28 @@ were for a while included in FreeFont.
|
||||
|
||||
Sinhala (U+0D80-U+0DFF)
|
||||
|
||||
* Steve White <stevan_white AT googlemail.com>
|
||||
* Steve White <stevan.white AT googlemail.com>
|
||||
|
||||
Filled in a lot of missing characters, got some font features working,
|
||||
left fingerprints almost everywhere, and is responsible for these blocks:
|
||||
|
||||
Runic (U+16A0-U+16F0)
|
||||
Glagolitic (U+2C00-U+2C5F)
|
||||
Coptic (U+2C80-U+2CFF)
|
||||
Old Italic (U+10300-U+1032F)
|
||||
(The design of Runic is based roughly on one originally submitted by
|
||||
Vyacheslav Dikonov)
|
||||
|
||||
|
||||
* Pavel Skrylev is responsible for
|
||||
Cyrillic Extended-A (U+2DEO-U+2DFF)
|
||||
as well as many of the additions to
|
||||
Cyrillic Extended-B (U+A640-U+A65F)
|
||||
|
||||
|
||||
* Masoud Pourmoosa corrected several letters in Arabic for Persian:
|
||||
Arabic (U+0600-U+06FF)
|
||||
|
||||
Notes:
|
||||
|
||||
*: The glyph collection looks license-compatible, but its author has
|
||||
14707
htdocs/includes/tcpdf/fonts/freefont-20120503/ChangeLog
Normal file
14707
htdocs/includes/tcpdf/fonts/freefont-20120503/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
@ -9,18 +9,19 @@ UNIX/GNU/Linux/BSD Systems
|
||||
--------------------------
|
||||
|
||||
FreeFont works with any system using the free font rasterizer FreeType
|
||||
<http://www.freetype.org/>.
|
||||
<http://www.freetype.org/>. Some features such as glyph substitution and
|
||||
positioning may be handled by the text layout library
|
||||
Pango <http://www.pango.org/>.
|
||||
|
||||
Most recent systems using FreeType2 and Pango handle OpenType fonts well,
|
||||
but on older systems TrueType may perform better.
|
||||
|
||||
* Debian GNU/Linux
|
||||
|
||||
Users of Debian GNU/Linux system will probably want to use the Debian package,
|
||||
available from the Debian site,
|
||||
named 'ttf-freefont', available from the Debian Linux site.
|
||||
|
||||
<http://packages.debian.org/unstable/x11/ttf-freefont.html>,
|
||||
|
||||
or any of its mirrors.
|
||||
|
||||
Install them by issuing the command
|
||||
Install the fonts by issuing the command
|
||||
apt-get install ttf-freefont
|
||||
|
||||
|
||||
@ -34,7 +35,7 @@ Control Center module "kcmfontinst", which may appear in the menu as
|
||||
This is especially helpful for developers and testers.
|
||||
|
||||
|
||||
* Generic X-windows
|
||||
* Generic X Window systems
|
||||
|
||||
1) Fetch the freefont-ttf.tar.gz package with Free UCS outline fonts
|
||||
in the TrueType format.
|
||||
@ -52,13 +53,21 @@ This is especially helpful for developers and testers.
|
||||
4) Run ttmkfdir in the directory where you unpacked the fonts.
|
||||
|
||||
|
||||
Windows 95/98/NT/2000/XP; Vista
|
||||
-------------------------------
|
||||
Microsoft Windows 95/98/NT/2000/XP; Vista/7
|
||||
-------------------------------------------
|
||||
|
||||
Note that in at least Vista, XP and 2000, the OpenType versions perform much
|
||||
better than, and are recommended over, the TrueType ones.
|
||||
Note that in at least Windows 7, Vista, XP and 2000, the TrueType versions
|
||||
perform much better than, and are recommended over, the OpenType ones.
|
||||
|
||||
* Vista:
|
||||
For good font smoothing in Windows, Microsoft ClearType must be enabled.
|
||||
The native Windows web browser must be used to install, enable, and configure
|
||||
ClearType. A web search for "ClearType Tuner" will find the proper web pages.
|
||||
Recent versions of the browser raise a security block (a yellow bar at the
|
||||
top of the window), which you must act upon to allow installation. A
|
||||
checkbox in the window turns ClearType on (in Win-speek, "Turn on ClearType").
|
||||
The change happens immediately.
|
||||
|
||||
* Vista, Windows 7:
|
||||
1) From the Start menu, open Control Panels
|
||||
2) Drag-n-drop font files onto Fonts control panel
|
||||
You may get a dialog saying
|
||||
@ -69,18 +78,21 @@ better than, and are recommended over, the TrueType ones.
|
||||
The font installation is similar to Vista.
|
||||
|
||||
In order to use OpenType, users of Windows 95, 98 and NT 4.0 can
|
||||
install Adobe's 'Type Manager Light'. It is available for download
|
||||
without cost from Adobe's web site.
|
||||
install Adobe's 'Type Manager Light', which may be obtained from
|
||||
the Adobe web site.
|
||||
|
||||
Otherwise, use the TrueType versions.
|
||||
|
||||
Mac OS X
|
||||
--------
|
||||
Apple Mac OS X
|
||||
--------------
|
||||
|
||||
Installing on Mac OS X consists of moving the .ttf files to either
|
||||
Support for OpenType on MacOS X started with OS 10.4, and has been improved
|
||||
gradually in later versions.
|
||||
|
||||
Installing on Mac OS X consists of moving the font files to either
|
||||
/Library/Fonts/ or ~/Library/Fonts/
|
||||
depending on whether they should be available to all users on your system
|
||||
or just to yourself.
|
||||
or just to your own user.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
$Id: INSTALL,v 1.7 2008/12/26 12:33:31 Stevan_White Exp $
|
||||
$Id: INSTALL,v 1.11 2011-06-12 07:14:12 Stevan_White Exp $
|
||||
@ -15,27 +15,27 @@ without having to switch fonts.
|
||||
Coverage
|
||||
--------
|
||||
|
||||
FreeFont covers the following character sets
|
||||
|
||||
* ISO 8859 parts 1-15
|
||||
* CEN MES-3 European Unicode Subset
|
||||
http://www.evertype.com/standards/iso10646/pdf/cwa13873.pdf
|
||||
* IBM/Microsoft code pages 437, 850, 852, 1250, 1252 and more
|
||||
* Microsoft/Adobe Windows Glyph List 4 (WGL4)
|
||||
http://www.microsoft.com/typography/otspec/WGL4.htm
|
||||
* KOI8-R and KOI8-RU
|
||||
* DEC VT100 graphics symbols
|
||||
* International Phonetic Alphabet
|
||||
* Arabic, Hebrew, Armenian, Georgian, Ethiopian and Thai alphabets,
|
||||
including Arabic presentation forms A/B
|
||||
* mathematical symbols, including the whole TeX repertoire of symbols
|
||||
* APL symbols
|
||||
FreeFont covers the following character ranges
|
||||
* Latin, Cyrillic, and Arabic, with supplements for many languages
|
||||
* Greek, Hebrew, Armenian, Georgian, Thaana, Syriac
|
||||
* Devanagari, Bengali, Gujarati, Gurmukhi, Sinhala, Tamil, Malayalam
|
||||
* Thai, Tai Le, Kayah Li, Hanunóo, Buginese
|
||||
* Cherokee, Unified Canadian Aboriginal Syllabics
|
||||
* Ethiopian, Tifnagh, Vai, Osmanya, Coptic
|
||||
* Glagolitic, Gothic, Runic, Ugaritic, Old Persian, Phoenician, Old Italic
|
||||
* Braille, International Phonetic Alphabet
|
||||
* currency symbols, general punctuation and diacritical marks, dingbats
|
||||
* mathematical symbols, including much of the TeX repertoire of symbols
|
||||
* technical symbols: APL, OCR, arrows,
|
||||
* geometrical shapes, box drawing
|
||||
* musical symbols, gaming symbols, miscellaneous symbols
|
||||
etc.
|
||||
For more detail see <http://www.gnu.org/software/freefont/coverage.html>
|
||||
|
||||
Editing
|
||||
-------
|
||||
|
||||
The free outline font editor, George Williams's FontForge
|
||||
The free outline font editor, George Williams' FontForge
|
||||
<http://fontforge.sourceforge.net/> is used for editing the fonts.
|
||||
|
||||
Design Issues
|
||||
@ -44,19 +44,22 @@ Design Issues
|
||||
Which font shapes should be made? Historical style terms like Renaissance
|
||||
or Baroque letterforms cannot be applied beyond Latin/Cyrillic/Greek
|
||||
scripts to any greater extent than Kufi or Nashki can be applied beyond
|
||||
Arabic script; "italic" is really only meaningful for Latin letters.
|
||||
Arabic script; "italic" is strictly meaningful only for Latin letters,
|
||||
although many scripts such as Cyrillic have a history with "cursive" and
|
||||
many others with "oblique" faces.
|
||||
|
||||
However, most modern writing systems have typographic formulations for
|
||||
contrasting uniform and modulated character stroke widths, and have some
|
||||
history with "oblique", faces. Since the advent of the typewriter, most
|
||||
have developed a typographic style with uniform-width characters.
|
||||
contrasting uniform and modulated character stroke widths, and since the
|
||||
advent of the typewriter, most have developed a typographic style with
|
||||
uniform-width characters.
|
||||
|
||||
Accordingly, the FreeFont family has one monospaced - FreeMono - and two
|
||||
proportional faces (one with uniform stroke - FreeSans - and one with
|
||||
modulated stroke - FreeSerif).
|
||||
|
||||
To make text from different writing systems look good side-by-side, each
|
||||
FreeFont face is meant to contain characters of similar style and weight.
|
||||
The point of having characters from different writing systems in one font
|
||||
is that mixed text should look good, and so each FreeFont face contains
|
||||
characters of similar style and weight.
|
||||
|
||||
Licensing
|
||||
---------
|
||||
@ -84,25 +87,41 @@ License. If you modify this font, you may extend this exception to your
|
||||
version of the font, but you are not obligated to do so. If you do not
|
||||
wish to do so, delete this exception statement from your version.
|
||||
|
||||
|
||||
Files and their suffixes
|
||||
------------------------
|
||||
|
||||
The files with .sfd (Spline Font Database) are in FontForge's native format.
|
||||
Please use these if you plan to modify the font files.
|
||||
They may be used to modify the fonts.
|
||||
|
||||
TrueType fonts for immediate consumption are the files with the .ttf
|
||||
(TrueType Font) suffix. These are ready to use in Xwindows based
|
||||
systems using FreeType, on Mac OS, and on older Windows systems.
|
||||
TrueType fonts are the files with the .ttf (TrueType Font) suffix. These
|
||||
are ready to use in Linux/Unix, on Apple Mac OS, and on Microsoft Windows
|
||||
systems.
|
||||
|
||||
OpenType fonts (with suffix .otf) are for use in Windows Vista.
|
||||
Note that although they can be installed on Linux, but many applications
|
||||
in Linux still don't support them.
|
||||
OpenType fonts (with suffix .otf) are preferred for use on Linux/Unix,
|
||||
but *not* for recent Microsoft Windows systems.
|
||||
See the INSTALL file for more information.
|
||||
|
||||
Web Open Font Format files (with suffix .woff) are for use in Web sites.
|
||||
See the webfont_guidelines.txt for further information.
|
||||
|
||||
Further information
|
||||
-------------------
|
||||
|
||||
Home page of GNU FreeFont:
|
||||
http://www.gnu.org/software/freefont/
|
||||
|
||||
More information is at the main project page of Free UCS scalable fonts:
|
||||
http://savannah.gnu.org/projects/freefont/
|
||||
|
||||
To report problems with GNU FreeFont, it is best to obtain a Savannah
|
||||
account and post reports using that account on
|
||||
https://savannah.gnu.org/bugs/
|
||||
|
||||
Public discussions about GNU FreeFont may be posted to the mailing list
|
||||
freefont-bugs@gnu.org
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
Primoz Peterlin, <primoz.peterlin@biofiz.mf.uni-lj.si>
|
||||
Steve White <stevan.white@googlemail.com>
|
||||
Original author: Primoz Peterlin
|
||||
Current administrator: Steve White <stevan.white@googlemail.com>
|
||||
|
||||
Free UCS scalable fonts: http://savannah.gnu.org/projects/freefont/
|
||||
$Id: README,v 1.7 2009/01/13 08:43:23 Stevan_White Exp $
|
||||
$Id: README,v 1.10 2011-06-12 07:14:12 Stevan_White Exp $
|
||||
115
htdocs/includes/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING
Normal file
115
htdocs/includes/tcpdf/fonts/freefont-20120503/TROUBLESHOOTING
Normal file
@ -0,0 +1,115 @@
|
||||
Troubleshooting GNU FreeFont
|
||||
|
||||
So your text looks lousy, although you installed FreeFont and you seem to be
|
||||
using it. What do you do?
|
||||
|
||||
Before you blame the problem on FreeFont, take the time to double-check that
|
||||
the text you are looking at is really rendered with FreeFont.
|
||||
|
||||
Be aware that not all Unicode characters are supported by FreeFont, and
|
||||
even characters supported by one face, such as Serif, might not be
|
||||
supported by other faces such as Sans.
|
||||
|
||||
Also, some systems have settings that strongly affect the rendering
|
||||
of fonts. It may be worth tweaking these.
|
||||
|
||||
glyph substitution
|
||||
==================
|
||||
|
||||
When given the task of displaying characters in text, modern font rendering
|
||||
software usually tries to display *something*, even if the font it is
|
||||
*supposed* to be using does not contain glyphs for all the characters in the
|
||||
text. The software will snoop through all the fonts on the system to find
|
||||
one that has a glyph for the one missing in the desired font. So although
|
||||
you have specified FreeSans-bold, you may be looking at a letter from quite
|
||||
a different font.
|
||||
|
||||
First double-check that the font in question really contains the character
|
||||
in question. If you don't have font development software, this can be
|
||||
tricky. In the case of FreeFont, you can check if a given character
|
||||
range is supported: <http://www.gnu.org/software/freefont/coverage.html>
|
||||
|
||||
Next double-check that your application (web browser, text editor, etc)
|
||||
has indeed been properly instructed to use the font.
|
||||
|
||||
Then double-check that the font is really installed in the system.
|
||||
(This depends on the operating system, of course.)
|
||||
|
||||
Linux and Unix
|
||||
==============
|
||||
|
||||
Modern Linux systems use a system called fontconfig, which maintains a font
|
||||
cache, for efficiency.
|
||||
|
||||
The font cache can really complicate font installation and troubleshooting
|
||||
however. It can happen that when a font is newly installed, what is
|
||||
displayed is coming out of an old cache entry rather than the new font.
|
||||
|
||||
Just what to do depends on how and where the font was installed.
|
||||
|
||||
Fonts installed system-wide are usually put in a directory such as
|
||||
/usr/share/fonts/
|
||||
the font cache for these might be in
|
||||
/var/cache/fontconfig/
|
||||
Fonts installed just for one user account will typically be in
|
||||
~/.fonts/
|
||||
and the cache will be
|
||||
~/.fontconfig/
|
||||
|
||||
You can clean your local cache merely by emptying the directory
|
||||
~/.fontconfig/
|
||||
In any case, to clean the cache, you can use the fontconfig command
|
||||
fc-cache -vf
|
||||
If run as root, it will clean the system cache, if run as a normal user,
|
||||
it cleans only the normal user's cache.
|
||||
|
||||
The procedure for local fonts is:
|
||||
1) shut off any program using the fonts in question
|
||||
2) clean the cache
|
||||
3) re-start the program
|
||||
The procedure for system-wide fonts is:
|
||||
1) log out of the X Windows session
|
||||
2) in a console, clean the cache
|
||||
3) log in to an X Windows session
|
||||
|
||||
LibreOffice / OpenOffice
|
||||
========================
|
||||
These products have their own font rendering libraries, which have
|
||||
idiosyncratic behavior.
|
||||
|
||||
It has recently been reported that as of LibreOffice 3.5.1, font features
|
||||
are disabled for OpenType fonts. If you use FreeFont with these products,
|
||||
you may want to install the TrueType versions of the fonts.
|
||||
|
||||
Windows
|
||||
=======
|
||||
|
||||
The most common complaint has to do with "blurry text". There are two
|
||||
causes.
|
||||
|
||||
The first is that ClearType smoothing is turned off. The best way to check
|
||||
is to use the native Windows Web browser. Do a search for "ClearType Tuner".
|
||||
The Microsoft pages install a tuner for ClearType. A security block notice
|
||||
will appear at the top of the window--you have to allow the installation.
|
||||
Then check the box "Turn on ClearType". The change happens immediately.
|
||||
|
||||
The secont cause is that the FreeFont version with cubic spline outlines is
|
||||
installed. As of the 2012 GNU FreeFont release, the TrueType builds have
|
||||
quadratic splines, which work best with Windows' rendering software.
|
||||
TTF (TrueType) quadratic splines Windows 7, Vista, Windows XP.
|
||||
OTF (OpenType) cubic splines Linux, Mac
|
||||
|
||||
Note also: Firefox has a setting for ClearType:
|
||||
gfx.font_rendering.cleartype_params.rendering_mode
|
||||
A value of 2 sets it to old-style GDI rendering, while -1 is the default.
|
||||
|
||||
reporting problems
|
||||
==================
|
||||
|
||||
If you really think you're seeing a bug in FreeFont, or if you have
|
||||
a suggestion, consider opening a problem report at
|
||||
https://savannah.gnu.org/bugs/?group=freefont
|
||||
It is best that you make a Savannah account and log in with that, so
|
||||
you can be e-mailed whenever changes are made to your report.
|
||||
|
||||
$Id: troubleshooting.txt,v 1.10 2011-07-16 08:38:06 Stevan_White Exp $
|
||||
185
htdocs/includes/tcpdf/fonts/freefont-20120503/USAGE
Normal file
185
htdocs/includes/tcpdf/fonts/freefont-20120503/USAGE
Normal file
@ -0,0 +1,185 @@
|
||||
Usage of GNU FreeFont
|
||||
|
||||
Language scripts and faces
|
||||
==========================
|
||||
|
||||
There are three faces (serif, sans-serif, and monospace), and four styles
|
||||
(regular, bold, cursive/italic, and bold cursive/italic) for each face.
|
||||
There is one font file per face/style combination: 12 files in total.
|
||||
|
||||
The letters for various languages, as well as specialized symbols, exist
|
||||
among the various font files, but they are not uniformly populated.
|
||||
All the fonts have complete support for Latin, Cyrillic, and Greek, as
|
||||
well as most of the extensions for those scripts.
|
||||
|
||||
At this time, serif regular has by far the largest number of letters, and
|
||||
supports the largest number of writing scripts. However there are writing
|
||||
scripts supported by the sans-serif but not by serif.
|
||||
|
||||
For an overview of which scripts and sets of symbols are supported by
|
||||
which face, see the FreeFont 'coverage' web page.
|
||||
|
||||
Font features
|
||||
=============
|
||||
|
||||
FreeFont has numerous font "features" that perform alterations to the basic
|
||||
letters of the font, replacing them with other letters, or positioning them
|
||||
with respect to other letters.
|
||||
|
||||
Many features are activated automatically, but in some environments, they
|
||||
present some user control. This documents those features with user control.
|
||||
|
||||
Language-specific features
|
||||
==========================
|
||||
|
||||
Some OpenType font features are activated only when the text is specified to
|
||||
be of a certain language.
|
||||
|
||||
This is done in HTML by enclosing the text with a tag whose 'lang' attribute
|
||||
is set to the appropriate ISO 632.2 language code. In a word processor,
|
||||
any block of text can be given a language setting.
|
||||
|
||||
Latin
|
||||
-----
|
||||
Catalan ligature improving l·l
|
||||
Dutch ligatures for ij, IJ
|
||||
Sami localized form for letter Eng
|
||||
Turkish overrides ligatures fi ffi of Latin
|
||||
|
||||
Cyrillic
|
||||
--------
|
||||
Ukrainian ligature for double i-diaresis
|
||||
Serbian/Macedonian localized letters be, and more in italic
|
||||
Bulgarian style set for modern glyphs
|
||||
|
||||
Hebrew
|
||||
------
|
||||
Yiddish raised vowels under yo
|
||||
|
||||
Devanagari
|
||||
----------
|
||||
Sanskrit much larger set of ligatures
|
||||
|
||||
Hindi, Marathi better spacing of Western punctuation marks
|
||||
|
||||
Indic languages
|
||||
---------------
|
||||
|
||||
The 'danda' character is encoded in Unicode only in the Devanagari range.
|
||||
When writing in scripts of other Indic languages, this same character is to
|
||||
be used. But the shapes and line thicknesses of glyphs vary slightly from
|
||||
one script to another, so the same glyph for 'danda' may not fit all scripts.
|
||||
|
||||
By specifying the language of the text, an appropriate glyph for 'danda'
|
||||
will be obtained.
|
||||
|
||||
Style sets
|
||||
==========
|
||||
|
||||
These replacements are activated by specifying a "Style Set".
|
||||
These features are accessible only from typesetting software.
|
||||
|
||||
Cyrillic Bulgarian modern (ss01)
|
||||
|
||||
Devanagari Bombay (ss02), Calcutta (ss03), Nepali (ss04)
|
||||
|
||||
Discretionary features
|
||||
======================
|
||||
These features are accessible only from typesetting software.
|
||||
Typically the user must specifically request them.
|
||||
|
||||
Unless otherwise noted, these are available only in FreeSerif.
|
||||
|
||||
Ligatures and substitutions
|
||||
---------------------------
|
||||
|
||||
Arabic, Armenian, Hebrew, German, Dutch
|
||||
|
||||
Small captials
|
||||
--------------
|
||||
|
||||
A limited set of specially drawn small capital letters in Latin.
|
||||
|
||||
Superscript and subscript
|
||||
-------------------------
|
||||
|
||||
Transform a limited set of characters--mostly Latin letters and numerals--
|
||||
to versions well-sized and positioned as superscript or subscript.
|
||||
|
||||
Numeral styles
|
||||
--------------
|
||||
|
||||
The default numerals of FreeSerif are mono-spaced and of even height.
|
||||
It also features proportionally-spaced numerals, and "old-style" numerals--
|
||||
those which vary in height and sometimes go beneath the baseline.
|
||||
These can be had at discretion.
|
||||
|
||||
Diagonal fractions
|
||||
------------------
|
||||
|
||||
A limited set of diagonal fraction substitutions are available at discretion.
|
||||
The set is more than what is encoded in Unicode.
|
||||
They work with the ASCII slash or the mathematical slash U+2215.
|
||||
The transform a sequence "number-slash-number" to a diagonal form.
|
||||
|
||||
Zero
|
||||
----
|
||||
|
||||
A slashed form of the numeral zero is available at discretion.
|
||||
Available in all faces.
|
||||
|
||||
Alternative characters
|
||||
======================
|
||||
|
||||
FreeSerif has some listings of alternatives for specific characters.
|
||||
Again this is use primarily in specialized typesetting software.
|
||||
|
||||
Greek, Latin
|
||||
|
||||
Use in LaTeX
|
||||
============
|
||||
It is possible to use Unicode fonts in recent LaTeX implementations, but in
|
||||
LuaTeX http://www.luatex.org/ and
|
||||
XeTeX http://tug.org/xetex/
|
||||
it is particularly easy to use Unicode text, and to enable font features.
|
||||
Recent versions of these systems use the 'fontspec' package to choose fonts
|
||||
and features.
|
||||
|
||||
A very simple document might contain the lines
|
||||
---------------------------------------------------------------------------
|
||||
\documentclass{ltxdockit}
|
||||
\usepackage{fontspec}
|
||||
\usepackage{xunicode}
|
||||
\setmainfont[]{FreeSerif}
|
||||
\begin{document}
|
||||
{\fontspec[Script=Default,Fractions={On}]{FreeSerif}
|
||||
1/7 3/10 7/10}
|
||||
|
||||
x\raisebox{-0.5ex}{{\scriptsize ai}}
|
||||
x{\fontspec[Script=Default,VerticalPosition={Inferior}]{FreeSerif}
|
||||
abcdefghijklmnopqrstuvwxyz+−(0123456789)} \\
|
||||
x\raisebox{0.85ex}{{\scriptsize ai}}
|
||||
x{\fontspec[Script=Default,VerticalPosition={Superior}]{FreeSerif}
|
||||
abcdefghijklmnopqrstuvwxyz+−(0123456789)}
|
||||
|
||||
{\fontspec[Script=Latin]{FreeSerif}
|
||||
\textsc{Small Caps} }
|
||||
|
||||
{ Bсички хора се раждат свободни и равни по достойнство и права.
|
||||
\fontspec[Script=Cyrillic,Language=Bulgarian,Variant={1}]{FreeSerif} \selectfont
|
||||
Bсички хора се раждат свободни и равни по достойнство и права. }
|
||||
|
||||
\end{document}
|
||||
---------------------------------------------------------------------------
|
||||
Here are some 'fontspec' setting-value pairs meaningful for FreeFont.
|
||||
|
||||
Numbers: Lining OldStyle Proportional SlashedZero
|
||||
Fractions: On
|
||||
VerticalPosition: Superior Inferior
|
||||
Ligatures: Common Historical
|
||||
Letters: UppercaseSmallCaps
|
||||
Variant: 1 (etc. -- must be in {} picks style set.)
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
|
||||
$Id: usage.txt,v 1.10 2011-07-16 08:38:06 Stevan_White Exp $
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : datamatrix.php
|
||||
// Version : 1.0.004
|
||||
// Version : 1.0.008
|
||||
// Begin : 2010-06-07
|
||||
// Last Update : 2013-02-04
|
||||
// Last Update : 2014-05-06
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2010-2012 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2010-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -40,7 +40,7 @@
|
||||
*
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.004
|
||||
* @version 1.0.008
|
||||
*/
|
||||
|
||||
// custom definitions
|
||||
@ -256,14 +256,16 @@ class Datamatrix {
|
||||
return false;
|
||||
} elseif ($params[11] > $nd) {
|
||||
// add padding
|
||||
if ($this->last_enc == ENC_EDF) {
|
||||
// switch to ASCII encoding
|
||||
$cw[] = 124;
|
||||
++$nd;
|
||||
} elseif (($this->last_enc != ENC_ASCII) AND ($this->last_enc != ENC_BASE256)) {
|
||||
// switch to ASCII encoding
|
||||
$cw[] = 254;
|
||||
++$nd;
|
||||
if ((($params[11] - $nd) > 1) AND ($cw[($nd - 1)] != 254)) {
|
||||
if ($this->last_enc == ENC_EDF) {
|
||||
// switch to ASCII encoding
|
||||
$cw[] = 124;
|
||||
++$nd;
|
||||
} elseif (($this->last_enc != ENC_ASCII) AND ($this->last_enc != ENC_BASE256)) {
|
||||
// switch to ASCII encoding
|
||||
$cw[] = 254;
|
||||
++$nd;
|
||||
}
|
||||
}
|
||||
if ($params[11] > $nd) {
|
||||
// add first pad
|
||||
@ -652,6 +654,9 @@ class Datamatrix {
|
||||
switch ($mode) {
|
||||
case ENC_ASCII: { // ASCII character 0 to 127
|
||||
$cw = 254;
|
||||
if ($this->last_enc == ENC_EDF) {
|
||||
$cw = 124;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ENC_C40: { // Upper-case alphanumeric
|
||||
@ -707,6 +712,8 @@ class Datamatrix {
|
||||
$cw_num = 0; // number of data codewords
|
||||
$data_lenght = strlen($data); // number of chars
|
||||
while ($pos < $data_lenght) {
|
||||
// set last used encoding
|
||||
$this->last_enc = $enc;
|
||||
switch ($enc) {
|
||||
case ENC_ASCII: { // STEP B. While in ASCII encodation
|
||||
if (($data_lenght > 1) AND ($pos < ($data_lenght - 1)) AND ($this->isCharMode(ord($data[$pos]), ENC_ASCII_NUM) AND $this->isCharMode(ord($data[$pos + 1]), ENC_ASCII_NUM))) {
|
||||
@ -799,7 +806,13 @@ class Datamatrix {
|
||||
// 1. If the C40 encoding is at the point of starting a new double symbol character and if the look-ahead test (starting at step J) indicates another mode, switch to that mode.
|
||||
$newenc = $this->lookAheadTest($data, $pos, $enc);
|
||||
if ($newenc != $enc) {
|
||||
// switch to new encoding
|
||||
$enc = $newenc;
|
||||
if ($enc != ENC_ASCII) {
|
||||
// set unlatch character
|
||||
$cw[] = $this->getSwitchEncodingCodeword(ENC_ASCII);
|
||||
++$cw_num;
|
||||
}
|
||||
$cw[] = $this->getSwitchEncodingCodeword($enc);
|
||||
++$cw_num;
|
||||
$pos -= $p;
|
||||
@ -811,20 +824,26 @@ class Datamatrix {
|
||||
// process last data (if any)
|
||||
if ($p > 0) {
|
||||
// get remaining number of data symbols
|
||||
$cwr = ($this->getMaxDataCodewords($cw_num + 2) - $cw_num);
|
||||
$cwr = ($this->getMaxDataCodewords($cw_num) - $cw_num);
|
||||
if (($cwr == 1) AND ($p == 1)) {
|
||||
// d. If one symbol character remains and one C40 value (data character) remains to be encoded
|
||||
$c1 = array_shift($temp_cw);
|
||||
--$p;
|
||||
$cw[] = ($c1 + 1);
|
||||
$cw[] = ($chr + 1);
|
||||
++$cw_num;
|
||||
$pos = $epos;
|
||||
$enc = ENC_ASCII;
|
||||
$this->last_enc = $enc;
|
||||
} elseif (($cwr == 2) AND ($p == 1)) {
|
||||
// c. If two symbol characters remain and only one C40 value (data character) remains to be encoded
|
||||
$c1 = array_shift($temp_cw);
|
||||
--$p;
|
||||
$cw[] = 254;
|
||||
$cw[] = ($c1 + 1);
|
||||
$cw[] = ($chr + 1);
|
||||
$cw_num += 2;
|
||||
$pos = $epos;
|
||||
$enc = ENC_ASCII;
|
||||
$this->last_enc = $enc;
|
||||
} elseif (($cwr == 2) AND ($p == 2)) {
|
||||
// b. If two symbol characters remain and two C40 values remain to be encoded
|
||||
$c1 = array_shift($temp_cw);
|
||||
@ -834,12 +853,17 @@ class Datamatrix {
|
||||
$cw[] = ($tmp >> 8);
|
||||
$cw[] = ($tmp % 256);
|
||||
$cw_num += 2;
|
||||
$pos = $epos;
|
||||
$enc = ENC_ASCII;
|
||||
$this->last_enc = $enc;
|
||||
} else {
|
||||
// switch to ASCII encoding
|
||||
if ($enc != ENC_ASCII) {
|
||||
$enc = ENC_ASCII;
|
||||
$this->last_enc = $enc;
|
||||
$cw[] = $this->getSwitchEncodingCodeword($enc);
|
||||
++$cw_num;
|
||||
$pos = ($epos - $p);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -860,6 +884,12 @@ class Datamatrix {
|
||||
++$field_lenght;
|
||||
}
|
||||
if (($field_lenght == 4) OR ($epos == $data_lenght) OR !$this->isCharMode($chr, ENC_EDF)) {
|
||||
if (($epos == $data_lenght) AND ($field_lenght < 3)) {
|
||||
$enc = ENC_ASCII;
|
||||
$cw[] = $this->getSwitchEncodingCodeword($enc);
|
||||
++$cw_num;
|
||||
break;
|
||||
}
|
||||
if ($field_lenght < 4) {
|
||||
// set unlatch character
|
||||
$temp_cw[] = 0x1f;
|
||||
@ -869,6 +899,7 @@ class Datamatrix {
|
||||
$temp_cw[] = 0;
|
||||
}
|
||||
$enc = ENC_ASCII;
|
||||
$this->last_enc = $enc;
|
||||
}
|
||||
// encodes four data characters in three codewords
|
||||
$tcw = (($temp_cw[0] & 0x3F) << 2) + (($temp_cw[1] & 0x30) >> 4);
|
||||
@ -905,8 +936,6 @@ class Datamatrix {
|
||||
if ($newenc != $enc) {
|
||||
// 1. If the look-ahead test (starting at step J) indicates another mode, switch to that mode.
|
||||
$enc = $newenc;
|
||||
$cw[] = $this->getSwitchEncodingCodeword($enc);
|
||||
++$cw_num;
|
||||
break; // exit from B256 mode
|
||||
} else {
|
||||
// 2. Otherwise, process the next character in Base 256 encodation.
|
||||
@ -918,25 +947,23 @@ class Datamatrix {
|
||||
}
|
||||
// set field lenght
|
||||
if ($field_lenght <= 249) {
|
||||
$cw[] = $field_lenght;
|
||||
$cw[] = $this->get255StateCodeword($field_lenght, ($cw_num + 1));
|
||||
++$cw_num;
|
||||
} else {
|
||||
$cw[] = (floor($field_lenght / 250) + 249);
|
||||
$cw[] = ($field_lenght % 250);
|
||||
$cw[] = $this->get255StateCodeword((floor($field_lenght / 250) + 249), ($cw_num + 1));
|
||||
$cw[] = $this->get255StateCodeword(($field_lenght % 250), ($cw_num + 2));
|
||||
$cw_num += 2;
|
||||
}
|
||||
if (!empty($temp_cw)) {
|
||||
// add B256 field
|
||||
foreach ($temp_cw as $p => $cht) {
|
||||
$cw[] = $this->get255StateCodeword($chr, ($cw_num + $p));
|
||||
$cw[] = $this->get255StateCodeword($cht, ($cw_num + $p + 1));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
} // end of switch enc
|
||||
} // end of while
|
||||
// set last used encoding
|
||||
$this->last_enc = $enc;
|
||||
return $cw;
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : pdf417.php
|
||||
// Version : 1.0.004
|
||||
// Version : 1.0.005
|
||||
// Begin : 2010-06-03
|
||||
// Last Update : 2012-02-06
|
||||
// Last Update : 2014-04-25
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
@ -50,7 +50,7 @@
|
||||
* (requires PHP bcmath extension)
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.003
|
||||
* @version 1.0.005
|
||||
*/
|
||||
|
||||
// definitions
|
||||
@ -934,17 +934,22 @@ class PDF417 {
|
||||
$sublen = strlen($code);
|
||||
}
|
||||
if ($sublen == 6) {
|
||||
$t = bcmul(''.ord($code{0}), '1099511627776');
|
||||
$t = bcadd($t, bcmul(''.ord($code{1}), '4294967296'));
|
||||
$t = bcadd($t, bcmul(''.ord($code{2}), '16777216'));
|
||||
$t = bcadd($t, bcmul(''.ord($code{3}), '65536'));
|
||||
$t = bcadd($t, bcmul(''.ord($code{4}), '256'));
|
||||
$t = bcadd($t, ''.ord($code{5}));
|
||||
$t = bcmul(''.ord($code[0]), '1099511627776');
|
||||
$t = bcadd($t, bcmul(''.ord($code[1]), '4294967296'));
|
||||
$t = bcadd($t, bcmul(''.ord($code[2]), '16777216'));
|
||||
$t = bcadd($t, bcmul(''.ord($code[3]), '65536'));
|
||||
$t = bcadd($t, bcmul(''.ord($code[4]), '256'));
|
||||
$t = bcadd($t, ''.ord($code[5]));
|
||||
// tmp array for the 6 bytes block
|
||||
$cw6 = array();
|
||||
do {
|
||||
$d = bcmod($t, '900');
|
||||
$t = bcdiv($t, '900');
|
||||
array_unshift($cw, $d);
|
||||
// prepend the value to the beginning of the array
|
||||
array_unshift($cw6, $d);
|
||||
} while ($t != '0');
|
||||
// append the result array at the end
|
||||
$cw = array_merge($cw, $cw6);
|
||||
} else {
|
||||
for ($i = 0; $i < $sublen; ++$i) {
|
||||
$cw[] = ord($code{$i});
|
||||
|
||||
Binary file not shown.
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_colors.php
|
||||
// Version : 1.0.000
|
||||
// Version : 1.0.004
|
||||
// Begin : 2002-04-09
|
||||
// Last Update : 2013-03-25
|
||||
// Last Update : 2014-04-25
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
@ -42,7 +42,7 @@
|
||||
* @class TCPDF_COLORS
|
||||
* PHP color class for TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @version 1.0.000
|
||||
* @version 1.0.004
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
*/
|
||||
class TCPDF_COLORS {
|
||||
@ -217,12 +217,22 @@ class TCPDF_COLORS {
|
||||
* @public static
|
||||
*/
|
||||
public static $spotcolor = array (
|
||||
// the following are just examples, fill the array with your own values
|
||||
'mytcpdfblack' => array(0, 0, 0, 100, 'My TCPDF Black'),
|
||||
'mytcpdfred' => array(30, 100, 90, 10, 'My TCPDF Red'),
|
||||
'mytcpdfgreen' => array(100, 30, 100, 0, 'My TCPDF Green'),
|
||||
'mytcpdfblue' => array(100, 60, 10, 5, 'My TCPDF Blue'),
|
||||
'mytcpdfyellow' => array(0, 20, 100, 0, 'My TCPDF Yellow'),
|
||||
// special registration colors
|
||||
'none' => array( 0, 0, 0, 0, 'None'),
|
||||
'all' => array(100, 100, 100, 100, 'All'),
|
||||
// standard CMYK colors
|
||||
'cyan' => array(100, 0, 0, 0, 'Cyan'),
|
||||
'magenta' => array( 0, 100, 0, 0, 'Magenta'),
|
||||
'yellow' => array( 0, 0, 100, 0, 'Yellow'),
|
||||
'key' => array( 0, 0, 0, 100, 'Key'),
|
||||
// alias
|
||||
'white' => array( 0, 0, 0, 0, 'White'),
|
||||
'black' => array( 0, 0, 0, 100, 'Black'),
|
||||
// standard RGB colors
|
||||
'red' => array( 0, 100, 100, 0, 'Red'),
|
||||
'green' => array(100, 0, 100, 0, 'Green'),
|
||||
'blue' => array(100, 100, 0, 0, 'Blue'),
|
||||
// Add here standard spot colors or dynamically define them with AddSpotColor()
|
||||
// ...
|
||||
); // end of spot colors
|
||||
|
||||
@ -296,7 +306,7 @@ class TCPDF_COLORS {
|
||||
}
|
||||
return $returncolor;
|
||||
}
|
||||
} elseif (($dotpos = strpos($color, '.')) !== false) {
|
||||
} elseif ((substr($color, 0, 4) != 'cmyk') AND (substr($color, 0, 3) != 'rgb') AND (($dotpos = strpos($color, '.')) !== false)) {
|
||||
// remove class parent (i.e.: color.red)
|
||||
$color = substr($color, ($dotpos + 1));
|
||||
if ($color == 'transparent') {
|
||||
@ -341,7 +351,7 @@ class TCPDF_COLORS {
|
||||
}
|
||||
return $returncolor;
|
||||
}
|
||||
if ($color{0} != '#') {
|
||||
if ($color[0] != '#') {
|
||||
// COLOR NAME
|
||||
if (isset(self::$webcolor[$color])) {
|
||||
// web color
|
||||
@ -445,7 +455,7 @@ class TCPDF_COLORS {
|
||||
}
|
||||
|
||||
|
||||
} // --- END OF CLASS ---
|
||||
} // END OF TCPDF_COLORS CLASS
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_filters.php
|
||||
// Version : 1.0.000
|
||||
// Version : 1.0.001
|
||||
// Begin : 2011-05-23
|
||||
// Last Update : 2013-03-17
|
||||
// Last Update : 2014-04-25
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
@ -37,7 +37,7 @@
|
||||
* This is a PHP class for decoding common PDF filters (PDF 32000-2008 - 7.4 Filters).<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.000
|
||||
* @version 1.0.001
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -45,7 +45,7 @@
|
||||
* This is a PHP class for decoding common PDF filters (PDF 32000-2008 - 7.4 Filters).<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @brief This is a PHP class for decoding common PDF filters.
|
||||
* @version 1.0.000
|
||||
* @version 1.0.001
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
*/
|
||||
class TCPDF_FILTERS {
|
||||
@ -167,12 +167,12 @@ class TCPDF_FILTERS {
|
||||
// EOD shall behave as if a 0 (zero) followed the last digit
|
||||
$data = substr($data, 0, -1).'0'.substr($data, -1);
|
||||
} else {
|
||||
self::Error('decodeASCIIHex: invalid code');
|
||||
self::Error('decodeFilterASCIIHexDecode: invalid code');
|
||||
}
|
||||
}
|
||||
// check for invalid characters
|
||||
if (preg_match('/[^a-fA-F\d]/', $data) > 0) {
|
||||
self::Error('decodeASCIIHex: invalid code');
|
||||
self::Error('decodeFilterASCIIHexDecode: invalid code');
|
||||
}
|
||||
// get one byte of binary data for each pair of ASCII hexadecimal digits
|
||||
$decoded = pack('H*', $data);
|
||||
@ -207,7 +207,7 @@ class TCPDF_FILTERS {
|
||||
$data_length = strlen($data);
|
||||
// check for invalid characters
|
||||
if (preg_match('/[^\x21-\x75,\x74]/', $data) > 0) {
|
||||
self::Error('decodeASCII85: invalid code');
|
||||
self::Error('decodeFilterASCII85Decode: invalid code');
|
||||
}
|
||||
// z sequence
|
||||
$zseq = chr(0).chr(0).chr(0).chr(0);
|
||||
@ -224,7 +224,7 @@ class TCPDF_FILTERS {
|
||||
if ($group_pos == 0) {
|
||||
$decoded .= $zseq;
|
||||
} else {
|
||||
self::Error('decodeASCII85: invalid code');
|
||||
self::Error('decodeFilterASCII85Decode: invalid code');
|
||||
}
|
||||
} else {
|
||||
// the value represented by a group of 5 characters should never be greater than 2^32 - 1
|
||||
@ -256,7 +256,7 @@ class TCPDF_FILTERS {
|
||||
break;
|
||||
}
|
||||
case 1: {
|
||||
self::Error('decodeASCII85: invalid code');
|
||||
self::Error('decodeFilterASCII85Decode: invalid code');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -320,12 +320,12 @@ class TCPDF_FILTERS {
|
||||
if ($index < $dix) {
|
||||
// index exist on dictionary
|
||||
$decoded .= $dictionary[$index];
|
||||
$dic_val = $dictionary[$prev_index].$dictionary[$index]{0};
|
||||
$dic_val = $dictionary[$prev_index].$dictionary[$index][0];
|
||||
// store current index
|
||||
$prev_index = $index;
|
||||
} else {
|
||||
// index do not exist on dictionary
|
||||
$dic_val = $dictionary[$prev_index].$dictionary[$prev_index]{0};
|
||||
$dic_val = $dictionary[$prev_index].$dictionary[$prev_index][0];
|
||||
$decoded .= $dic_val;
|
||||
}
|
||||
// update dictionary
|
||||
@ -354,9 +354,9 @@ class TCPDF_FILTERS {
|
||||
*/
|
||||
public static function decodeFilterFlateDecode($data) {
|
||||
// intialize string to return
|
||||
$decoded = gzuncompress($data);
|
||||
$decoded = @gzuncompress($data);
|
||||
if ($decoded === false) {
|
||||
self::Error('decodeFlate: invalid code');
|
||||
self::Error('decodeFilterFlateDecode: invalid code');
|
||||
}
|
||||
return $decoded;
|
||||
}
|
||||
@ -398,7 +398,7 @@ class TCPDF_FILTERS {
|
||||
}
|
||||
|
||||
/**
|
||||
* CCITTFaxDecode (NOT IMPLEMETED)
|
||||
* CCITTFaxDecode (NOT IMPLEMETED - RETURN AN EXCEPTION)
|
||||
* Decompresses data encoded using the CCITT facsimile standard, reproducing the original data (typically monochrome image data at 1 bit per pixel).
|
||||
* @param $data (string) Data to decode.
|
||||
* @return Decoded data string.
|
||||
@ -406,11 +406,12 @@ class TCPDF_FILTERS {
|
||||
* @public static
|
||||
*/
|
||||
public static function decodeFilterCCITTFaxDecode($data) {
|
||||
return $data;
|
||||
self::Error('~decodeFilterCCITTFaxDecode: this method has not been yet implemented');
|
||||
//return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* JBIG2Decode (NOT IMPLEMETED)
|
||||
* JBIG2Decode (NOT IMPLEMETED - RETURN AN EXCEPTION)
|
||||
* Decompresses data encoded using the JBIG2 standard, reproducing the original monochrome (1 bit per pixel) image data (or an approximation of that data).
|
||||
* @param $data (string) Data to decode.
|
||||
* @return Decoded data string.
|
||||
@ -418,11 +419,12 @@ class TCPDF_FILTERS {
|
||||
* @public static
|
||||
*/
|
||||
public static function decodeFilterJBIG2Decode($data) {
|
||||
return $data;
|
||||
self::Error('~decodeFilterJBIG2Decode: this method has not been yet implemented');
|
||||
//return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* DCTDecode (NOT IMPLEMETED)
|
||||
* DCTDecode (NOT IMPLEMETED - RETURN AN EXCEPTION)
|
||||
* Decompresses data encoded using a DCT (discrete cosine transform) technique based on the JPEG standard, reproducing image sample data that approximates the original data.
|
||||
* @param $data (string) Data to decode.
|
||||
* @return Decoded data string.
|
||||
@ -430,11 +432,12 @@ class TCPDF_FILTERS {
|
||||
* @public static
|
||||
*/
|
||||
public static function decodeFilterDCTDecode($data) {
|
||||
return $data;
|
||||
self::Error('~decodeFilterDCTDecode: this method has not been yet implemented');
|
||||
//return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* JPXDecode (NOT IMPLEMETED)
|
||||
* JPXDecode (NOT IMPLEMETED - RETURN AN EXCEPTION)
|
||||
* Decompresses data encoded using the wavelet-based JPEG2000 standard, reproducing the original image data.
|
||||
* @param $data (string) Data to decode.
|
||||
* @return Decoded data string.
|
||||
@ -442,11 +445,12 @@ class TCPDF_FILTERS {
|
||||
* @public static
|
||||
*/
|
||||
public static function decodeFilterJPXDecode($data) {
|
||||
return $data;
|
||||
self::Error('~decodeFilterJPXDecode: this method has not been yet implemented');
|
||||
//return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Crypt (NOT IMPLEMETED)
|
||||
* Crypt (NOT IMPLEMETED - RETURN AN EXCEPTION)
|
||||
* Decrypts data encrypted by a security handler, reproducing the data as it was before encryption.
|
||||
* @param $data (string) Data to decode.
|
||||
* @return Decoded data string.
|
||||
@ -454,20 +458,20 @@ class TCPDF_FILTERS {
|
||||
* @public static
|
||||
*/
|
||||
public static function decodeFilterCrypt($data) {
|
||||
return $data;
|
||||
self::Error('~decodeFilterCrypt: this method has not been yet implemented');
|
||||
//return $data;
|
||||
}
|
||||
|
||||
// --- END FILTERS SECTION -------------------------------------------------
|
||||
|
||||
/**
|
||||
* This method is automatically called in case of fatal error; it simply outputs the message and halts the execution.
|
||||
* Throw an exception.
|
||||
* @param $msg (string) The error message
|
||||
* @since 1.0.000 (2011-05-23)
|
||||
* @public static
|
||||
*/
|
||||
public static function Error($msg) {
|
||||
// exit program and print error
|
||||
die('<strong>TCPDF_FILTERS ERROR: </strong>'.$msg);
|
||||
throw new Exception('TCPDF_PARSER ERROR: '.$msg);
|
||||
}
|
||||
|
||||
} // END OF TCPDF_FILTERS CLASS
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_fonts.php
|
||||
// Version : 1.0.008
|
||||
// Version : 1.0.013
|
||||
// Begin : 2008-01-01
|
||||
// Last Update : 2013-07-18
|
||||
// Last Update : 2014-05-23
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2008-2013 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2008-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -42,11 +42,17 @@
|
||||
* @class TCPDF_FONTS
|
||||
* Font methods for TCPDF library.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @version 1.0.008
|
||||
* @version 1.0.013
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
*/
|
||||
class TCPDF_FONTS {
|
||||
|
||||
/**
|
||||
* Static cache used for speed up uniord performances
|
||||
* @protected
|
||||
*/
|
||||
protected static $cache_uniord = array();
|
||||
|
||||
/**
|
||||
* Convert and add the selected TrueType or Type1 font to the fonts folder (that must be writeable).
|
||||
* @param $fontfile (string) Font file (full path).
|
||||
@ -607,7 +613,7 @@ class TCPDF_FONTS {
|
||||
// combine high and low bytes
|
||||
$c = (($i << 8) + $j);
|
||||
$idRangeOffset = ($subHeaders[$k]['idRangeOffset'] + $j - $subHeaders[$k]['firstCode']);
|
||||
$g = ($glyphIndexArray[$idRangeOffset] + $idDelta[$k]) % 65536;
|
||||
$g = ($glyphIndexArray[$idRangeOffset] + $subHeaders[$k]['idDelta']) % 65536;
|
||||
if ($g < 0) {
|
||||
$g = 0;
|
||||
}
|
||||
@ -786,6 +792,7 @@ class TCPDF_FONTS {
|
||||
}
|
||||
$fmetric['MissingWidth'] = $cw[0];
|
||||
$fmetric['cw'] = '';
|
||||
$fmetric['cbbox'] = '';
|
||||
for ($cid = 0; $cid <= 65535; ++$cid) {
|
||||
if (isset($ctg[$cid])) {
|
||||
if (isset($cw[$ctg[$cid]])) {
|
||||
@ -793,17 +800,17 @@ class TCPDF_FONTS {
|
||||
}
|
||||
if ($addcbbox AND isset($indexToLoc[$ctg[$cid]])) {
|
||||
$offset = ($table['glyf']['offset'] + $indexToLoc[$ctg[$cid]]);
|
||||
$xMin = round(TCPDF_STATIC::_getFWORD($font, $offset + 2)) * $urk;
|
||||
$yMin = round(TCPDF_STATIC::_getFWORD($font, $offset + 4)) * $urk;
|
||||
$xMax = round(TCPDF_STATIC::_getFWORD($font, $offset + 6)) * $urk;
|
||||
$yMax = round(TCPDF_STATIC::_getFWORD($font, $offset + 8)) * $urk;
|
||||
$xMin = round(TCPDF_STATIC::_getFWORD($font, $offset + 2) * $urk);
|
||||
$yMin = round(TCPDF_STATIC::_getFWORD($font, $offset + 4) * $urk);
|
||||
$xMax = round(TCPDF_STATIC::_getFWORD($font, $offset + 6) * $urk);
|
||||
$yMax = round(TCPDF_STATIC::_getFWORD($font, $offset + 8) * $urk);
|
||||
$fmetric['cbbox'] .= ','.$cid.'=>array('.$xMin.','.$yMin.','.$xMax.','.$yMax.')';
|
||||
}
|
||||
}
|
||||
}
|
||||
} // end of true type
|
||||
if (($fmetric['type'] == 'TrueTypeUnicode') AND (count($ctg) == 256)) {
|
||||
$fmetric['type'] == 'TrueType';
|
||||
$fmetric['type'] = 'TrueType';
|
||||
}
|
||||
// ---------- create php font file ----------
|
||||
$pfile = '<'.'?'.'php'."\n";
|
||||
@ -890,7 +897,7 @@ class TCPDF_FONTS {
|
||||
$pfile .= '\'MaxWidth\'=>'.$fmetric['MaxWidth'].',';
|
||||
$pfile .= '\'MissingWidth\'=>'.$fmetric['MissingWidth'].'';
|
||||
$pfile .= ');'."\n";
|
||||
if (isset($fmetric['cbbox'])) {
|
||||
if (!empty($fmetric['cbbox'])) {
|
||||
$pfile .= '$cbbox=array('.substr($fmetric['cbbox'], 1).');'."\n";
|
||||
}
|
||||
$pfile .= '$cw=array('.substr($fmetric['cw'], 1).');'."\n";
|
||||
@ -1074,7 +1081,7 @@ class TCPDF_FONTS {
|
||||
$c = (($i << 8) + $j);
|
||||
if (isset($subsetchars[$c])) {
|
||||
$idRangeOffset = ($subHeaders[$k]['idRangeOffset'] + $j - $subHeaders[$k]['firstCode']);
|
||||
$g = ($glyphIndexArray[$idRangeOffset] + $idDelta[$k]) % 65536;
|
||||
$g = ($glyphIndexArray[$idRangeOffset] + $subHeaders[$k]['idDelta']) % 65536;
|
||||
if ($g < 0) {
|
||||
$g = 0;
|
||||
}
|
||||
@ -1134,7 +1141,7 @@ class TCPDF_FONTS {
|
||||
$subsetglyphs[$g] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 6: { // Format 6: Trimmed table mapping
|
||||
@ -1597,9 +1604,9 @@ class TCPDF_FONTS {
|
||||
*/
|
||||
public static function UTF8ArrayToUniArray($ta, $isunicode=true) {
|
||||
if ($isunicode) {
|
||||
return array_map(array('self', 'unichrUnicode'), $ta);
|
||||
return array_map(array('TCPDF_FONTS', 'unichrUnicode'), $ta);
|
||||
}
|
||||
return array_map(array('self', 'unichrASCII'), $ta);
|
||||
return array_map(array('TCPDF_FONTS', 'unichrASCII'), $ta);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1684,6 +1691,28 @@ class TCPDF_FONTS {
|
||||
return defined('K_PATH_FONTS') ? K_PATH_FONTS : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Return font full path
|
||||
* @param $file (string) Font file name.
|
||||
* @param $fontdir (string) Font directory (set to false fto search on default directories)
|
||||
* @return string Font full path or empty string
|
||||
* @author Nicola Asuni
|
||||
* @since 6.0.025
|
||||
* @public static
|
||||
*/
|
||||
public static function getFontFullPath($file, $fontdir=false) {
|
||||
$fontfile = '';
|
||||
// search files on various directories
|
||||
if (($fontdir !== false) AND @file_exists($fontdir.$file)) {
|
||||
$fontfile = $fontdir.$file;
|
||||
} elseif (@file_exists(self::_getfontpath().$file)) {
|
||||
$fontfile = self::_getfontpath().$file;
|
||||
} elseif (@file_exists($file)) {
|
||||
$fontfile = $file;
|
||||
}
|
||||
return $fontfile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts UTF-8 characters array to array of Latin1 characters array<br>
|
||||
* @param $unicode (array) array containing UTF-8 unicode values
|
||||
@ -1734,6 +1763,20 @@ class TCPDF_FONTS {
|
||||
return $outstr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts UTF-8 character to integer value.<br>
|
||||
* Uses the getUniord() method if the value is not cached.
|
||||
* @param $uch (string) character string to process.
|
||||
* @return integer Unicode value
|
||||
* @public static
|
||||
*/
|
||||
public static function uniord($uch) {
|
||||
if (!isset(self::$cache_uniord[$uch])) {
|
||||
self::$cache_uniord[$uch] = self::getUniord($uch);
|
||||
}
|
||||
return self::$cache_uniord[$uch];
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts UTF-8 character to integer value.<br>
|
||||
* Invalid byte sequences will be replaced with 0xFFFD (replacement character)<br>
|
||||
@ -1767,7 +1810,7 @@ class TCPDF_FONTS {
|
||||
* @author Nicola Asuni
|
||||
* @public static
|
||||
*/
|
||||
public static function uniord($uch) {
|
||||
public static function getUniord($uch) {
|
||||
if (function_exists('mb_convert_encoding')) {
|
||||
list(, $char) = @unpack('N', mb_convert_encoding($uch, 'UCS-4BE', 'UTF-8'));
|
||||
if ($char >= 0) {
|
||||
@ -1840,7 +1883,7 @@ class TCPDF_FONTS {
|
||||
if ($isunicode) {
|
||||
// requires PCRE unicode support turned on
|
||||
$chars = TCPDF_STATIC::pregSplit('//','u', $str, -1, PREG_SPLIT_NO_EMPTY);
|
||||
$carr = array_map(array('self', 'uniord'), $chars);
|
||||
$carr = array_map(array('TCPDF_FONTS', 'uniord'), $chars);
|
||||
} else {
|
||||
$chars = str_split($str);
|
||||
$carr = array_map('ord', $chars);
|
||||
@ -2533,7 +2576,7 @@ class TCPDF_FONTS {
|
||||
return $size;
|
||||
}
|
||||
|
||||
} // --- END OF CLASS ---
|
||||
} // END OF TCPDF_FONTS CLASS
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_images.php
|
||||
// Version : 1.0.000
|
||||
// Version : 1.0.003
|
||||
// Begin : 2002-08-03
|
||||
// Last Update : 2013-03-16
|
||||
// Last Update : 2014-04-03
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2002-2013 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2002-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -38,7 +38,7 @@
|
||||
* This is a PHP class that contains static image methods for the TCPDF class.<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.000
|
||||
* @version 1.0.003
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -46,7 +46,7 @@
|
||||
* Static image methods used by the TCPDF class.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @brief PHP class for generating PDF documents without requiring external extensions.
|
||||
* @version 1.0.000
|
||||
* @version 1.0.003
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
*/
|
||||
class TCPDF_IMAGES {
|
||||
@ -121,7 +121,7 @@ class TCPDF_IMAGES {
|
||||
*/
|
||||
public static function _toPNG($image) {
|
||||
// set temporary image file name
|
||||
$tempname = TCPDF_STATIC::getObjFilename('png');
|
||||
$tempname = TCPDF_STATIC::getObjFilename('img');
|
||||
// turn off interlaced mode
|
||||
imageinterlace($image, 0);
|
||||
// create temporary PNG image
|
||||
@ -144,7 +144,7 @@ class TCPDF_IMAGES {
|
||||
* @public static
|
||||
*/
|
||||
public static function _toJPEG($image, $quality) {
|
||||
$tempname = TCPDF_STATIC::getObjFilename('jpg');
|
||||
$tempname = TCPDF_STATIC::getObjFilename('img');
|
||||
imagejpeg($image, $tempname, $quality);
|
||||
imagedestroy($image);
|
||||
$retvars = self::_parsejpeg($tempname);
|
||||
@ -218,7 +218,7 @@ class TCPDF_IMAGES {
|
||||
if (count($icc) > 0) {
|
||||
ksort($icc);
|
||||
$icc = implode('', $icc);
|
||||
if ((ord($icc{36}) != 0x61) OR (ord($icc{37}) != 0x63) OR (ord($icc{38}) != 0x73) OR (ord($icc{39}) != 0x70)) {
|
||||
if ((ord($icc[36]) != 0x61) OR (ord($icc[37]) != 0x63) OR (ord($icc[38]) != 0x73) OR (ord($icc[39]) != 0x70)) {
|
||||
// invalid ICC profile
|
||||
$icc = false;
|
||||
}
|
||||
@ -235,7 +235,7 @@ class TCPDF_IMAGES {
|
||||
* @public static
|
||||
*/
|
||||
public static function _parsepng($file) {
|
||||
$f = fopen($file, 'rb');
|
||||
$f = @fopen($file, 'rb');
|
||||
if ($f === false) {
|
||||
// Can't open image file
|
||||
return false;
|
||||
@ -254,11 +254,6 @@ class TCPDF_IMAGES {
|
||||
$w = TCPDF_STATIC::_freadint($f);
|
||||
$h = TCPDF_STATIC::_freadint($f);
|
||||
$bpc = ord(fread($f, 1));
|
||||
if ($bpc > 8) {
|
||||
// 16-bit depth not supported
|
||||
fclose($f);
|
||||
return false;
|
||||
}
|
||||
$ct = ord(fread($f, 1));
|
||||
if ($ct == 0) {
|
||||
$colspace = 'DeviceGray';
|
||||
@ -304,14 +299,16 @@ class TCPDF_IMAGES {
|
||||
} elseif ($type == 'tRNS') {
|
||||
// read transparency info
|
||||
$t = TCPDF_STATIC::rfread($f, $n);
|
||||
if ($ct == 0) {
|
||||
$trns = array(ord($t{1}));
|
||||
} elseif ($ct == 2) {
|
||||
$trns = array(ord($t{1}), ord($t{3}), ord($t{5}));
|
||||
} else {
|
||||
$pos = strpos($t, chr(0));
|
||||
if ($pos !== false) {
|
||||
$trns = array($pos);
|
||||
if ($ct == 0) { // DeviceGray
|
||||
$trns = array(ord($t[1]));
|
||||
} elseif ($ct == 2) { // DeviceRGB
|
||||
$trns = array(ord($t[1]), ord($t[3]), ord($t[5]));
|
||||
} else { // Indexed
|
||||
if ($n > 0) {
|
||||
$trns = array();
|
||||
for ($i = 0; $i < $n; ++ $i) {
|
||||
$trns[] = ord($t{$i});
|
||||
}
|
||||
}
|
||||
}
|
||||
fread($f, 4);
|
||||
@ -322,11 +319,9 @@ class TCPDF_IMAGES {
|
||||
} elseif ($type == 'iCCP') {
|
||||
// skip profile name
|
||||
$len = 0;
|
||||
while ((ord(fread($f, 1)) > 0) AND ($len < 80)) {
|
||||
while ((ord(fread($f, 1)) != 0) AND ($len < 80)) {
|
||||
++$len;
|
||||
}
|
||||
// skip null separator
|
||||
fread($f, 1);
|
||||
// get compression method
|
||||
if (ord(fread($f, 1)) != 0) {
|
||||
// Unknown filter method
|
||||
@ -353,7 +348,7 @@ class TCPDF_IMAGES {
|
||||
return array('w' => $w, 'h' => $h, 'ch' => $channels, 'icc' => $icc, 'cs' => $colspace, 'bpc' => $bpc, 'f' => 'FlateDecode', 'parms' => $parms, 'pal' => $pal, 'trns' => $trns, 'data' => $data);
|
||||
}
|
||||
|
||||
} // END OF TCPDF_STATIC CLASS
|
||||
} // END OF TCPDF_IMAGES CLASS
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_static.php
|
||||
// Version : 1.0.000
|
||||
// Version : 1.0.004
|
||||
// Begin : 2002-08-03
|
||||
// Last Update : 2013-04-01
|
||||
// Last Update : 2014-09-02
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2002-2013 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2002-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -38,7 +38,7 @@
|
||||
* This is a PHP class that contains static methods for the TCPDF class.<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.000
|
||||
* @version 1.0.004
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -46,7 +46,7 @@
|
||||
* Static methods used by the TCPDF class.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @brief PHP class for generating PDF documents without requiring external extensions.
|
||||
* @version 1.0.000
|
||||
* @version 1.0.004
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
*/
|
||||
class TCPDF_STATIC {
|
||||
@ -55,7 +55,7 @@ class TCPDF_STATIC {
|
||||
* Current TCPDF version.
|
||||
* @private static
|
||||
*/
|
||||
private static $tcpdf_version = '6.0.021';
|
||||
private static $tcpdf_version = '6.0.093';
|
||||
|
||||
/**
|
||||
* String alias for total number of pages.
|
||||
@ -137,7 +137,7 @@ class TCPDF_STATIC {
|
||||
public static function set_mqr($mqr) {
|
||||
if (!defined('PHP_VERSION_ID')) {
|
||||
$version = PHP_VERSION;
|
||||
define('PHP_VERSION_ID', (($version{0} * 10000) + ($version{2} * 100) + $version{4}));
|
||||
define('PHP_VERSION_ID', (($version[0] * 10000) + ($version[2] * 100) + $version[4]));
|
||||
}
|
||||
if (PHP_VERSION_ID < 50300) {
|
||||
@set_magic_quotes_runtime($mqr);
|
||||
@ -153,7 +153,7 @@ class TCPDF_STATIC {
|
||||
public static function get_mqr() {
|
||||
if (!defined('PHP_VERSION_ID')) {
|
||||
$version = PHP_VERSION;
|
||||
define('PHP_VERSION_ID', (($version{0} * 10000) + ($version{2} * 100) + $version{4}));
|
||||
define('PHP_VERSION_ID', (($version[0] * 10000) + ($version[2] * 100) + $version[4]));
|
||||
}
|
||||
if (PHP_VERSION_ID < 50300) {
|
||||
return @get_magic_quotes_runtime();
|
||||
@ -1092,13 +1092,13 @@ class TCPDF_STATIC {
|
||||
|
||||
/**
|
||||
* Returns a temporary filename for caching object on filesystem.
|
||||
* @param $name (string) Prefix to add to the file name.
|
||||
* @param $type (string) Type of file (name of the subdir on the tcpdf cache folder).
|
||||
* @return string filename.
|
||||
* @since 4.5.000 (2008-12-31)
|
||||
* @public static
|
||||
*/
|
||||
public static function getObjFilename($name) {
|
||||
return tempnam(K_PATH_CACHE, $name.'_');
|
||||
public static function getObjFilename($type='tmp') {
|
||||
return tempnam(K_PATH_CACHE, '__tcpdf_'.$type.'_'.md5(uniqid('', true).rand().microtime(true)).'_');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1358,7 +1358,6 @@ class TCPDF_STATIC {
|
||||
}
|
||||
$seed .= uniqid('', true);
|
||||
$seed .= rand();
|
||||
$seed .= dol_getmypid();
|
||||
$seed .= __FILE__;
|
||||
if (isset($_SERVER['REMOTE_ADDR'])) {
|
||||
$seed .= $_SERVER['REMOTE_ADDR'];
|
||||
@ -1428,7 +1427,7 @@ class TCPDF_STATIC {
|
||||
* @public static
|
||||
*/
|
||||
public static function _RC4($key, $text, &$last_enc_key, &$last_enc_key_c) {
|
||||
if (function_exists('mcrypt_decrypt') AND ($out = @mcrypt_decrypt(MCRYPT_ARCFOUR, $key, $text, MCRYPT_MODE_STREAM, ''))) {
|
||||
if (function_exists('mcrypt_encrypt') AND ($out = @mcrypt_encrypt(MCRYPT_ARCFOUR, $key, $text, MCRYPT_MODE_STREAM, ''))) {
|
||||
// try to use mcrypt function if exist
|
||||
return $out;
|
||||
}
|
||||
@ -1569,7 +1568,7 @@ class TCPDF_STATIC {
|
||||
$length = strlen($name);
|
||||
for ($i = 0; $i < $length; ++$i) {
|
||||
$chr = $name[$i];
|
||||
if (preg_match('/[0-9a-zA-Z]/', $chr) == 1) {
|
||||
if (preg_match('/[0-9a-zA-Z#_=-]/', $chr) == 1) {
|
||||
$escname .= $chr;
|
||||
} else {
|
||||
$escname .= sprintf('#%02X', ord($chr));
|
||||
@ -2165,7 +2164,7 @@ class TCPDF_STATIC {
|
||||
$attrib = strtolower(trim($attrib[0]));
|
||||
if (!empty($attrib)) {
|
||||
// check if matches class, id, attribute, pseudo-class or pseudo-element
|
||||
switch ($attrib{0}) {
|
||||
switch ($attrib[0]) {
|
||||
case '.': { // class
|
||||
if (in_array(substr($attrib, 1), $class)) {
|
||||
$valid = true;
|
||||
@ -2232,7 +2231,7 @@ class TCPDF_STATIC {
|
||||
break;
|
||||
}
|
||||
case ':': { // pseudo-class or pseudo-element
|
||||
if ($attrib{1} == ':') { // pseudo-element
|
||||
if ($attrib[1] == ':') { // pseudo-element
|
||||
// pseudo-elements are not supported!
|
||||
// (::first-line, ::first-letter, ::before, ::after)
|
||||
} else { // pseudo-class
|
||||
@ -2451,13 +2450,23 @@ class TCPDF_STATIC {
|
||||
|
||||
/**
|
||||
* Serialize an array of parameters to be used with TCPDF tag in HTML code.
|
||||
* @param $pararray (array) parameters array
|
||||
* @return sting containing serialized data
|
||||
* @param $data (array) parameters array
|
||||
* @return string containing serialized data
|
||||
* @since 4.9.006 (2010-04-02)
|
||||
* @public static
|
||||
*/
|
||||
public static function serializeTCPDFtagParameters($pararray) {
|
||||
return urlencode(serialize($pararray));
|
||||
public static function serializeTCPDFtagParameters($data) {
|
||||
return urlencode(json_encode($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* Unserialize parameters to be used with TCPDF tag in HTML code.
|
||||
* @param $data (string) serialized data
|
||||
* @return array containing unserialized data
|
||||
* @public static
|
||||
*/
|
||||
public static function unserializeTCPDFtagParameters($data) {
|
||||
return json_decode(urldecode($data), true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2733,7 +2742,7 @@ class TCPDF_STATIC {
|
||||
* @param $flags (int) The flags as specified on the preg_split PHP function.
|
||||
* @return Returns an array containing substrings of subject split along boundaries matched by pattern.modifier
|
||||
* @author Nicola Asuni
|
||||
* @since 6.0.021
|
||||
* @since 6.0.023
|
||||
* @public static
|
||||
*/
|
||||
public static function pregSplit($pattern, $modifiers, $subject, $limit=NULL, $flags=NULL) {
|
||||
@ -2748,12 +2757,93 @@ class TCPDF_STATIC {
|
||||
$ret[] = "\n";
|
||||
$subject = substr($subject, ($nl + 1));
|
||||
}
|
||||
if (!empty($subject)) {
|
||||
if (strlen($subject) > 0) {
|
||||
$ret = array_merge($ret, preg_split($pattern.$modifiers, $subject, $limit, $flags));
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads entire file into a string.
|
||||
* The file can be also an URL.
|
||||
* @param $file (string) Name of the file or URL to read.
|
||||
* @return The function returns the read data or FALSE on failure.
|
||||
* @author Nicola Asuni
|
||||
* @since 6.0.025
|
||||
* @public static
|
||||
*/
|
||||
public static function fileGetContents($file) {
|
||||
//$file = html_entity_decode($file);
|
||||
// array of possible alternative paths/URLs
|
||||
$alt = array($file);
|
||||
// replace URL relative path with full real server path
|
||||
if ((strlen($file) > 1)
|
||||
AND ($file[0] == '/')
|
||||
AND ($file[1] != '/')
|
||||
AND !empty($_SERVER['DOCUMENT_ROOT'])
|
||||
AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
|
||||
$findroot = strpos($file, $_SERVER['DOCUMENT_ROOT']);
|
||||
if (($findroot === false) OR ($findroot > 1)) {
|
||||
if (substr($_SERVER['DOCUMENT_ROOT'], -1) == '/') {
|
||||
$tmp = substr($_SERVER['DOCUMENT_ROOT'], 0, -1).$file;
|
||||
} else {
|
||||
$tmp = $_SERVER['DOCUMENT_ROOT'].$file;
|
||||
}
|
||||
$alt[] = htmlspecialchars_decode(urldecode($tmp));
|
||||
}
|
||||
}
|
||||
// URL mode
|
||||
$url = $file;
|
||||
// check for missing protocol
|
||||
if (preg_match('%^/{2}%', $url)) {
|
||||
if (preg_match('%^([^:]+:)//%i', K_PATH_URL, $match)) {
|
||||
$url = $match[1].str_replace(' ', '%20', $url);
|
||||
$alt[] = $url;
|
||||
}
|
||||
}
|
||||
$urldata = @parse_url($url);
|
||||
if (!isset($urldata['query']) OR (strlen($urldata['query']) <= 0)) {
|
||||
if (strpos($url, K_PATH_URL) === 0) {
|
||||
// convert URL to full server path
|
||||
$tmp = str_replace(K_PATH_URL, K_PATH_MAIN, $url);
|
||||
$tmp = htmlspecialchars_decode(urldecode($tmp));
|
||||
$alt[] = $tmp;
|
||||
}
|
||||
}
|
||||
if (isset($_SERVER['SCRIPT_URI'])) {
|
||||
$urldata = @parse_url($_SERVER['SCRIPT_URI']);
|
||||
$alt[] = $urldata['scheme'].'://'.$urldata['host'].(($file[0] == '/') ? '' : '/').$file;
|
||||
}
|
||||
foreach ($alt as $f) {
|
||||
$ret = @file_get_contents($f);
|
||||
if (($ret === FALSE)
|
||||
AND !ini_get('allow_url_fopen')
|
||||
AND function_exists('curl_init')
|
||||
AND preg_match('%^(https?|ftp)://%', $f)) {
|
||||
// try to get remote file data using cURL
|
||||
$cs = curl_init(); // curl session
|
||||
curl_setopt($cs, CURLOPT_URL, $f);
|
||||
curl_setopt($cs, CURLOPT_BINARYTRANSFER, true);
|
||||
curl_setopt($cs, CURLOPT_FAILONERROR, true);
|
||||
curl_setopt($cs, CURLOPT_RETURNTRANSFER, true);
|
||||
if ((ini_get('open_basedir') == '') AND (!ini_get('safe_mode'))) {
|
||||
curl_setopt($cs, CURLOPT_FOLLOWLOCATION, true);
|
||||
}
|
||||
curl_setopt($cs, CURLOPT_CONNECTTIMEOUT, 5);
|
||||
curl_setopt($cs, CURLOPT_TIMEOUT, 30);
|
||||
curl_setopt($cs, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($cs, CURLOPT_SSL_VERIFYHOST, false);
|
||||
curl_setopt($cs, CURLOPT_USERAGENT, 'TCPDF');
|
||||
$ret = curl_exec($cs);
|
||||
curl_close($cs);
|
||||
}
|
||||
if ($ret !== FALSE) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
} // END OF TCPDF_STATIC CLASS
|
||||
|
||||
//============================================================+
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -3,11 +3,11 @@
|
||||
// File name : tcpdf_autoconfig.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2013-05-16
|
||||
// Last Update : 2013-05-16
|
||||
// Last Update : 2014-09-02
|
||||
// Authors : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2011-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -117,7 +117,11 @@ if (!defined('PDF_HEADER_LOGO_WIDTH')) {
|
||||
}
|
||||
|
||||
if (!defined('K_PATH_CACHE')) {
|
||||
define ('K_PATH_CACHE', sys_get_temp_dir().'/');
|
||||
$K_PATH_CACHE = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
|
||||
if (substr($K_PATH_CACHE, -1) != '/') {
|
||||
$K_PATH_CACHE .= '/';
|
||||
}
|
||||
define ('K_PATH_CACHE', $K_PATH_CACHE);
|
||||
}
|
||||
|
||||
if (!defined('K_BLANK_IMAGE')) {
|
||||
@ -228,6 +232,11 @@ if (!defined('K_TCPDF_THROW_EXCEPTION_ERROR')) {
|
||||
define('K_TCPDF_THROW_EXCEPTION_ERROR', false);
|
||||
}
|
||||
|
||||
if (!defined('K_TIMEZONE')) {
|
||||
define('K_TIMEZONE', @date_default_timezone_get());
|
||||
}
|
||||
date_default_timezone_set(K_TIMEZONE);
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_barcodes_1d.php
|
||||
// Version : 1.0.025
|
||||
// Version : 1.0.026
|
||||
// Begin : 2008-06-09
|
||||
// Last Update : 2013-03-17
|
||||
// Last Update : 2014-05-20
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2008-2013 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2008-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -37,14 +37,14 @@
|
||||
* PHP class to creates array representations for common 1D barcodes to be used with TCPDF.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.025
|
||||
* @version 1.0.026
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class TCPDFBarcode
|
||||
* PHP class to creates array representations for common 1D barcodes to be used with TCPDF (http://www.tcpdf.org).<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @version 1.0.025
|
||||
* @version 1.0.026
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
class TCPDFBarcode {
|
||||
@ -162,6 +162,25 @@ class TCPDFBarcode {
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a PNG image representation of barcode (requires GD or Imagick library).
|
||||
* @param $w (int) Width of a single bar element in pixels.
|
||||
* @param $h (int) Height of a single bar element in pixels.
|
||||
* @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent).
|
||||
* @public
|
||||
*/
|
||||
public function getBarcodePNG($w=2, $h=30, $color=array(0,0,0)) {
|
||||
$data = $this->getBarcodePngData($w, $h, $color);
|
||||
// send headers
|
||||
header('Content-Type: image/png');
|
||||
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: public');
|
||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
//header('Content-Length: '.strlen($data));
|
||||
echo $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a PNG image representation of barcode (requires GD or Imagick library).
|
||||
* @param $w (int) Width of a single bar element in pixels.
|
||||
@ -170,7 +189,7 @@ class TCPDFBarcode {
|
||||
* @return image or false in case of error.
|
||||
* @public
|
||||
*/
|
||||
public function getBarcodePNG($w=2, $h=30, $color=array(0,0,0)) {
|
||||
public function getBarcodePngData($w=2, $h=30, $color=array(0,0,0)) {
|
||||
// calculate image size
|
||||
$width = ($this->barcode_array['maxw'] * $w);
|
||||
$height = $h;
|
||||
@ -208,18 +227,15 @@ class TCPDFBarcode {
|
||||
}
|
||||
$x += $bw;
|
||||
}
|
||||
// send headers
|
||||
header('Content-Type: image/png');
|
||||
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: public');
|
||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
if ($imagick) {
|
||||
$png->drawimage($bar);
|
||||
echo $png;
|
||||
return $png;
|
||||
} else {
|
||||
ob_start();
|
||||
imagepng($png);
|
||||
$imagedata = ob_get_clean();
|
||||
imagedestroy($png);
|
||||
return $imagedata;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1094,7 +1110,7 @@ class TCPDFBarcode {
|
||||
}
|
||||
case 'C': { // MODE C
|
||||
$startid = 105;
|
||||
if (ord($code{0}) == 241) {
|
||||
if (ord($code[0]) == 241) {
|
||||
$code_data[] = 102;
|
||||
$code = substr($code, 1);
|
||||
--$len;
|
||||
@ -1172,7 +1188,7 @@ class TCPDFBarcode {
|
||||
}
|
||||
case 'B': {
|
||||
if ($key == 0) {
|
||||
$tmpchr = ord($seq[1]{0});
|
||||
$tmpchr = ord($seq[1][0]);
|
||||
if (($seq[2] == 1) AND ($tmpchr >= 241) AND ($tmpchr <= 244) AND isset($sequence[($key + 1)]) AND ($sequence[($key + 1)][0] != 'B')) {
|
||||
switch ($sequence[($key + 1)][0]) {
|
||||
case 'A': {
|
||||
@ -1445,7 +1461,7 @@ class TCPDFBarcode {
|
||||
$seq = '101'; // left guard bar
|
||||
if ($upce) {
|
||||
$bararray = array('code' => $upce_code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array());
|
||||
$p = $upce_parities[$code{1}][$r];
|
||||
$p = $upce_parities[$code[1]][$r];
|
||||
for ($i = 0; $i < 6; ++$i) {
|
||||
$seq .= $codes[$p[$i]][$upce_code{$i}];
|
||||
}
|
||||
@ -1458,7 +1474,7 @@ class TCPDFBarcode {
|
||||
$seq .= $codes['A'][$code{$i}];
|
||||
}
|
||||
} else {
|
||||
$p = $parities[$code{0}];
|
||||
$p = $parities[$code[0]];
|
||||
for ($i = 1; $i < $half_len; ++$i) {
|
||||
$seq .= $codes[$p[$i-1]][$code{$i}];
|
||||
}
|
||||
@ -1504,7 +1520,7 @@ class TCPDFBarcode {
|
||||
if ($len == 2) {
|
||||
$r = $code % 4;
|
||||
} elseif ($len == 5) {
|
||||
$r = (3 * ($code{0} + $code{2} + $code{4})) + (9 * ($code{1} + $code{3}));
|
||||
$r = (3 * ($code[0] + $code[2] + $code[4])) + (9 * ($code[1] + $code[3]));
|
||||
$r %= 10;
|
||||
} else {
|
||||
return false;
|
||||
@ -1555,7 +1571,7 @@ class TCPDFBarcode {
|
||||
);
|
||||
$p = $parities[$len][$r];
|
||||
$seq = '1011'; // left guard bar
|
||||
$seq .= $codes[$p[0]][$code{0}];
|
||||
$seq .= $codes[$p[0]][$code[0]];
|
||||
for ($i = 1; $i < $len; ++$i) {
|
||||
$seq .= '01'; // separator
|
||||
$seq .= $codes[$p[$i]][$code{$i}];
|
||||
@ -2068,9 +2084,9 @@ class TCPDFBarcode {
|
||||
}
|
||||
}
|
||||
$binary_code = bcmul($binary_code, 10);
|
||||
$binary_code = bcadd($binary_code, $tracking_number{0});
|
||||
$binary_code = bcadd($binary_code, $tracking_number[0]);
|
||||
$binary_code = bcmul($binary_code, 5);
|
||||
$binary_code = bcadd($binary_code, $tracking_number{1});
|
||||
$binary_code = bcadd($binary_code, $tracking_number[1]);
|
||||
$binary_code .= substr($tracking_number, 2, 18);
|
||||
// convert to hexadecimal
|
||||
$binary_code = $this->dec_to_hex($binary_code);
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_barcodes_2d.php
|
||||
// Version : 1.0.014
|
||||
// Version : 1.0.015
|
||||
// Begin : 2009-04-07
|
||||
// Last Update : 2013-03-17
|
||||
// Last Update : 2014-05-20
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2009-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -37,14 +37,14 @@
|
||||
* PHP class to creates array representations for 2D barcodes to be used with TCPDF.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.014
|
||||
* @version 1.0.015
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class TCPDF2DBarcode
|
||||
* PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org).
|
||||
* @package com.tecnick.tcpdf
|
||||
* @version 1.0.014
|
||||
* @version 1.0.015
|
||||
* @author Nicola Asuni
|
||||
*/
|
||||
class TCPDF2DBarcode {
|
||||
@ -162,6 +162,26 @@ class TCPDF2DBarcode {
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a PNG image representation of barcode (requires GD or Imagick library).
|
||||
* @param $w (int) Width of a single rectangle element in pixels.
|
||||
* @param $h (int) Height of a single rectangle element in pixels.
|
||||
* @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent).
|
||||
* @public
|
||||
*/
|
||||
public function getBarcodePNG($w=3, $h=3, $color=array(0,0,0)) {
|
||||
$data = $this->getBarcodePngData($w, $h, $color);
|
||||
// send headers
|
||||
header('Content-Type: image/png');
|
||||
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: public');
|
||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
//header('Content-Length: '.strlen($data));
|
||||
echo $data;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a PNG image representation of barcode (requires GD or Imagick library).
|
||||
* @param $w (int) Width of a single rectangle element in pixels.
|
||||
@ -170,7 +190,7 @@ class TCPDF2DBarcode {
|
||||
* @return image or false in case of error.
|
||||
* @public
|
||||
*/
|
||||
public function getBarcodePNG($w=3, $h=3, $color=array(0,0,0)) {
|
||||
public function getBarcodePngData($w=3, $h=3, $color=array(0,0,0)) {
|
||||
// calculate image size
|
||||
$width = ($this->barcode_array['num_cols'] * $w);
|
||||
$height = ($this->barcode_array['num_rows'] * $h);
|
||||
@ -211,18 +231,15 @@ class TCPDF2DBarcode {
|
||||
}
|
||||
$y += $h;
|
||||
}
|
||||
// send headers
|
||||
header('Content-Type: image/png');
|
||||
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: public');
|
||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
if ($imagick) {
|
||||
$png->drawimage($bar);
|
||||
echo $png;
|
||||
return $png;
|
||||
} else {
|
||||
ob_start();
|
||||
imagepng($png);
|
||||
$imagedata = ob_get_clean();
|
||||
imagedestroy($png);
|
||||
return $imagedata;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_import.php
|
||||
// Version : 1.0.000
|
||||
// Version : 1.0.001
|
||||
// Begin : 2011-05-23
|
||||
// Last Update : 2013-03-17
|
||||
// Last Update : 2013-09-17
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
@ -39,7 +39,7 @@
|
||||
* This is a PHP class extension of the TCPDF (http://www.tcpdf.org) library to import existing PDF documents.<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.000
|
||||
* @version 1.0.001
|
||||
*/
|
||||
|
||||
// include the TCPDF class
|
||||
@ -53,7 +53,7 @@ require_once(dirname(__FILE__).'/tcpdf_parser.php');
|
||||
* PHP class extension of the TCPDF (http://www.tcpdf.org) library to import existing PDF documents.<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @brief PHP class extension of the TCPDF library to import existing PDF documents.
|
||||
* @version 1.0.000
|
||||
* @version 1.0.001
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
*/
|
||||
class TCPDF_IMPORT extends TCPDF {
|
||||
@ -71,8 +71,19 @@ class TCPDF_IMPORT extends TCPDF {
|
||||
if ($rawdata === false) {
|
||||
$this->Error('Unable to get the content of the file: '.$filename);
|
||||
}
|
||||
// parse PDF data
|
||||
$pdf = new TCPDF_PARSER($rawdata);
|
||||
// configuration parameters for parser
|
||||
$cfg = array(
|
||||
'die_for_errors' => false,
|
||||
'ignore_filter_decoding_errors' => true,
|
||||
'ignore_missing_filter_decoders' => true,
|
||||
);
|
||||
try {
|
||||
// parse PDF data
|
||||
$pdf = new TCPDF_PARSER($rawdata, $cfg);
|
||||
} catch (Exception $e) {
|
||||
die($e->getMessage());
|
||||
}
|
||||
// get the parsed data
|
||||
$data = $pdf->getParsedData();
|
||||
// release some memory
|
||||
unset($rawdata);
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_parser.php
|
||||
// Version : 1.0.003
|
||||
// Version : 1.0.014
|
||||
// Begin : 2011-05-23
|
||||
// Last Update : 2013-03-17
|
||||
// Last Update : 2014-02-18
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// License : http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT GNU-LGPLv3
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2011-2014 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -37,7 +37,7 @@
|
||||
* This is a PHP class for parsing PDF documents.<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.003
|
||||
* @version 1.0.014
|
||||
*/
|
||||
|
||||
// include class for decoding filters
|
||||
@ -48,7 +48,7 @@ require_once(dirname(__FILE__).'/include/tcpdf_filters.php');
|
||||
* This is a PHP class for parsing PDF documents.<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @brief This is a PHP class for parsing PDF documents..
|
||||
* @version 1.0.003
|
||||
* @version 1.0.010
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
*/
|
||||
class TCPDF_PARSER {
|
||||
@ -77,30 +77,49 @@ class TCPDF_PARSER {
|
||||
*/
|
||||
private $FilterDecoders;
|
||||
|
||||
/**
|
||||
* Array of configuration parameters.
|
||||
* @private
|
||||
*/
|
||||
private $cfg = array(
|
||||
'die_for_errors' => false,
|
||||
'ignore_filter_decoding_errors' => true,
|
||||
'ignore_missing_filter_decoders' => true,
|
||||
);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Parse a PDF document an return an array of objects.
|
||||
* @param $data (string) PDF data to parse.
|
||||
* @param $cfg (array) Array of configuration parameters:
|
||||
* 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception;
|
||||
* 'ignore_filter_decoding_errors' : if true ignore filter decoding errors;
|
||||
* 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors.
|
||||
* @public
|
||||
* @since 1.0.000 (2011-05-24)
|
||||
*/
|
||||
public function __construct($data) {
|
||||
public function __construct($data, $cfg=array()) {
|
||||
if (empty($data)) {
|
||||
$this->Error('Empty PDF data.');
|
||||
}
|
||||
$this->pdfdata = $data;
|
||||
// find the pdf header starting position
|
||||
if (($trimpos = strpos($data, '%PDF-')) === FALSE) {
|
||||
$this->Error('Invalid PDF data: missing %PDF header.');
|
||||
}
|
||||
// get PDF content string
|
||||
$this->pdfdata = substr($data, $trimpos);
|
||||
// get length
|
||||
$pdflen = strlen($this->pdfdata);
|
||||
// initialize class for decoding filters
|
||||
$this->FilterDecoders = new TCPDF_FILTERS();
|
||||
// set configuration parameters
|
||||
$this->setConfig($cfg);
|
||||
// get xref and trailer data
|
||||
$this->xref = $this->getXrefData();
|
||||
// parse all document objects
|
||||
$this->objects = array();
|
||||
foreach ($this->xref['xref'] as $obj => $offset) {
|
||||
if (!isset($this->objects[$obj]) AND ($offset > 0)) {
|
||||
// decode only objects with positive offset
|
||||
// decode objects with positive offset
|
||||
$this->objects[$obj] = $this->getIndirectObject($obj, $offset, true);
|
||||
}
|
||||
}
|
||||
@ -109,6 +128,26 @@ class TCPDF_PARSER {
|
||||
$this->pdfdata = '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the configuration parameters.
|
||||
* @param $cfg (array) Array of configuration parameters:
|
||||
* 'die_for_errors' : if true termitate the program execution in case of error, otherwise thows an exception;
|
||||
* 'ignore_filter_decoding_errors' : if true ignore filter decoding errors;
|
||||
* 'ignore_missing_filter_decoders' : if true ignore missing filter decoding errors.
|
||||
* @public
|
||||
*/
|
||||
protected function setConfig($cfg) {
|
||||
if (isset($cfg['die_for_errors'])) {
|
||||
$this->cfg['die_for_errors'] = !!$cfg['die_for_errors'];
|
||||
}
|
||||
if (isset($cfg['ignore_filter_decoding_errors'])) {
|
||||
$this->cfg['ignore_filter_decoding_errors'] = !!$cfg['ignore_filter_decoding_errors'];
|
||||
}
|
||||
if (isset($cfg['ignore_missing_filter_decoders'])) {
|
||||
$this->cfg['ignore_missing_filter_decoders'] = !!$cfg['ignore_missing_filter_decoders'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an array of parsed PDF document objects.
|
||||
* @return (array) Array of parsed PDF document objects.
|
||||
@ -135,16 +174,17 @@ class TCPDF_PARSER {
|
||||
}
|
||||
$matches = array_pop($matches);
|
||||
$startxref = $matches[1];
|
||||
} elseif (strpos($this->pdfdata, 'xref', $offset) == $offset) {
|
||||
// Already pointing at the xref table
|
||||
$startxref = $offset;
|
||||
} elseif (preg_match('/([0-9]+[\s][0-9]+[\s]obj)/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) {
|
||||
// Cross-Reference Stream object
|
||||
$startxref = $offset;
|
||||
} elseif (preg_match('/[\r\n]startxref[\s]*[\r\n]+([0-9]+)[\s]*[\r\n]+%%EOF/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) {
|
||||
// startxref found
|
||||
$startxref = $matches[1][0];
|
||||
} else {
|
||||
if (preg_match('/([0-9]+[\s][0-9]+[\s]obj)/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) {
|
||||
// Cross-Reference Stream object
|
||||
$startxref = $offset;
|
||||
} elseif (preg_match('/[\r\n]startxref[\s]*[\r\n]+([0-9]+)[\s]*[\r\n]+%%EOF/i', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset)) {
|
||||
// startxref found
|
||||
$startxref = $matches[1][0];
|
||||
} else {
|
||||
$this->Error('Unable to find startxref');
|
||||
}
|
||||
$this->Error('Unable to find startxref');
|
||||
}
|
||||
// check xref position
|
||||
if (strpos($this->pdfdata, 'xref', $startxref) == $startxref) {
|
||||
@ -162,20 +202,25 @@ class TCPDF_PARSER {
|
||||
|
||||
/**
|
||||
* Decode the Cross-Reference section
|
||||
* @param $startxref (int) Offset at which the xref section starts.
|
||||
* @param $startxref (int) Offset at which the xref section starts (position of the 'xref' keyword).
|
||||
* @param $xref (array) Previous xref array (if any).
|
||||
* @return Array containing xref and trailer data.
|
||||
* @protected
|
||||
* @since 1.0.000 (2011-06-20)
|
||||
*/
|
||||
protected function decodeXref($startxref, $xref=array()) {
|
||||
// extract xref data (object indexes and offsets)
|
||||
$xoffset = $startxref + 5;
|
||||
$startxref += 4; // 4 is the lenght of the word 'xref'
|
||||
// skip initial white space chars: \x00 null (NUL), \x09 horizontal tab (HT), \x0A line feed (LF), \x0C form feed (FF), \x0D carriage return (CR), \x20 space (SP)
|
||||
$offset = $startxref + strspn($this->pdfdata, "\x00\x09\x0a\x0c\x0d\x20", $startxref);
|
||||
// initialize object number
|
||||
$obj_num = 0;
|
||||
$offset = $xoffset;
|
||||
while (preg_match('/^([0-9]+)[\s]([0-9]+)[\s]?([nf]?)/im', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) {
|
||||
$offset = (strlen($matches[0][0]) + $matches[0][1]);
|
||||
// search for cross-reference entries or subsection
|
||||
while (preg_match('/([0-9]+)[\x20]([0-9]+)[\x20]?([nf]?)(\r\n|[\x20]?[\r\n])/', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) {
|
||||
if ($matches[0][1] != $offset) {
|
||||
// we are on another section
|
||||
break;
|
||||
}
|
||||
$offset += strlen($matches[0][0]);
|
||||
if ($matches[3][0] == 'n') {
|
||||
// create unique object index: [object number]_[generation number]
|
||||
$index = $obj_num.'_'.intval($matches[2][0]);
|
||||
@ -185,17 +230,15 @@ class TCPDF_PARSER {
|
||||
$xref['xref'][$index] = intval($matches[1][0]);
|
||||
}
|
||||
++$obj_num;
|
||||
$offset += 2;
|
||||
} elseif ($matches[3][0] == 'f') {
|
||||
++$obj_num;
|
||||
$offset += 2;
|
||||
} else {
|
||||
// object number (index)
|
||||
$obj_num = intval($matches[1][0]);
|
||||
}
|
||||
}
|
||||
// get trailer data
|
||||
if (preg_match('/trailer[\s]*<<(.*)>>[\s]*[\r\n]+startxref[\s]*[\r\n]+/isU', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $xoffset) > 0) {
|
||||
if (preg_match('/trailer[\s]*<<(.*)>>/isU', $this->pdfdata, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) {
|
||||
$trailer_data = $matches[1][0];
|
||||
if (!isset($xref['trailer']) OR empty($xref['trailer'])) {
|
||||
// get only the last updated version
|
||||
@ -248,7 +291,11 @@ class TCPDF_PARSER {
|
||||
} else {
|
||||
$filltrailer = false;
|
||||
}
|
||||
if (!isset($xref['xref'])) {
|
||||
$xref['xref'] = array();
|
||||
}
|
||||
$valid_crs = false;
|
||||
$columns = 0;
|
||||
$sarr = $xrefcrs[0][1];
|
||||
foreach ($sarr as $k => $v) {
|
||||
if (($v[0] == '/') AND ($v[1] == 'Type') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == '/') AND ($sarr[($k +1)][1] == 'XRef'))) {
|
||||
@ -279,10 +326,12 @@ class TCPDF_PARSER {
|
||||
} elseif ($filltrailer) {
|
||||
if (($v[0] == '/') AND ($v[1] == 'Size') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'numeric'))) {
|
||||
$xref['trailer']['size'] = $sarr[($k +1)][1];
|
||||
} elseif (($v[0] == '/') AND ($v[1] == 'Root') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'ojbref'))) {
|
||||
} elseif (($v[0] == '/') AND ($v[1] == 'Root') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) {
|
||||
$xref['trailer']['root'] = $sarr[($k +1)][1];
|
||||
} elseif (($v[0] == '/') AND ($v[1] == 'Info') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'ojbref'))) {
|
||||
} elseif (($v[0] == '/') AND ($v[1] == 'Info') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) {
|
||||
$xref['trailer']['info'] = $sarr[($k +1)][1];
|
||||
} elseif (($v[0] == '/') AND ($v[1] == 'Encrypt') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == 'objref'))) {
|
||||
$xref['trailer']['encrypt'] = $sarr[($k +1)][1];
|
||||
} elseif (($v[0] == '/') AND ($v[1] == 'ID') AND (isset($sarr[($k +1)]))) {
|
||||
$xref['trailer']['id'] = array();
|
||||
$xref['trailer']['id'][0] = $sarr[($k +1)][1][0][1];
|
||||
@ -380,12 +429,14 @@ class TCPDF_PARSER {
|
||||
// default type field
|
||||
$sdata[$k][0] = 1;
|
||||
}
|
||||
$i = 0; // count bytes on the row
|
||||
$i = 0; // count bytes in the row
|
||||
// for every column
|
||||
for ($c = 0; $c < 3; ++$c) {
|
||||
// for every byte on the column
|
||||
for ($b = 0; $b < $wb[$c]; ++$b) {
|
||||
$sdata[$k][$c] += ($row[$i] << (($wb[$c] - 1 - $b) * 8));
|
||||
if (isset($row[$i])) {
|
||||
$sdata[$k][$c] += ($row[$i] << (($wb[$c] - 1 - $b) * 8));
|
||||
}
|
||||
++$i;
|
||||
}
|
||||
}
|
||||
@ -400,7 +451,6 @@ class TCPDF_PARSER {
|
||||
foreach ($sdata as $k => $row) {
|
||||
switch ($row[0]) {
|
||||
case 0: { // (f) linked list of free objects
|
||||
++$obj_num;
|
||||
break;
|
||||
}
|
||||
case 1: { // (n) objects that are in use but are not compressed
|
||||
@ -411,7 +461,6 @@ class TCPDF_PARSER {
|
||||
// store object offset position
|
||||
$xref['xref'][$index] = $row[1];
|
||||
}
|
||||
++$obj_num;
|
||||
break;
|
||||
}
|
||||
case 2: { // compressed objects
|
||||
@ -425,6 +474,7 @@ class TCPDF_PARSER {
|
||||
break;
|
||||
}
|
||||
}
|
||||
++$obj_num;
|
||||
}
|
||||
} // end decoding data
|
||||
if (isset($prevxref)) {
|
||||
@ -447,7 +497,7 @@ class TCPDF_PARSER {
|
||||
// skip initial white space chars: \x00 null (NUL), \x09 horizontal tab (HT), \x0A line feed (LF), \x0C form feed (FF), \x0D carriage return (CR), \x20 space (SP)
|
||||
$offset += strspn($this->pdfdata, "\x00\x09\x0a\x0c\x0d\x20", $offset);
|
||||
// get first char
|
||||
$char = $this->pdfdata{$offset};
|
||||
$char = $this->pdfdata[$offset];
|
||||
// get object type
|
||||
switch ($char) {
|
||||
case '%': { // \x25 PERCENT SIGN
|
||||
@ -455,7 +505,7 @@ class TCPDF_PARSER {
|
||||
$next = strcspn($this->pdfdata, "\r\n", $offset);
|
||||
if ($next > 0) {
|
||||
$offset += $next;
|
||||
return $this->getRawObject($this->pdfdata, $offset);
|
||||
return $this->getRawObject($offset);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -545,10 +595,13 @@ class TCPDF_PARSER {
|
||||
// hexadecimal string object
|
||||
$objtype = $char;
|
||||
++$offset;
|
||||
if (($char == '<') AND (preg_match('/^([0-9A-Fa-f]+)[>]/iU', substr($this->pdfdata, $offset), $matches) == 1)) {
|
||||
$objval = $matches[1];
|
||||
if (($char == '<') AND (preg_match('/^([0-9A-Fa-f\x09\x0a\x0c\x0d\x20]+)>/iU', substr($this->pdfdata, $offset), $matches) == 1)) {
|
||||
// remove white space characters
|
||||
$objval = strtr($matches[1], "\x09\x0a\x0c\x0d\x20", '');
|
||||
$offset += strlen($matches[0]);
|
||||
}
|
||||
} elseif (($endpos = strpos($this->pdfdata, '>', $offset)) !== FALSE) {
|
||||
$offset = $endpos + 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -576,12 +629,12 @@ class TCPDF_PARSER {
|
||||
// start stream object
|
||||
$objtype = 'stream';
|
||||
$offset += 6;
|
||||
if (preg_match('/^([\r\n]+)/isU', substr($this->pdfdata, $offset), $matches) == 1) {
|
||||
if (preg_match('/^([\r]?[\n])/isU', substr($this->pdfdata, $offset), $matches) == 1) {
|
||||
$offset += strlen($matches[0]);
|
||||
}
|
||||
if (preg_match('/([\r\n]*endstream)/isU', substr($this->pdfdata, $offset), $matches, PREG_OFFSET_CAPTURE) == 1) {
|
||||
$objval = substr($this->pdfdata, $offset, $matches[0][1]);
|
||||
$offset += $matches[0][1];
|
||||
if (preg_match('/(endstream)[\x09\x0a\x0c\x0d\x20]/isU', substr($this->pdfdata, $offset), $matches, PREG_OFFSET_CAPTURE) == 1) {
|
||||
$objval = substr($this->pdfdata, $offset, $matches[0][1]);
|
||||
$offset += $matches[1][1];
|
||||
}
|
||||
}
|
||||
} elseif (substr($this->pdfdata, $offset, 9) == 'endstream') {
|
||||
// end stream object
|
||||
@ -589,12 +642,12 @@ class TCPDF_PARSER {
|
||||
$offset += 9;
|
||||
} elseif (preg_match('/^([0-9]+)[\s]+([0-9]+)[\s]+R/iU', substr($this->pdfdata, $offset, 33), $matches) == 1) {
|
||||
// indirect object reference
|
||||
$objtype = 'ojbref';
|
||||
$objtype = 'objref';
|
||||
$offset += strlen($matches[0]);
|
||||
$objval = intval($matches[1]).'_'.intval($matches[2]);
|
||||
} elseif (preg_match('/^([0-9]+)[\s]+([0-9]+)[\s]+obj/iU', substr($this->pdfdata, $offset, 33), $matches) == 1) {
|
||||
// object start
|
||||
$objtype = 'ojb';
|
||||
$objtype = 'obj';
|
||||
$objval = intval($matches[1]).'_'.intval($matches[2]);
|
||||
$offset += strlen ($matches[0]);
|
||||
} elseif (($numlen = strspn($this->pdfdata, '+-.0123456789', $offset)) > 0) {
|
||||
@ -625,6 +678,8 @@ class TCPDF_PARSER {
|
||||
return;
|
||||
}
|
||||
$objref = $obj[0].' '.$obj[1].' obj';
|
||||
// ignore leading zeros
|
||||
$offset += strspn($this->pdfdata, '0', $offset);
|
||||
if (strpos($this->pdfdata, $objref, $offset) != $offset) {
|
||||
// an indirect reference to an undefined object shall be considered a reference to the null object
|
||||
return array('null', 'null', $offset);
|
||||
@ -640,7 +695,7 @@ class TCPDF_PARSER {
|
||||
$offset = $element[2];
|
||||
// decode stream using stream's dictionary information
|
||||
if ($decoding AND ($element[0] == 'stream') AND (isset($objdata[($i - 1)][0])) AND ($objdata[($i - 1)][0] == '<<')) {
|
||||
$element[3] = $this->decodeStream($objdata[($i - 1)][1], substr($element[1], 1));
|
||||
$element[3] = $this->decodeStream($objdata[($i - 1)][1], $element[1]);
|
||||
}
|
||||
$objdata[$i] = $element;
|
||||
++$i;
|
||||
@ -717,8 +772,16 @@ class TCPDF_PARSER {
|
||||
// decode the stream
|
||||
$remaining_filters = array();
|
||||
foreach ($filters as $filter) {
|
||||
if (in_array($filter, $this->FilterDecoders->getAvailableFilters())) {
|
||||
$stream = $this->FilterDecoders->decodeFilter($filter, $stream);
|
||||
if (in_array($filter, TCPDF_FILTERS::getAvailableFilters())) {
|
||||
try {
|
||||
$stream = TCPDF_FILTERS::decodeFilter($filter, $stream);
|
||||
} catch (Exception $e) {
|
||||
$emsg = $e->getMessage();
|
||||
if ((($emsg[0] == '~') AND !$this->cfg['ignore_missing_filter_decoders'])
|
||||
OR (($emsg[0] != '~') AND !$this->cfg['ignore_filter_decoding_errors'])) {
|
||||
$this->Error($e->getMessage());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// add missing filter to array
|
||||
$remaining_filters[] = $filter;
|
||||
@ -728,14 +791,17 @@ class TCPDF_PARSER {
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is automatically called in case of fatal error; it simply outputs the message and halts the execution.
|
||||
* Throw an exception or print an error message and die if the K_TCPDF_PARSER_THROW_EXCEPTION_ERROR constant is set to true.
|
||||
* @param $msg (string) The error message
|
||||
* @public
|
||||
* @since 1.0.000 (2011-05-23)
|
||||
*/
|
||||
public function Error($msg) {
|
||||
// exit program and print error
|
||||
die('<strong>TCPDF_PARSER ERROR: </strong>'.$msg);
|
||||
if ($this->cfg['die_for_errors']) {
|
||||
die('<strong>TCPDF_PARSER ERROR: </strong>'.$msg);
|
||||
} else {
|
||||
throw new Exception('TCPDF_PARSER ERROR: '.$msg);
|
||||
}
|
||||
}
|
||||
|
||||
} // END OF TCPDF_PARSER CLASS
|
||||
|
||||
@ -23,9 +23,11 @@ ShowResourcePlanning=Show resource planning
|
||||
NoResourceInDatabase=No resource in database
|
||||
GotoDate=Go to date
|
||||
|
||||
ResourceElementPage=Element resources
|
||||
ResourceCreatedWithSuccess=Resource successfully created
|
||||
RessourceLineSuccessfullyDeleted=Resource line successfully deleted
|
||||
RessourceLineSuccessfullyUpdated=Resource line successfully updated
|
||||
ResourceLinkedWithSuccess=Resource linked with success
|
||||
|
||||
TitleResourceCard=Resource card
|
||||
ConfirmDeleteResource=Confirm to delete this resource
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
MenuResourceIndex=Ressources
|
||||
MenuResourceAdd=Nouvelle ressource
|
||||
MenuResourcePlanning=Planning des Ressources
|
||||
DeleteResource=Effacer resource
|
||||
DeleteResource=Effacer ressource
|
||||
ConfirmDeleteResourceElement=Confirmer la suppression de la ressource pour cet élément
|
||||
NoResourceInDatabase=Aucune ressource en base de données.
|
||||
NoResourceLinked=Aucune ressource liée
|
||||
@ -17,17 +17,19 @@ ResourceFormLabel_description=Description de la ressource
|
||||
|
||||
ResourcesLinkedToElement=Ressources liées à l'élément
|
||||
RessourceLineSuccessfullyUpdated=Ressource mise à jour
|
||||
RessourceLineSuccessfullyDeleted=Resource supprimée
|
||||
RessourceLineSuccessfullyDeleted=Ressource supprimée
|
||||
|
||||
ShowResourcePlanning=Montrer le planning des ressources
|
||||
PlanningOfAffectedResources=Planning des ressources affectées aux évènements
|
||||
GotoDate=Afficher la date
|
||||
|
||||
ResourceElementPage=Ressources de l'élément
|
||||
ResourceCreatedWithSuccess=Ressource créee avec succès
|
||||
RessourceLineSuccessfullyDeleted=Ressource supprimée avec succès
|
||||
RessourceLineSuccessfullyUpdated=Ressource mise à jour
|
||||
ResourceLinkedWithSuccess=Ressource liée avec succès
|
||||
|
||||
TitleResourceCard=Fiche resource
|
||||
TitleResourceCard=Fiche ressource
|
||||
ConfirmDeleteResource=Confirmer la suppression de cette ressource?
|
||||
RessourceSuccessfullyDeleted=Ressource effacée avec succès
|
||||
DictionaryResourceType=Type de ressources
|
||||
@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
|
||||
|
||||
if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php';
|
||||
|
||||
|
||||
$prodcustprice = new Productcustomerprice($db);
|
||||
}
|
||||
|
||||
@ -61,21 +61,21 @@ $error=0;
|
||||
|
||||
if ($action == 'update_price' && ! $_POST ["cancel"] && ($user->rights->produit->creer || $user->rights->service->creer)) {
|
||||
$result = $object->fetch($id);
|
||||
|
||||
|
||||
$error=0;
|
||||
$maxpricesupplier = $object->min_recommended_price();
|
||||
|
||||
|
||||
// MultiPrix
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES))
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES))
|
||||
{
|
||||
$newprice = '';
|
||||
$newprice_min = '';
|
||||
$newpricebase = '';
|
||||
$newvat = '';
|
||||
|
||||
for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i ++)
|
||||
|
||||
for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i ++)
|
||||
{
|
||||
if (isset($_POST ["price_" . $i]))
|
||||
if (isset($_POST ["price_" . $i]))
|
||||
{
|
||||
$level = $i;
|
||||
$newprice = price2num($_POST ["price_" . $i], 'MU');
|
||||
@ -98,14 +98,14 @@ if ($action == 'update_price' && ! $_POST ["cancel"] && ($user->rights->produit-
|
||||
$newpsq = GETPOST('psqflag');
|
||||
$newpsq = empty($newpsq) ? 0 : $newpsq;
|
||||
}
|
||||
|
||||
if ($newprice_min<$maxpricesupplier && !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
|
||||
if ($newprice_min<$maxpricesupplier && !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
{
|
||||
setEventMessage($langs->trans("MinimumPriceLimit",price($maxpricesupplier,0,'',1,-1,-1,'auto')),'errors');
|
||||
$error++;
|
||||
$action='edit_price';
|
||||
}
|
||||
|
||||
|
||||
if ($object->updatePrice($newprice, $newpricebase, $user, $newvat, $newprice_min, $level, $newnpr, $newpsq) > 0) {
|
||||
$action = '';
|
||||
setEventMessage($langs->trans("RecordSaved"));
|
||||
@ -129,7 +129,7 @@ $error = 0;
|
||||
if ($action == 'activate_price_by_qty') { // Activating product price by quantity add a new price, specified as by quantity
|
||||
$result = $object->fetch($id);
|
||||
$level = GETPOST('level');
|
||||
|
||||
|
||||
$object->updatePrice(0, $object->price_base_type, $user, $object->tva_tx, 0, $level, $object->tva_npr, 1);
|
||||
}
|
||||
|
||||
@ -139,7 +139,7 @@ if ($action == 'edit_price_by_qty') { // Edition d'un prix par quantité
|
||||
|
||||
if ($action == 'update_price_by_qty') { // Ajout / Mise à jour d'un prix par quantité
|
||||
$result = $object->fetch($id);
|
||||
|
||||
|
||||
// Récupération des variables
|
||||
$rowid = GETPOST('rowid');
|
||||
$priceid = GETPOST('priceid');
|
||||
@ -162,10 +162,10 @@ if ($action == 'update_price_by_qty') { // Ajout / Mise à jour d'un prix par qu
|
||||
if ($object->price_base_type == 'TTC') {
|
||||
$price = price2num($newprice) / (1 + ($object->tva_tx / 100));
|
||||
}
|
||||
|
||||
|
||||
$price = price2num($newprice, 'MU');
|
||||
$unitPrice = price2num($price / $quantity, 'MU');
|
||||
|
||||
|
||||
// Ajout / mise à jour
|
||||
if ($rowid > 0) {
|
||||
$sql = "UPDATE " . MAIN_DB_PREFIX . "product_price_by_qty SET";
|
||||
@ -175,12 +175,12 @@ if ($action == 'update_price_by_qty') { // Ajout / Mise à jour d'un prix par qu
|
||||
$sql .= " remise_percent=" . $remise_percent . ",";
|
||||
$sql .= " remise=" . $remise;
|
||||
$sql .= " WHERE rowid = " . GETPOST('rowid');
|
||||
|
||||
|
||||
$result = $db->query($sql);
|
||||
} else {
|
||||
$sql = "INSERT INTO " . MAIN_DB_PREFIX . "product_price_by_qty (fk_product_price,price,unitprice,quantity,remise_percent,remise) values (";
|
||||
$sql .= $priceid . ',' . $price . ',' . $unitPrice . ',' . $quantity . ',' . $remise_percent . ',' . $remise . ')';
|
||||
|
||||
|
||||
$result = $db->query($sql);
|
||||
}
|
||||
}
|
||||
@ -188,19 +188,19 @@ if ($action == 'update_price_by_qty') { // Ajout / Mise à jour d'un prix par qu
|
||||
|
||||
if ($action == 'delete_price_by_qty') {
|
||||
$rowid = GETPOST('rowid');
|
||||
|
||||
|
||||
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "product_price_by_qty";
|
||||
$sql .= " WHERE rowid = " . GETPOST('rowid');
|
||||
|
||||
|
||||
$result = $db->query($sql);
|
||||
}
|
||||
|
||||
if ($action == 'delete_all_price_by_qty') {
|
||||
$priceid = GETPOST('priceid');
|
||||
|
||||
|
||||
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "product_price_by_qty";
|
||||
$sql .= " WHERE fk_product_price = " . $priceid;
|
||||
|
||||
|
||||
$result = $db->query($sql);
|
||||
}
|
||||
|
||||
@ -213,11 +213,11 @@ if ($action == 'add_customer_price_confirm' && ! $_POST ["cancel"] && ($user->ri
|
||||
|
||||
$error=0;
|
||||
$maxpricesupplier = $object->min_recommended_price();
|
||||
|
||||
|
||||
$update_child_soc = GETPOST('updatechildprice');
|
||||
|
||||
|
||||
$result = $object->fetch($id);
|
||||
|
||||
|
||||
// add price by customer
|
||||
$prodcustprice->fk_soc = GETPOST('socid', 'int');
|
||||
$prodcustprice->fk_product = $object->id;
|
||||
@ -226,23 +226,24 @@ if ($action == 'add_customer_price_confirm' && ! $_POST ["cancel"] && ($user->ri
|
||||
$prodcustprice->price_base_type = GETPOST("price_base_type", 'alpha');
|
||||
$prodcustprice->tva_tx = str_replace('*', '', GETPOST("tva_tx"));
|
||||
$prodcustprice->recuperableonly = (preg_match('/\*/', GETPOST("tva_tx")) ? 1 : 0);
|
||||
|
||||
if ($prodcustprice->price_min<$maxpricesupplier && !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
|
||||
if ($prodcustprice->price_min<$maxpricesupplier && !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
{
|
||||
setEventMessage($langs->trans("MinimumPriceLimit",price($maxpricesupplier,0,'',1,-1,-1,'auto')),'errors');
|
||||
$error++;
|
||||
$action='add_customer_price';
|
||||
}
|
||||
|
||||
if (empty($error)) {
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$result = $prodcustprice->create($user, 0, $update_child_soc);
|
||||
|
||||
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
} else {
|
||||
setEventMessage($langs->trans('Save'), 'mesgs');
|
||||
}
|
||||
|
||||
|
||||
$action = '';
|
||||
}
|
||||
}
|
||||
@ -251,7 +252,7 @@ if ($action == 'delete_customer_price' && ($user->rights->produit->supprimer ||
|
||||
// Delete price by customer
|
||||
$prodcustprice->id = GETPOST('lineid');
|
||||
$result = $prodcustprice->delete($user);
|
||||
|
||||
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'mesgs');
|
||||
} else {
|
||||
@ -263,36 +264,38 @@ if ($action == 'delete_customer_price' && ($user->rights->produit->supprimer ||
|
||||
if ($action == 'update_customer_price_confirm' && ! $_POST ["cancel"] && ($user->rights->produit->creer || $user->rights->service->creer)) {
|
||||
|
||||
$result = $object->fetch($id);
|
||||
|
||||
|
||||
$error=0;
|
||||
$maxpricesupplier = $object->min_recommended_price();
|
||||
|
||||
|
||||
$update_child_soc = GETPOST('updatechildprice');
|
||||
|
||||
|
||||
$prodcustprice->fetch(GETPOST('lineid', 'int'));
|
||||
|
||||
|
||||
// update price by customer
|
||||
$prodcustprice->price = price2num(GETPOST("price"), 'MU');
|
||||
$prodcustprice->price_min = price2num(GETPOST("price_min"), 'MU');
|
||||
$prodcustprice->price_base_type = GETPOST("price_base_type", 'alpha');
|
||||
$prodcustprice->tva_tx = str_replace('*', '', GETPOST("tva_tx"));
|
||||
$prodcustprice->recuperableonly = (preg_match('/\*/', GETPOST("tva_tx")) ? 1 : 0);
|
||||
|
||||
if ($prodcustprice->price_min<$maxpricesupplier && !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
|
||||
if ($prodcustprice->price_min<$maxpricesupplier && !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
{
|
||||
setEventMessage($langs->trans("MinimumPriceLimit",price($maxpricesupplier,0,'',1,-1,-1,'auto')),'errors');
|
||||
$error++;
|
||||
$action='update_customer_price';
|
||||
}
|
||||
if (empty($error)) {
|
||||
|
||||
if ( ! $error)
|
||||
{
|
||||
$result = $prodcustprice->update($user, 0, $update_child_soc);
|
||||
|
||||
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
} else {
|
||||
setEventMessage($langs->trans('Save'), 'mesgs');
|
||||
}
|
||||
|
||||
|
||||
$action = '';
|
||||
}
|
||||
}
|
||||
@ -343,22 +346,22 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
$soc = new Societe($db);
|
||||
$soc->id = $socid;
|
||||
$soc->fetch($socid);
|
||||
|
||||
|
||||
print '<tr><td>' . $langs->trans("SellingPrice") . '</td>';
|
||||
|
||||
|
||||
if ($object->multiprices_base_type ["$soc->price_level"] == 'TTC') {
|
||||
print '<td>' . price($object->multiprices_ttc ["$soc->price_level"]);
|
||||
} else {
|
||||
print '<td>' . price($object->multiprices ["$soc->price_level"]);
|
||||
}
|
||||
|
||||
|
||||
if ($object->multiprices_base_type ["$soc->price_level"]) {
|
||||
print ' ' . $langs->trans($object->multiprices_base_type ["$soc->price_level"]);
|
||||
} else {
|
||||
print ' ' . $langs->trans($object->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Prix mini
|
||||
print '<tr><td>' . $langs->trans("MinPrice") . '</td><td>';
|
||||
if ($object->multiprices_base_type ["$soc->price_level"] == 'TTC') {
|
||||
@ -367,41 +370,41 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print price($object->multiprices_min ["$soc->price_level"]) . ' ' . $langs->trans($object->multiprices_base_type ["$soc->price_level"]);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// TVA
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td>' . vatrate($object->multiprices_tva_tx ["$soc->price_level"], true) . '</td></tr>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i ++)
|
||||
for($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i ++)
|
||||
{
|
||||
// TVA
|
||||
if ($i == 1) // We show only price for level 1
|
||||
{
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td>' . vatrate($object->multiprices_tva_tx [1], true) . '</td></tr>';
|
||||
}
|
||||
|
||||
|
||||
print '<tr>';
|
||||
|
||||
|
||||
// Label of price
|
||||
print '<td>' . $langs->trans("SellingPrice") . ' ' . $i;
|
||||
$keyforlabel='PRODUIT_MULTIPRICES_LABEL'.$i;
|
||||
if (! empty($conf->global->$keyforlabel)) print ' - '.$langs->trans($conf->global->$keyforlabel);
|
||||
print '</td>';
|
||||
|
||||
|
||||
if ($object->multiprices_base_type ["$i"] == 'TTC') {
|
||||
print '<td>' . price($object->multiprices_ttc ["$i"]);
|
||||
} else {
|
||||
print '<td>' . price($object->multiprices ["$i"]);
|
||||
}
|
||||
|
||||
|
||||
if ($object->multiprices_base_type ["$i"]) {
|
||||
print ' ' . $langs->trans($object->multiprices_base_type ["$i"]);
|
||||
} else {
|
||||
print ' ' . $langs->trans($object->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Prix mini
|
||||
print '<tr><td>' . $langs->trans("MinPrice") . ' ' . $i . '</td><td>';
|
||||
if ($object->multiprices_base_type ["$i"] == 'TTC') {
|
||||
@ -410,15 +413,15 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print price($object->multiprices_min ["$i"]) . ' ' . $langs->trans($object->multiprices_base_type ["$i"]);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price by quantity
|
||||
if ($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY) {
|
||||
print '<tr><td>' . $langs->trans("PriceByQuantity") . ' ' . $i;
|
||||
print '</td><td>';
|
||||
|
||||
|
||||
if ($object->prices_by_qty [$i] == 1) {
|
||||
print '<table width="50%" class="noborder">';
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>' . $langs->trans("PriceByQuantityRange") . ' ' . $i . '</td>';
|
||||
print '<td align="right">' . $langs->trans("HT") . '</td>';
|
||||
@ -473,7 +476,7 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print '</tr>';
|
||||
print '</form>';
|
||||
}
|
||||
|
||||
|
||||
print '</table>';
|
||||
} else {
|
||||
print $langs->trans("No");
|
||||
@ -486,7 +489,7 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
} else {
|
||||
// TVA
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td>' . vatrate($object->tva_tx . ($object->tva_npr ? '*' : ''), true) . '</td></tr>';
|
||||
|
||||
|
||||
// Price
|
||||
print '<tr><td>' . $langs->trans("SellingPrice") . '</td><td>';
|
||||
if ($object->price_base_type == 'TTC') {
|
||||
@ -495,7 +498,7 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print price($object->price) . ' ' . $langs->trans($object->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price minimum
|
||||
print '<tr><td>' . $langs->trans("MinPrice") . '</td><td>';
|
||||
if ($object->price_base_type == 'TTC') {
|
||||
@ -504,7 +507,7 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print price($object->price_min) . ' ' . $langs->trans($object->price_base_type);
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price by quantity
|
||||
if ($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY) {
|
||||
print '<tr><td>' . $langs->trans("PriceByQuantity");
|
||||
@ -512,7 +515,7 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print ' <a href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=activate_price_by_qty&level=1">' . $langs->trans("Activate");
|
||||
}
|
||||
print '</td><td>';
|
||||
|
||||
|
||||
if ($object->prices_by_qty [0] == 1) {
|
||||
print '<table width="50%" class="noborder">';
|
||||
print '<tr class="liste_titre">';
|
||||
@ -569,7 +572,7 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print '</tr>';
|
||||
print '</form>';
|
||||
}
|
||||
|
||||
|
||||
print '</table>';
|
||||
} else {
|
||||
print $langs->trans("No");
|
||||
@ -595,11 +598,11 @@ print "</div>\n";
|
||||
|
||||
if (! $action || $action == 'delete') {
|
||||
print "\n" . '<div class="tabsAction">' . "\n";
|
||||
|
||||
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=edit_price&id=' . $object->id . '">' . $langs->trans("UpdatePrice") . '</a></div>';
|
||||
}
|
||||
|
||||
|
||||
print "\n</div>\n";
|
||||
}
|
||||
|
||||
@ -608,19 +611,19 @@ if (! $action || $action == 'delete') {
|
||||
*/
|
||||
if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->service->creer)) {
|
||||
print_fiche_titre($langs->trans("NewPrice"), '', '');
|
||||
|
||||
|
||||
if (empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="update_price">';
|
||||
print '<input type="hidden" name="id" value="' . $object->id . '">';
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
|
||||
// VAT
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td>';
|
||||
print $form->load_tva("tva_tx", $object->tva_tx, $mysoc, '', $object->id, $object->tva_npr);
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price base
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('PriceBase');
|
||||
@ -629,7 +632,7 @@ if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->
|
||||
print $form->select_PriceBaseType($object->price_base_type, "price_base_type");
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Price
|
||||
print '<tr><td width="20%">';
|
||||
$text = $langs->trans('SellingPrice');
|
||||
@ -641,7 +644,7 @@ if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->
|
||||
print '<input name="price" size="10" value="' . price($object->price) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price minimum
|
||||
print '<tr><td>';
|
||||
$text = $langs->trans('MinPrice');
|
||||
@ -651,17 +654,17 @@ if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->
|
||||
} else {
|
||||
print '<td><input name="price_min" size="10" value="' . price($object->price_min) . '">';
|
||||
}
|
||||
if ( !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
if ( !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
{
|
||||
print '<td align="left">'.$langs->trans("MinimumRecommendedPrice", price($maxpricesupplier,0,'',1,-1,-1,'auto')).' '.img_warning().'</td>';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
print '<center><br><input type="submit" class="button" value="' . $langs->trans("Save") . '"> ';
|
||||
print '<input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '"></center>';
|
||||
|
||||
|
||||
print '<br></form>';
|
||||
} else {
|
||||
for($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i ++) {
|
||||
@ -670,7 +673,7 @@ if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->
|
||||
print '<input type="hidden" name="action" value="update_price">';
|
||||
print '<input type="hidden" name="id" value="' . $object->id . '">';
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
|
||||
// VAT
|
||||
if ($i == 1) {
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td>';
|
||||
@ -679,7 +682,7 @@ if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->
|
||||
} else { // We always use the vat rate of price level 1 (A vat rate does not depends on customer)
|
||||
print '<input type="hidden" name="tva_tx_' . $i . '" value="' . $object->multiprices_tva_tx [1] . '">';
|
||||
}
|
||||
|
||||
|
||||
// Selling price
|
||||
print '<tr><td width="20%">';
|
||||
$text = $langs->trans('SellingPrice') . ' ' . $i;
|
||||
@ -692,7 +695,7 @@ if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->
|
||||
}
|
||||
print $form->select_PriceBaseType($object->multiprices_base_type ["$i"], "multiprices_base_type_" . $i);
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Min price
|
||||
print '<tr><td>';
|
||||
$text = $langs->trans('MinPrice') . ' ' . $i;
|
||||
@ -702,12 +705,12 @@ if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->
|
||||
} else {
|
||||
print '<td><input name="price_min_' . $i . '" size="10" value="' . price($object->multiprices_min ["$i"]) . '">';
|
||||
}
|
||||
if ( !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
if ( !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
{
|
||||
print '<td align="left">'.$langs->trans("MinimumRecommendedPrice", price($maxpricesupplier,0,'',1,-1,-1,'auto')).' '.img_warning().'</td>';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
print '<tr><td colspan="2" align="center"><input type="submit" class="button" value="' . $langs->trans("Save") . '"> ';
|
||||
print '<input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '"></td></tr>';
|
||||
print '</table>';
|
||||
@ -733,33 +736,33 @@ $sql .= " ORDER BY p.date_price DESC, p.price_level ASC";
|
||||
$result = $db->query($sql);
|
||||
if ($result) {
|
||||
$num = $db->num_rows($result);
|
||||
|
||||
|
||||
if (! $num) {
|
||||
$db->free($result);
|
||||
|
||||
|
||||
// Il doit au moins y avoir la ligne de prix initial.
|
||||
// On l'ajoute donc pour remettre a niveau (pb vieilles versions)
|
||||
$object->updatePrice($object->price, $object->price_base_type, $user, $newprice_min);
|
||||
|
||||
|
||||
$result = $db->query($sql);
|
||||
$num = $db->num_rows($result);
|
||||
}
|
||||
|
||||
|
||||
if ($num > 0) {
|
||||
print '<br>';
|
||||
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>' . $langs->trans("AppliedPricesFrom") . '</td>';
|
||||
|
||||
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print '<td align="center">' . $langs->trans("MultiPriceLevelsName") . '</td>';
|
||||
}
|
||||
if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) {
|
||||
print '<td align="center">' . $langs->trans("Type") . '</td>';
|
||||
}
|
||||
|
||||
|
||||
print '<td align="center">' . $langs->trans("PriceBase") . '</td>';
|
||||
print '<td align="right">' . $langs->trans("VAT") . '</td>';
|
||||
print '<td align="right">' . $langs->trans("HT") . '</td>';
|
||||
@ -770,7 +773,7 @@ if ($result) {
|
||||
if ($user->rights->produit->supprimer)
|
||||
print '<td align="right"> </td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
$var = True;
|
||||
$i = 0;
|
||||
while ($i < $num) {
|
||||
@ -779,7 +782,7 @@ if ($result) {
|
||||
print "<tr $bc[$var]>";
|
||||
// Date
|
||||
print "<td>" . dol_print_date($db->jdate($objp->dp), "dayhour") . "</td>";
|
||||
|
||||
|
||||
// Price level
|
||||
if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
print '<td align="center">' . $objp->price_level . "</td>";
|
||||
@ -789,17 +792,17 @@ if ($result) {
|
||||
$type = ($objp->price_by_qty == 1) ? 'PriceByQuantity' : 'Standard';
|
||||
print '<td align="center">' . $langs->trans($type) . "</td>";
|
||||
}
|
||||
|
||||
|
||||
print '<td align="center">' . $langs->trans($objp->price_base_type) . "</td>";
|
||||
print '<td align="right">' . vatrate($objp->tva_tx, true, $objp->recuperableonly) . "</td>";
|
||||
print '<td align="right">' . price($objp->price) . "</td>";
|
||||
print '<td align="right">' . price($objp->price_ttc) . "</td>";
|
||||
print '<td align="right">' . price($objp->price_min) . '</td>';
|
||||
print '<td align="right">' . price($objp->price_min_ttc) . '</td>';
|
||||
|
||||
|
||||
// User
|
||||
print '<td align="right"><a href="' . DOL_URL_ROOT . '/user/fiche.php?id=' . $objp->user_id . '">' . img_object($langs->trans("ShowUser"), 'user') . ' ' . $objp->login . '</a></td>';
|
||||
|
||||
|
||||
// Action
|
||||
if ($user->rights->produit->supprimer) {
|
||||
print '<td align="right">';
|
||||
@ -811,7 +814,7 @@ if ($result) {
|
||||
print ' '; // Can not delete last price (it's current price)
|
||||
print '</td>';
|
||||
}
|
||||
|
||||
|
||||
print "</tr>\n";
|
||||
$i ++;
|
||||
}
|
||||
@ -824,9 +827,9 @@ if ($result) {
|
||||
}
|
||||
|
||||
if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
|
||||
|
||||
$prodcustprice = new Productcustomerprice($db);
|
||||
|
||||
|
||||
$sortfield = GETPOST("sortfield", 'alpha');
|
||||
$sortorder = GETPOST("sortorder", 'alpha');
|
||||
$page = GETPOST("page", 'int');
|
||||
@ -840,22 +843,22 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
$sortorder = "ASC";
|
||||
if (! $sortfield)
|
||||
$sortfield = "soc.nom";
|
||||
|
||||
|
||||
// Build filter to diplay only concerned lines
|
||||
$filter = array('t.fk_product' => $object->id);
|
||||
|
||||
|
||||
$search_soc = GETPOST('search_soc');
|
||||
if (! empty($search_soc)) {
|
||||
$filter ['soc.nom'] = $search_soc;
|
||||
}
|
||||
|
||||
|
||||
if ($action == 'add_customer_price') {
|
||||
|
||||
|
||||
// Create mode
|
||||
$maxpricesupplier = $object->min_recommended_price();
|
||||
|
||||
|
||||
print_fiche_titre($langs->trans('PriceByCustomer'));
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="add_customer_price_confirm">';
|
||||
@ -867,12 +870,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print $form->select_company('', 'socid', 's.rowid NOT IN (SELECT fk_soc FROM ' . MAIN_DB_PREFIX . 'product_customer_price WHERE fk_product='.$object->id.')', 1);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// VAT
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td>';
|
||||
print $form->load_tva("tva_tx", $object->tva_tx, $mysoc, '', $object->id, $object->tva_npr);
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price base
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('PriceBase');
|
||||
@ -881,7 +884,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print $form->select_PriceBaseType($object->price_base_type, "price_base_type");
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Price
|
||||
print '<tr><td width="20%">';
|
||||
$text = $langs->trans('SellingPrice');
|
||||
@ -893,7 +896,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input name="price" size="10" value="' . price($object->price) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price minimum
|
||||
print '<tr><td>';
|
||||
$text = $langs->trans('MinPrice');
|
||||
@ -903,12 +906,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
} else {
|
||||
print '<td><input name="price_min" size="10" value="' . price($object->price_min) . '">';
|
||||
}
|
||||
if ( !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
if ( !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
{
|
||||
print '<td align="left">'.$langs->trans("MinimumRecommendedPrice", price($maxpricesupplier,0,'',1,-1,-1,'auto')).' '.img_warning().'</td>';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Update all child soc
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('ForceUpdateChildPriceSoc');
|
||||
@ -917,25 +920,25 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input type="checkbox" name="updatechildprice" value="1">';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
print '<center><br><input type="submit" class="button" value="' . $langs->trans("Save") . '"> ';
|
||||
print '<input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '"></center>';
|
||||
|
||||
|
||||
print '<br></form>';
|
||||
} elseif ($action == 'edit_customer_price') {
|
||||
|
||||
|
||||
// Edit mode
|
||||
$maxpricesupplier = $object->min_recommended_price();
|
||||
|
||||
|
||||
print_fiche_titre($langs->trans('PriceByCustomer'));
|
||||
|
||||
|
||||
$result = $prodcustprice->fetch(GETPOST('lineid', 'int'));
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
}
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="update_customer_price_confirm">';
|
||||
@ -947,12 +950,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
$staticsoc->fetch($prodcustprice->fk_soc);
|
||||
print "<td colspan='2'>" . $staticsoc->getNomUrl(1) . "</td>";
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// VAT
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td colspan="2">';
|
||||
print $form->load_tva("tva_tx", $prodcustprice->tva_tx, $mysoc, '', $object->id, $prodcustprice->recuperableonly);
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price base
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('PriceBase');
|
||||
@ -961,7 +964,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print $form->select_PriceBaseType($prodcustprice->price_base_type, "price_base_type");
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Price
|
||||
print '<tr><td width="20%">';
|
||||
$text = $langs->trans('SellingPrice');
|
||||
@ -973,22 +976,24 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input name="price" size="10" value="' . price($prodcustprice->price) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price minimum
|
||||
print '<tr><td>';
|
||||
$text = $langs->trans('MinPrice');
|
||||
print $form->textwithpicto($text, $langs->trans("PrecisionUnitIsLimitedToXDecimals", $conf->global->MAIN_MAX_DECIMALS_UNIT), 1, 1);
|
||||
print '</td><td>';
|
||||
if ($prodcustprice->price_base_type == 'TTC') {
|
||||
print '<td><input name="price_min" size="10" value="' . price($prodcustprice->price_min_ttc) . '">';
|
||||
print '<input name="price_min" size="10" value="' . price($prodcustprice->price_min_ttc) . '">';
|
||||
} else {
|
||||
print '<td><input name="price_min" size="10" value="' . price($prodcustprice->price_min) . '">';
|
||||
print '<input name="price_min" size="10" value="' . price($prodcustprice->price_min) . '">';
|
||||
}
|
||||
if ( !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
print '</td>';
|
||||
if ( !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
|
||||
{
|
||||
print '<td align="left">'.$langs->trans("MinimumRecommendedPrice", price($maxpricesupplier,0,'',1,-1,-1,'auto')).' '.img_warning().'</td>';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
print '</tr>';
|
||||
|
||||
// Update all child soc
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('ForceUpdateChildPriceSoc');
|
||||
@ -997,39 +1002,39 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input type="checkbox" name="updatechildprice" value="1">';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
print '<center><br><input type="submit" class="button" value="' . $langs->trans("Save") . '"> ';
|
||||
print '<input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '"></center>';
|
||||
|
||||
|
||||
print '<br></form>';
|
||||
} elseif ($action == 'showlog_customer_price') {
|
||||
|
||||
|
||||
$filter = array('t.fk_product' => $object->id,'t.fk_soc' => GETPOST('socid', 'int'));
|
||||
|
||||
|
||||
// Count total nb of records
|
||||
$nbtotalofrecords = 0;
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$nbtotalofrecords = $prodcustprice->fetch_all_log($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);
|
||||
}
|
||||
|
||||
|
||||
$result = $prodcustprice->fetch_all_log($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
}
|
||||
|
||||
|
||||
$option = '&socid=' . GETPOST('socid', 'int') . '&id=' . $object->id;
|
||||
|
||||
|
||||
print_barre_liste($langs->trans('PriceByCustomerLog'), $page, $_SERVEUR ['PHP_SELF'], $option, $sortfield, $sortorder, '', count($prodcustprice->lines), $nbtotalofrecords);
|
||||
|
||||
|
||||
if (count($prodcustprice->lines) > 0) {
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="POST">';
|
||||
print '<input type="hidden" name="id" value="' . $object->id . '">';
|
||||
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>' . $langs->trans("ThirdParty") . '</td>';
|
||||
print '<td>' . $langs->trans("AppliedPricesFrom") . '</td>';
|
||||
@ -1042,26 +1047,26 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<td align="right">' . $langs->trans("ChangedBy") . '</td>';
|
||||
print '<td> </td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
$var = True;
|
||||
|
||||
|
||||
foreach ($prodcustprice->lines as $line) {
|
||||
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
// Date
|
||||
$staticsoc = new Societe($db);
|
||||
$staticsoc->fetch($line->fk_soc);
|
||||
|
||||
|
||||
print "<td>" . $staticsoc->getNomUrl(1) . "</td>";
|
||||
print "<td>" . dol_print_date($line->datec, "dayhour") . "</td>";
|
||||
|
||||
|
||||
print '<td align="center">' . $langs->trans($line->price_base_type) . "</td>";
|
||||
print '<td align="right">' . vatrate($line->tva_tx, true, $line->recuperableonly) . "</td>";
|
||||
print '<td align="right">' . price($line->price) . "</td>";
|
||||
print '<td align="right">' . price($line->price_ttc) . "</td>";
|
||||
print '<td align="right">' . price($line->price_min) . '</td>';
|
||||
print '<td align="right">' . price($line->price_min_ttc) . '</td>';
|
||||
|
||||
|
||||
// User
|
||||
$userstatic = new User($db);
|
||||
$userstatic->fetch($line->fk_user);
|
||||
@ -1073,36 +1078,36 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
} else {
|
||||
print $langs->trans('None');
|
||||
}
|
||||
|
||||
|
||||
print "\n" . '<div class="tabsAction">' . "\n";
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '">' . $langs->trans("Ok") . '</a></div>';
|
||||
print "\n</div><br>\n";
|
||||
} else {
|
||||
|
||||
|
||||
// View mode
|
||||
|
||||
|
||||
// Count total nb of records
|
||||
$nbtotalofrecords = 0;
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$nbtotalofrecords = $prodcustprice->fetch_all('', '', 0, 0, $filter);
|
||||
}
|
||||
|
||||
|
||||
$result = $prodcustprice->fetch_all($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
}
|
||||
|
||||
|
||||
$option = '&search_soc=' . $search_soc . '&id=' . $object->id;
|
||||
|
||||
|
||||
print_barre_liste($langs->trans('PriceByCustomer'), $page, $_SERVEUR ['PHP_SELF'], $option, $sortfield, $sortorder, '', count($prodcustprice->lines), $nbtotalofrecords);
|
||||
|
||||
|
||||
if (count($prodcustprice->lines) > 0) {
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="POST">';
|
||||
print '<input type="hidden" name="id" value="' . $object->id . '">';
|
||||
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>' . $langs->trans("ThirdParty") . '</td>';
|
||||
print '<td>' . $langs->trans("AppliedPricesFrom") . '</td>';
|
||||
@ -1115,7 +1120,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<td align="right">' . $langs->trans("ChangedBy") . '</td>';
|
||||
print '<td> </td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td><input type="text" class="flat" name="search_soc" value="' . $search_soc . '" size="20"></td>';
|
||||
print '<td colspan="8"> </td>';
|
||||
@ -1124,33 +1129,33 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input class="liste_titre" name="button_search" type="image" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/search.png" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
$var = True;
|
||||
|
||||
|
||||
foreach ($prodcustprice->lines as $line) {
|
||||
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
// Date
|
||||
$staticsoc = new Societe($db);
|
||||
$staticsoc->fetch($line->fk_soc);
|
||||
|
||||
|
||||
print "<td>" . $staticsoc->getNomUrl(1) . "</td>";
|
||||
print "<td>" . dol_print_date($line->datec, "dayhour") . "</td>";
|
||||
|
||||
|
||||
print '<td align="center">' . $langs->trans($line->price_base_type) . "</td>";
|
||||
print '<td align="right">' . vatrate($line->tva_tx, true, $line->recuperableonly) . "</td>";
|
||||
print '<td align="right">' . price($line->price) . "</td>";
|
||||
print '<td align="right">' . price($line->price_ttc) . "</td>";
|
||||
print '<td align="right">' . price($line->price_min) . '</td>';
|
||||
print '<td align="right">' . price($line->price_min_ttc) . '</td>';
|
||||
|
||||
|
||||
// User
|
||||
$userstatic = new User($db);
|
||||
$userstatic->fetch($line->fk_user);
|
||||
print '<td align="right">';
|
||||
print $userstatic->getLoginUrl(1);
|
||||
print '</td>';
|
||||
|
||||
|
||||
// Todo Edit or delete button
|
||||
// Action
|
||||
if ($user->rights->produit->supprimer || $user->rights->service->supprimer) {
|
||||
@ -1166,24 +1171,24 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '</a>';
|
||||
print '</td>';
|
||||
}
|
||||
|
||||
|
||||
print "</tr>\n";
|
||||
}
|
||||
print "</table>";
|
||||
|
||||
|
||||
print "</form>";
|
||||
} else {
|
||||
print $langs->trans('None');
|
||||
}
|
||||
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Barre d'action */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
||||
print "\n" . '<div class="tabsAction">' . "\n";
|
||||
|
||||
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=add_customer_price&id=' . $object->id . '">' . $langs->trans("AddCustomerPrice") . '</a></div>';
|
||||
}
|
||||
|
||||
@ -82,87 +82,5 @@ class ActionsResource
|
||||
}
|
||||
}
|
||||
}
|
||||
if (in_array('element_resource',explode(':',$parameters['context'])))
|
||||
{
|
||||
|
||||
$element_id = GETPOST('element_id','int');
|
||||
$element = GETPOST('element','alpha');
|
||||
$resource_type = GETPOST('resource_type');
|
||||
|
||||
$fk_resource = GETPOST('fk_resource');
|
||||
|
||||
$busy = GETPOST('busy','int');
|
||||
$mandatory = GETPOST('mandatory','int');
|
||||
|
||||
if($action == 'add_element_resource' && !GETPOST('cancel'))
|
||||
{
|
||||
$objstat = fetchObjectByElement($element_id,$element);
|
||||
|
||||
$res = $objstat->add_element_resource($fk_resource,$resource_type,$busy,$mandatory);
|
||||
|
||||
|
||||
if($res > 0)
|
||||
{
|
||||
setEventMessage($langs->trans('ResourceLinkedWithSuccess'),'mesgs');
|
||||
header("Location: ".$_SERVER['PHP_SELF'].'?element='.$element.'&element_id='.$element_id);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($langs->trans('ErrorWhenLinkingResource'),'errors');
|
||||
header("Location: ".$_SERVER['PHP_SELF'].'?mode=add&resource_type='.$resource_type.'&element='.$element.'&element_id='.$element_id);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Delete a resource linked to an element
|
||||
if ($action == 'confirm_delete_linked_resource' && $user->rights->resource->delete && GETPOST('confirm') == 'yes')
|
||||
{
|
||||
$res = $object->fetch(GETPOST('id'));
|
||||
if($res)
|
||||
{
|
||||
|
||||
$result = $object->delete_resource(GETPOST('lineid'),GETPOST('element'));
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans('RessourceLineSuccessfullyDeleted'));
|
||||
Header("Location: ".$_SERVER['PHP_SELF']."?element=".GETPOST('element')."&element_id=".GETPOST('element_id'));
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
|
||||
// Update ressource
|
||||
if ($action == 'update_linked_resource' && $user->rights->resource->write && !GETPOST('cancel') )
|
||||
{
|
||||
$res = $object->fetch_element_resource(GETPOST('lineid'));
|
||||
if($res)
|
||||
{
|
||||
|
||||
$object->busy = GETPOST('busy');
|
||||
$object->mandatory = GETPOST('mandatory');
|
||||
|
||||
$result = $object->update_element_resource($user);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans('RessourceLineSuccessfullyUpdated'));
|
||||
Header("Location: ".$_SERVER['PHP_SELF']."?element=".GETPOST('element')."&element_id=".GETPOST('element_id'));
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@ -767,7 +767,7 @@ class Resource extends CommonObject
|
||||
// Links beetween objects are stored in this table
|
||||
$sql = 'SELECT rowid, resource_id, resource_type, busy, mandatory';
|
||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'element_resources';
|
||||
$sql.= " WHERE element_id='".$element_id."' AND resource_type='".$this->element."'";
|
||||
$sql.= " WHERE element_id='".$element_id."' AND element_type='".$element."'";
|
||||
if($resource_type)
|
||||
$sql.=" AND resource_type LIKE '%".$resource_type."%'";
|
||||
$sql .= ' ORDER BY resource_type';
|
||||
|
||||
@ -57,13 +57,90 @@ if( ! $user->rights->resource->read)
|
||||
$object=new Resource($db);
|
||||
|
||||
$hookmanager->initHooks(array('element_resource'));
|
||||
|
||||
|
||||
$object->available_resources = array('resource');
|
||||
|
||||
$parameters=array('resource_id'=>$available_resources);
|
||||
// Get parameters
|
||||
$id = GETPOST('id','int');
|
||||
$action = GETPOST('action','alpha');
|
||||
$mode = GETPOST('mode','alpha');
|
||||
$lineid = GETPOST('lineid','int');
|
||||
$element = GETPOST('element','alpha');
|
||||
$element_id = GETPOST('element_id','int');
|
||||
$resource_id = GETPOST('fk_resource','int');
|
||||
$resource_type = GETPOST('resource_type','alpha');
|
||||
$busy = GETPOST('busy','int');
|
||||
$mandatory = GETPOST('mandatory','int');
|
||||
|
||||
if($action == 'add_element_resource' && !GETPOST('cancel'))
|
||||
{
|
||||
$objstat = fetchObjectByElement($element_id,$element);
|
||||
$res = $objstat->add_element_resource($resource_id,$resource_type,$busy,$mandatory);
|
||||
if($res > 0)
|
||||
{
|
||||
setEventMessage($langs->trans('ResourceLinkedWithSuccess'),'mesgs');
|
||||
header("Location: ".$_SERVER['PHP_SELF'].'?element='.$element.'&element_id='.$element_id);
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($langs->trans('ErrorWhenLinkingResource'),'errors');
|
||||
header("Location: ".$_SERVER['PHP_SELF'].'?mode=add&resource_type='.$resource_type.'&element='.$element.'&element_id='.$element_id);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Update ressource
|
||||
if ($action == 'update_linked_resource' && $user->rights->resource->write && !GETPOST('cancel') )
|
||||
{
|
||||
$res = $object->fetch_element_resource($lineid);
|
||||
if($res)
|
||||
{
|
||||
$object->busy = $busy;
|
||||
$object->mandatory = $mandatory;
|
||||
|
||||
$result = $object->update_element_resource($user);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans('RessourceLineSuccessfullyUpdated'));
|
||||
Header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete a resource linked to an element
|
||||
if ($action == 'confirm_delete_linked_resource' && $user->rights->resource->delete && GETPOST('confirm') == 'yes')
|
||||
{
|
||||
$res = $object->fetch(GETPOST('id'));
|
||||
if($res)
|
||||
{
|
||||
$result = $object->delete_resource($lineid,$element);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans('RessourceLineSuccessfullyDeleted'));
|
||||
Header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessage($object->error,'errors');
|
||||
}
|
||||
}
|
||||
|
||||
$parameters=array('resource_id'=>resource_id);
|
||||
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
|
||||
|
||||
|
||||
$parameters=array('resource_id'=>$resource_id);
|
||||
$reshook=$hookmanager->executeHooks('getElementResources',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ if ($page == -1) {
|
||||
}
|
||||
$offset = $conf->liste_limit * $page;
|
||||
if (! $sortorder) $sortorder='DESC';
|
||||
if (! $sortfield) $sortfield='datePrint';
|
||||
if (! $sortfield) $sortfield='dateprint';
|
||||
$limit = $conf->liste_limit;
|
||||
|
||||
// Search fields
|
||||
@ -169,12 +169,12 @@ if ($type_element == 'invoice')
|
||||
{ // Customer : show products from invoices
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||
$documentstatic=new Facture($db);
|
||||
$sql_select = 'SELECT f.rowid as doc_id, f.facnumber as doc_number, f.type as doc_type, f.datef as datePrint, ';
|
||||
$sql_select = 'SELECT f.rowid as doc_id, f.facnumber as doc_number, f.type as doc_type, f.datef as dateprint, ';
|
||||
$tables_from = MAIN_DB_PREFIX."facture as f,".MAIN_DB_PREFIX."facturedet as d";
|
||||
$where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$where.= " AND d.fk_facture = f.rowid";
|
||||
$where.= " AND f.entity = ".$conf->entity;
|
||||
$datePrint = 'f.datef';
|
||||
$dateprint = 'f.datef';
|
||||
$doc_number='f.facnumber';
|
||||
$thirdTypeSelect='customer';
|
||||
}
|
||||
@ -195,12 +195,12 @@ if ($type_element == 'order')
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
||||
$documentstatic=new Commande($db);
|
||||
$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as datePrint, ';
|
||||
$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, ';
|
||||
$tables_from = MAIN_DB_PREFIX."commande as c,".MAIN_DB_PREFIX."commandedet as d";
|
||||
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$where.= " AND d.fk_commande = c.rowid";
|
||||
$where.= " AND c.entity = ".$conf->entity;
|
||||
$datePrint = 'c.datef';
|
||||
$dateprint = 'c.datef';
|
||||
$doc_number='c.ref';
|
||||
$thirdTypeSelect='customer';
|
||||
}
|
||||
@ -208,11 +208,11 @@ if ($type_element == 'supplier_invoice')
|
||||
{ // Supplier : Show products from invoices.
|
||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||
$documentstatic=new FactureFournisseur($db);
|
||||
$sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datef as datePrint, ';
|
||||
$sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datef as dateprint, ';
|
||||
$tables_from = MAIN_DB_PREFIX."facture_fourn as f,".MAIN_DB_PREFIX."facture_fourn_det as d";
|
||||
$where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$where.= " AND d.fk_facture_fourn = f.rowid";
|
||||
$datePrint = 'f.datef';
|
||||
$dateprint = 'f.datef';
|
||||
$doc_number='f.ref';
|
||||
$thirdTypeSelect='supplier';
|
||||
}
|
||||
@ -220,11 +220,11 @@ if ($type_element == 'supplier_order')
|
||||
{ // Supplier : Show products from orders.
|
||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
|
||||
$documentstatic=new CommandeFournisseur($db);
|
||||
$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as datePrint, ';
|
||||
$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, ';
|
||||
$tables_from = MAIN_DB_PREFIX."commande_fournisseur as c,".MAIN_DB_PREFIX."commande_fournisseurdet as d";
|
||||
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$where.= " AND d.fk_commande = c.rowid";
|
||||
$datePrint = 'c.date_valid';
|
||||
$dateprint = 'c.date_valid';
|
||||
$doc_number='c.ref';
|
||||
$thirdTypeSelect='supplier';
|
||||
}
|
||||
@ -240,14 +240,14 @@ if ($month > 0) {
|
||||
if ($year > 0) {
|
||||
$start = dol_mktime(0, 0, 0, $month, 1, $year);
|
||||
$end = dol_time_plus_duree($start,1,'m') - 1;
|
||||
$sql.= " AND ".$datePrint." BETWEEN '".$db->idate($start)."' AND '".$db->idate($end)."'";
|
||||
$sql.= " AND ".$dateprint." BETWEEN '".$db->idate($start)."' AND '".$db->idate($end)."'";
|
||||
} else {
|
||||
$sql.= " AND date_format(".$datePrint.", '%m') = '".sprintf('%02d',$month)."'";
|
||||
$sql.= " AND date_format(".$dateprint.", '%m') = '".sprintf('%02d',$month)."'";
|
||||
}
|
||||
} else if ($year > 0) {
|
||||
$start = dol_mktime(0, 0, 0, 1, 1, $year);
|
||||
$end = dol_time_plus_duree($start,1,'y') - 1;
|
||||
$sql.= " AND ".$datePrint." BETWEEN '".$db->idate($start)."' AND '".$db->idate($end)."'";
|
||||
$sql.= " AND ".$dateprint." BETWEEN '".$db->idate($start)."' AND '".$db->idate($end)."'";
|
||||
}
|
||||
if ($sref) $sql.= " AND ".$doc_number." LIKE '%".$sref."%'";
|
||||
if ($sprod_fulldescr) $sql.= " AND (d.description LIKE '%".$sprod_fulldescr."%' OR p.label LIKE '%".$sprod_fulldescr."%')";
|
||||
@ -272,7 +272,7 @@ print '<table class="liste" width="100%">'."\n";
|
||||
// Titles with sort buttons
|
||||
print '<tr class="liste_titre">';
|
||||
print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'datePrint','',$param,'align="center" width="150"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
|
||||
print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
|
||||
// Filters
|
||||
@ -308,7 +308,7 @@ if ($sql_select)
|
||||
$documentstatic->type=$objp->type;
|
||||
print $documentstatic->getNomUrl(1);
|
||||
print '</td>';
|
||||
print '<td align="center" width="80">'.dol_print_date($db->jdate($objp->datePrint),'day').'</td>';
|
||||
print '<td align="center" width="80">'.dol_print_date($db->jdate($objp->dateprint),'day').'</td>';
|
||||
|
||||
print '<td>';
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
|
||||
|
||||
if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php';
|
||||
|
||||
|
||||
$prodcustprice = new Productcustomerprice($db);
|
||||
}
|
||||
|
||||
@ -54,9 +54,9 @@ $result = restrictedArea($user, 'societe', $socid, '&societe');
|
||||
* ****************************************************
|
||||
*/
|
||||
if ($action == 'add_customer_price_confirm' && ! $_POST ["cancel"] && ($user->rights->produit->creer || $user->rights->service->creer)) {
|
||||
|
||||
|
||||
$update_child_soc = GETPOST('updatechildprice');
|
||||
|
||||
|
||||
// add price by customer
|
||||
$prodcustprice->fk_soc = $socid;
|
||||
$prodcustprice->fk_product = GETPOST('prodid', 'int');
|
||||
@ -65,15 +65,15 @@ if ($action == 'add_customer_price_confirm' && ! $_POST ["cancel"] && ($user->ri
|
||||
$prodcustprice->price_base_type = GETPOST("price_base_type", 'alpha');
|
||||
$prodcustprice->tva_tx = str_replace('*', '', GETPOST("tva_tx"));
|
||||
$prodcustprice->recuperableonly = (preg_match('/\*/', GETPOST("tva_tx")) ? 1 : 0);
|
||||
|
||||
|
||||
$result = $prodcustprice->create($user, 0, $update_child_soc);
|
||||
|
||||
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
} else {
|
||||
setEventMessage($langs->trans('Save'), 'mesgs');
|
||||
}
|
||||
|
||||
|
||||
$action = '';
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ if ($action == 'delete_customer_price' && ($user->rights->produit->creer || $use
|
||||
// Delete price by customer
|
||||
$prodcustprice->id = GETPOST('lineid');
|
||||
$result = $prodcustprice->delete($user);
|
||||
|
||||
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'mesgs');
|
||||
} else {
|
||||
@ -91,25 +91,25 @@ if ($action == 'delete_customer_price' && ($user->rights->produit->creer || $use
|
||||
}
|
||||
|
||||
if ($action == 'update_customer_price_confirm' && ! $_POST ["cancel"] && ($user->rights->produit->creer || $user->rights->service->creer)) {
|
||||
|
||||
|
||||
$prodcustprice->fetch(GETPOST('lineid', 'int'));
|
||||
|
||||
|
||||
$update_child_soc = GETPOST('updatechildprice');
|
||||
|
||||
|
||||
// update price by customer
|
||||
$prodcustprice->price = price2num(GETPOST("price"), 'MU');
|
||||
$prodcustprice->price_min = price2num(GETPOST("price_min"), 'MU');
|
||||
$prodcustprice->price_base_type = GETPOST("price_base_type", 'alpha');
|
||||
$prodcustprice->tva_tx = str_replace('*', '', GETPOST("tva_tx"));
|
||||
$prodcustprice->recuperableonly = (preg_match('/\*/', GETPOST("tva_tx")) ? 1 : 0);
|
||||
|
||||
|
||||
$result = $prodcustprice->update($user, 0, $update_child_soc);
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
} else {
|
||||
setEventMessage($langs->trans('Save'), 'mesgs');
|
||||
}
|
||||
|
||||
|
||||
$action = '';
|
||||
}
|
||||
|
||||
@ -199,9 +199,9 @@ print '</table>';
|
||||
print '</div>';
|
||||
|
||||
if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
|
||||
|
||||
$prodcustprice = new Productcustomerprice($db);
|
||||
|
||||
|
||||
$sortfield = GETPOST("sortfield", 'alpha');
|
||||
$sortorder = GETPOST("sortorder", 'alpha');
|
||||
$page = GETPOST("page", 'int');
|
||||
@ -215,23 +215,23 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
$sortorder = "ASC";
|
||||
if (! $sortfield)
|
||||
$sortfield = "soc.nom";
|
||||
|
||||
|
||||
// Build filter to diplay only concerned lines
|
||||
$filter = array (
|
||||
't.fk_soc' => $soc->id
|
||||
't.fk_soc' => $soc->id
|
||||
);
|
||||
|
||||
|
||||
$search_soc = GETPOST('search_soc');
|
||||
if (! empty($search_soc)) {
|
||||
$filter ['soc.nom'] = $search_soc;
|
||||
}
|
||||
|
||||
|
||||
if ($action == 'add_customer_price') {
|
||||
|
||||
|
||||
// Create mode
|
||||
|
||||
|
||||
print_fiche_titre($langs->trans('PriceByCustomer'));
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?socid=' . $soc->id . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="add_customer_price_confirm">';
|
||||
@ -243,12 +243,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print $form->select_produits('', 'prodid', '', 0);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// VAT
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td>';
|
||||
print $form->load_tva("tva_tx", $object->tva_tx, $mysoc, '', $object->id, $object->tva_npr);
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price base
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('PriceBase');
|
||||
@ -257,7 +257,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print $form->select_PriceBaseType($object->price_base_type, "price_base_type");
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Price
|
||||
print '<tr><td width="20%">';
|
||||
$text = $langs->trans('SellingPrice');
|
||||
@ -269,7 +269,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input name="price" size="10" value="' . price($object->price) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price minimum
|
||||
print '<tr><td>';
|
||||
$text = $langs->trans('MinPrice');
|
||||
@ -280,7 +280,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<td><input name="price_min" size="10" value="' . price($object->price_min) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Update all child soc
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('ForceUpdateChildPriceSoc');
|
||||
@ -289,24 +289,24 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input type="checkbox" name="updatechildprice" value="1"/>';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
print '<center><br><input type="submit" class="button" value="' . $langs->trans("Save") . '"> ';
|
||||
print '<input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '"></center>';
|
||||
|
||||
|
||||
print '<br></form>';
|
||||
} elseif ($action == 'edit_customer_price') {
|
||||
|
||||
|
||||
// Edit mode
|
||||
|
||||
|
||||
print_fiche_titre($langs->trans('PriceByCustomer'));
|
||||
|
||||
|
||||
$result = $prodcustprice->fetch(GETPOST('lineid', 'int'));
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
}
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?socid=' . $soc->id . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="update_customer_price_confirm">';
|
||||
@ -318,12 +318,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
$staticprod->fetch($prodcustprice->fk_product);
|
||||
print "<td>" . $staticprod->getNomUrl(1) . "</td>";
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// VAT
|
||||
print '<tr><td>' . $langs->trans("VATRate") . '</td><td>';
|
||||
print $form->load_tva("tva_tx", $prodcustprice->tva_tx, $mysoc, '', $staticprod->id, $prodcustprice->recuperableonly);
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price base
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('PriceBase');
|
||||
@ -332,7 +332,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print $form->select_PriceBaseType($prodcustprice->price_base_type, "price_base_type");
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
// Price
|
||||
print '<tr><td width="20%">';
|
||||
$text = $langs->trans('SellingPrice');
|
||||
@ -344,18 +344,19 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input name="price" size="10" value="' . price($prodcustprice->price) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Price minimum
|
||||
print '<tr><td>';
|
||||
$text = $langs->trans('MinPrice');
|
||||
print $form->textwithpicto($text, $langs->trans("PrecisionUnitIsLimitedToXDecimals", $conf->global->MAIN_MAX_DECIMALS_UNIT), 1, 1);
|
||||
print '</td><td>';
|
||||
if ($prodcustprice->price_base_type == 'TTC') {
|
||||
print '<td><input name="price_min" size="10" value="' . price($prodcustprice->price_min_ttc) . '">';
|
||||
print '<input name="price_min" size="10" value="' . price($prodcustprice->price_min_ttc) . '">';
|
||||
} else {
|
||||
print '<td><input name="price_min" size="10" value="' . price($prodcustprice->price_min) . '">';
|
||||
print '<input name="price_min" size="10" value="' . price($prodcustprice->price_min) . '">';
|
||||
}
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Update all child soc
|
||||
print '<tr><td width="15%">';
|
||||
print $langs->trans('ForceUpdateChildPriceSoc');
|
||||
@ -364,41 +365,41 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input type="checkbox" name="updatechildprice" value="1">';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
print '<center><br><input type="submit" class="button" value="' . $langs->trans("Save") . '"> ';
|
||||
print '<input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '"></center>';
|
||||
|
||||
|
||||
print '<br></form>';
|
||||
} elseif ($action == 'showlog_customer_price') {
|
||||
|
||||
|
||||
$filter = array (
|
||||
't.fk_product' => GETPOST('prodid', 'int'),'t.fk_soc' => $socid
|
||||
't.fk_product' => GETPOST('prodid', 'int'),'t.fk_soc' => $socid
|
||||
);
|
||||
|
||||
|
||||
// Count total nb of records
|
||||
$nbtotalofrecords = 0;
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$nbtotalofrecords = $prodcustprice->fetch_all_log($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);
|
||||
}
|
||||
|
||||
|
||||
$result = $prodcustprice->fetch_all_log($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
}
|
||||
|
||||
|
||||
$option = '&socid=' . GETPOST('socid', 'int') . '&prodid=' . GETPOST('prodid', 'int');
|
||||
|
||||
|
||||
print_barre_liste($langs->trans('PriceByCustomerLog'), $page, $_SERVEUR ['PHP_SELF'], $option, $sortfield, $sortorder, '', count($prodcustprice->lines), $nbtotalofrecords);
|
||||
|
||||
|
||||
if (count($prodcustprice->lines) > 0) {
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="POST">';
|
||||
print '<input type="hidden" name="id" value="' . $object->id . '">';
|
||||
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>' . $langs->trans("Product") . '</td>';
|
||||
print '<td>' . $langs->trans("AppliedPricesFrom") . '</td>';
|
||||
@ -411,25 +412,25 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<td align="right">' . $langs->trans("ChangedBy") . '</td>';
|
||||
print '<td> </td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
$var = True;
|
||||
|
||||
|
||||
foreach ( $prodcustprice->lines as $line ) {
|
||||
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
$staticprod = new Product($db);
|
||||
$staticprod->fetch($line->fk_product);
|
||||
|
||||
|
||||
print "<td>" . $staticprod->getNomUrl(1) . "</td>";
|
||||
print "<td>" . dol_print_date($line->datec, "dayhour") . "</td>";
|
||||
|
||||
|
||||
print '<td align="center">' . $langs->trans($line->price_base_type) . "</td>";
|
||||
print '<td align="right">' . vatrate($line->tva_tx, true, $line->recuperableonly) . "</td>";
|
||||
print '<td align="right">' . price($line->price) . "</td>";
|
||||
print '<td align="right">' . price($line->price_ttc) . "</td>";
|
||||
print '<td align="right">' . price($line->price_min) . '</td>';
|
||||
print '<td align="right">' . price($line->price_min_ttc) . '</td>';
|
||||
|
||||
|
||||
// User
|
||||
$userstatic = new User($db);
|
||||
$userstatic->fetch($line->fk_user);
|
||||
@ -441,36 +442,36 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
} else {
|
||||
print $langs->trans('None');
|
||||
}
|
||||
|
||||
|
||||
print "\n" . '<div class="tabsAction">' . "\n";
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?socid=' . $soc->id . '">' . $langs->trans("Ok") . '</a></div>';
|
||||
print "\n</div><br>\n";
|
||||
} else {
|
||||
|
||||
|
||||
// View mode
|
||||
|
||||
|
||||
// Count total nb of records
|
||||
$nbtotalofrecords = 0;
|
||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||
$nbtotalofrecords = $prodcustprice->fetch_all('', '', 0, 0, $filter);
|
||||
}
|
||||
|
||||
|
||||
$result = $prodcustprice->fetch_all($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);
|
||||
if ($result < 0) {
|
||||
setEventMessage($prodcustprice->error, 'errors');
|
||||
}
|
||||
|
||||
|
||||
$option = '&search_soc=' . $search_soc . '&id=' . $object->id;
|
||||
|
||||
|
||||
print_barre_liste($langs->trans('PriceByCustomer'), $page, $_SERVEUR ['PHP_SELF'], $option, $sortfield, $sortorder, '', count($prodcustprice->lines), $nbtotalofrecords);
|
||||
|
||||
|
||||
if (count($prodcustprice->lines) > 0) {
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="POST">';
|
||||
print '<input type="hidden" name="id" value="' . $object->id . '">';
|
||||
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>' . $langs->trans("Product") . '</td>';
|
||||
print '<td>' . $langs->trans("AppliedPricesFrom") . '</td>';
|
||||
@ -483,7 +484,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<td align="right">' . $langs->trans("ChangedBy") . '</td>';
|
||||
print '<td> </td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td><input type="text" class="flat" name="search_soc" value="' . $search_soc . '" size="20"></td>';
|
||||
print '<td colspan="8"> </td>';
|
||||
@ -492,33 +493,33 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '<input class="liste_titre" name="button_search" type="image" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/search.png" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
$var = True;
|
||||
|
||||
|
||||
foreach ( $prodcustprice->lines as $line ) {
|
||||
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
|
||||
|
||||
$staticprod = new Product($db);
|
||||
$staticprod->fetch($line->fk_product);
|
||||
|
||||
|
||||
print "<td>" . $staticprod->getNomUrl(1) . "</td>";
|
||||
print "<td>" . dol_print_date($line->datec, "dayhour") . "</td>";
|
||||
|
||||
|
||||
print '<td align="center">' . $langs->trans($line->price_base_type) . "</td>";
|
||||
print '<td align="right">' . vatrate($line->tva_tx, true, $line->recuperableonly) . "</td>";
|
||||
print '<td align="right">' . price($line->price) . "</td>";
|
||||
print '<td align="right">' . price($line->price_ttc) . "</td>";
|
||||
print '<td align="right">' . price($line->price_min) . '</td>';
|
||||
print '<td align="right">' . price($line->price_min_ttc) . '</td>';
|
||||
|
||||
|
||||
// User
|
||||
$userstatic = new User($db);
|
||||
$userstatic->fetch($line->fk_user);
|
||||
print '<td align="right">';
|
||||
print $userstatic->getLoginUrl(1);
|
||||
print '</td>';
|
||||
|
||||
|
||||
// Todo Edit or delete button
|
||||
// Action
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer) {
|
||||
@ -534,24 +535,24 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
|
||||
print '</a>';
|
||||
print '</td>';
|
||||
}
|
||||
|
||||
|
||||
print "</tr>\n";
|
||||
}
|
||||
print "</table>";
|
||||
|
||||
|
||||
print "</form>";
|
||||
} else {
|
||||
print $langs->trans('None');
|
||||
}
|
||||
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* Barre d'action */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
||||
print "\n" . '<div class="tabsAction">' . "\n";
|
||||
|
||||
|
||||
if ($user->rights->produit->creer || $user->rights->service->creer) {
|
||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=add_customer_price&socid=' . $soc->id . '">' . $langs->trans("AddCustomerPrice") . '</a></div>';
|
||||
}
|
||||
|
||||
@ -364,7 +364,22 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
|
||||
|
||||
|
||||
/**
|
||||
* testDolTextIsHtml
|
||||
* testDolUnaccent
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function testDolUnaccent()
|
||||
{
|
||||
// Text not already HTML
|
||||
|
||||
$input="A string\nwith a à ä é è ë ï ü ö ÿ, &, < and >.";
|
||||
$after=dol_string_unaccent($input);
|
||||
$this->assertEquals("A string\nwith a a a e e e i u o y, &, < and >.",$after);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* testDolUtf8Check
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user