Function dol_nboflines_bis shoul work with non UTF-8 content.
This commit is contained in:
parent
b57232bd24
commit
e3bd60cb8a
@ -334,7 +334,7 @@ class BordereauChequeBlochet extends FPDF
|
||||
$pdf->SetDrawColor(224,224,224);
|
||||
|
||||
// On positionne le debut du bas de page selon nbre de lignes de ce bas de page
|
||||
$nbofligne=dol_nboflines_bis($ligne);
|
||||
$nbofligne=dol_nboflines_bis($ligne,0,$outputlangs->charset_output);
|
||||
//print 'e'.$ligne.'t'.dol_nboflines($ligne);exit;
|
||||
$posy=$marge_basse + ($nbofligne*3) + ($ligne1?3:0) + ($ligne2?3:0);
|
||||
|
||||
|
||||
@ -233,7 +233,7 @@ class pdf_edison extends ModelePDFCommandes
|
||||
//on recupere la description du produit suivant
|
||||
$follow_descproduitservice = $outputlangs->convToOutputCharset($com->lignes[$i+1]->desc);
|
||||
//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52)*4);
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4);
|
||||
}
|
||||
else // If it's last line
|
||||
{
|
||||
|
||||
@ -288,7 +288,7 @@ class pdf_einstein extends ModelePDFCommandes
|
||||
//on recupere la description du produit suivant
|
||||
$follow_descproduitservice = $outputlangs->convToOutputCharset($com->lignes[$i+1]->desc);
|
||||
//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52)*4);
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4);
|
||||
}
|
||||
else // If it's last line
|
||||
{
|
||||
|
||||
@ -219,7 +219,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
||||
$pdf->MultiCell(30, 3, $object->lignes[$i]->qty_shipped, 0, 'C', 0);
|
||||
|
||||
//Generation de la page 2
|
||||
$curY += (dol_nboflines_bis($libelleproduitservice)*3+1);
|
||||
$curY += (dol_nboflines_bis($libelleproduitservice,0,$outputlangs->charset_output)*3+1);
|
||||
$nexY = $curY;
|
||||
if ($nexY > ($tab_top+$tab_height-10) && $i < $nblignes - 1)
|
||||
{
|
||||
|
||||
@ -295,7 +295,7 @@ class pdf_crabe extends ModelePDFFactures
|
||||
//on recupere la description du produit suivant
|
||||
$follow_descproduitservice = $fac->lignes[$i+1]->desc;
|
||||
//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = dol_nboflines_bis($follow_descproduitservice,52)*4;
|
||||
$nblineFollowDesc = dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4;
|
||||
// Et si on affiche dates de validite, on ajoute encore une ligne
|
||||
if ($fac->lignes[$i]->date_start && $fac->lignes[$i]->date_end)
|
||||
{
|
||||
|
||||
@ -289,7 +289,7 @@ class pdf_soleil extends ModelePDFFicheinter
|
||||
$pdf->SetXY (10, $tab_top + 4 + $j * $height);
|
||||
$pdf->writeHTMLCell(0, 3, $this->marge_gauche, $tab_top + 4 + $j * $height,
|
||||
dol_htmlentitiesbr($outputlangs->convToOutputCharset($fichinterligne->desc),1), 0, 1, 0);
|
||||
$tab_height+=dol_nboflines_bis($fichinterligne->desc,52)*4;
|
||||
$tab_height+=dol_nboflines_bis($fichinterligne->desc,52,$outputlangs->charset_output)*4;
|
||||
|
||||
$j++;
|
||||
}
|
||||
|
||||
@ -237,10 +237,10 @@ class pdf_sirocco extends ModelePDFDeliveryOrder
|
||||
// Cherche nombre de lignes a venir pour savoir si place suffisante
|
||||
if ($i < ($nblignes - 1)) // If it's not last line
|
||||
{
|
||||
//on r<EFBFBD>cup<EFBFBD>re la description du produit suivant
|
||||
//on recupere la description du produit suivant
|
||||
$follow_descproduitservice = $object->lignes[$i+1]->desc;
|
||||
//on compte le nombre de ligne afin de v<EFBFBD>rifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52)*4);
|
||||
//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4);
|
||||
}
|
||||
else // If it's last line
|
||||
{
|
||||
|
||||
@ -301,10 +301,10 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
||||
// Cherche nombre de lignes a venir pour savoir si place suffisante
|
||||
if ($i < ($nblignes - 1)) // If it's not last line
|
||||
{
|
||||
//on r<EFBFBD>cup<EFBFBD>re la description du produit suivant
|
||||
//on recupere la description du produit suivant
|
||||
$follow_descproduitservice = $object->lignes[$i+1]->desc;
|
||||
//on compte le nombre de ligne afin de v<EFBFBD>rifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52)*4);
|
||||
//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4);
|
||||
}
|
||||
else // If it's last line
|
||||
{
|
||||
|
||||
@ -303,7 +303,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
||||
//on recupere la description du produit suivant
|
||||
$follow_descproduitservice = $propale->lignes[$i+1]->desc;
|
||||
//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52)*4);
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4);
|
||||
}
|
||||
else // If it's last line
|
||||
{
|
||||
|
||||
@ -229,7 +229,7 @@ class pdf_propale_jaune extends ModelePDFPropales
|
||||
//on recupere la description du produit suivant
|
||||
$follow_descproduitservice = $outputlangs->convToOutputCharset($propale->lignes[$i+1]->desc);
|
||||
//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52)*4);
|
||||
$nblineFollowDesc = (dol_nboflines_bis($follow_descproduitservice,52,$outputlangs->charset_output)*4);
|
||||
}
|
||||
else // If it's last line
|
||||
{
|
||||
|
||||
@ -2632,16 +2632,19 @@ function dol_nboflines($s,$maxchar=0)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Return nb of lines of a formated text with \n and <br>
|
||||
* \param texte Text
|
||||
* \param maxlinesize Largeur de ligne en caracteres (ou 0 si pas de limite - defaut)
|
||||
* \return int Number of lines
|
||||
* \brief Return nb of lines of a formated text with \n and <br>
|
||||
* \param texte Text
|
||||
* \param maxlinesize Largeur de ligne en caracteres (ou 0 si pas de limite - defaut)
|
||||
* \param charset Give the charset used to encode the $texte variable in memory.
|
||||
* \return int Number of lines
|
||||
*/
|
||||
function dol_nboflines_bis($texte,$maxlinesize=0)
|
||||
function dol_nboflines_bis($texte,$maxlinesize=0,$charset='UTF-8')
|
||||
{
|
||||
//print $texte;
|
||||
$repTable = array("\t" => " ", "\n" => "<br>", "\r" => " ", "\0" => " ", "\x0B" => " ");
|
||||
$texte = strtr($texte, $repTable);
|
||||
$pattern = '/(<[^>]+>)/';
|
||||
if ($charset == 'UTF-8') { $pattern = '/(<[^>]+>)/Uu'; } // /U is to have UNGREEDY regex to limit to one html tag. /u is for UTF8 support
|
||||
else $pattern = '/(<[^>]+>)/U'; // /U is to have UNGREEDY regex to limit to one html tag.
|
||||
$a = preg_split($pattern, $texte, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
||||
$nblines = floor((count($a)+1)/2);
|
||||
// count possible auto line breaks
|
||||
|
||||
@ -176,7 +176,7 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass
|
||||
$pdf->SetDrawColor(224,224,224);
|
||||
|
||||
// On positionne le debut du bas de page selon nbre de lignes de ce bas de page
|
||||
$nbofligne=dol_nboflines_bis($ligne);
|
||||
$nbofligne=dol_nboflines_bis($ligne,0,$outputlangs->charset_output);
|
||||
//print 'nbofligne='.$nbofligne; exit;
|
||||
//print 'e'.$ligne.'t'.dol_nboflines($ligne);exit;
|
||||
$posy=$marge_basse + ($nbofligne*3) + ($ligne1?3:0) + ($ligne2?3:0);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user