Files
luos/thirdparty/html2ps_pdf/converter.class.php
Paula Quispe 9eb7d6cac2 HOR-2689
2017-08-03 17:00:30 -04:00

58 lines
1.4 KiB
PHP

<?php
// $Header: /cvsroot/html2ps/converter.class.php,v 1.6 2006/06/25 13:55:35 Konstantin Exp $
class Converter {
function create() {
if (function_exists('iconv')) {
return new IconvConverter;
} else {
return new PurePHPConverter;
}
}
}
class IconvConverter {
function to_utf8($string, $encoding) {
return iconv(strtoupper($encoding), "UTF-8", $string);
}
}
class PurePHPConverter {
function apply_aliases($encoding) {
global $g_encoding_aliases;
if (isset($g_encoding_aliases[$encoding])) {
return $g_encoding_aliases[$encoding];
}
return $encoding;
}
function to_utf8($html, $encoding) {
global $g_utf8_converters;
$encoding = $this->apply_aliases($encoding);
if ($encoding === 'iso-8859-1') {
return utf8_encode($html);
} elseif ($encoding === 'utf-8') {
return $html;
} elseif(isset($g_utf8_converters[$encoding])) {
return $this->something_to_utf8($html, $g_utf8_converters[$encoding][0]);
} else {
die("Unsupported encoding detected: '$encoding'");
};
}
function something_to_utf8($html, &$mapping) {
for ($i=0; $i < strlen($html); $i++) {
$replacement = code_to_utf8($mapping[$html{$i}]);
if ($replacement != $html{$i}) {
$html = substr_replace($html, $replacement, $i, 1);
$i += strlen($replacement) - 1;
};
};
return $html;
}
}
?>