Solution au mot php tronqué : ouvrez d'abord le fichier "/Writer/Word2007/Base.php" ; puis ajoutez le contenu de "$objWriter->writeAttribute('w:eastAsia', $font)" ; enfin Enregistrez simplement les modifications.
Recommandé : "Tutoriel vidéo PHP"
PHPword résout les caractères chinois tronqués
1. Ajouter le support des polices d'Asie de l'Est
Ouvrez et modifiez le contenu du fichier path/Writer/Word2007/Base.php, probablement à la ligne 349 (le nombre de lignes peut changer selon la version). ), probablement la fonction _writeTextStyle Add :
$objWriter->writeAttribute(‘w:eastAsia’, $font)
Par exemple, mon fragment modifié est essentiellement le suivant :
Font if($font != ‘Arial’) { $objWriter->startElement(‘w:rFonts’); $objWriter->writeAttribute(‘w:eastAsia’, $font);// 添加这行 $objWriter->writeAttribute(‘w:ascii’, $font); $objWriter->writeAttribute(‘w:hAnsi’, $font); $objWriter->writeAttribute(‘w:cs’, $font); $objWriter->endElement(); }
2. Résolvez le problème du chinois tronqué (cette solution est utile pour l'encodage GBK, pas applicable à UTF-8)
Modifiez PHPWord/Template.php
Trouvez le code $replace = utf8_encode($replace);, supprimez ou commentez cette ligne de code et ajoutez $replace = iconv( 'gbk','utf-8 ′, $replace);, par exemple, le code est modifié comme suit :
if(!is_array($replace)) { //$replace = utf8_encode($replace); $replace =iconv(‘gbk’, ‘utf-8′, $replace); // 注释掉上面行后添加这行 }
La méthode d'appel est la suivante :
$document->setValue(‘Template’, iconv(‘utf-8′, ‘GB2312//IGNORE’, ‘中文’));
Le code ci-dessus résout principalement le problème des modèles,
La même chose est vraie ci-dessous, pour résoudre le problème de l'ajout de texte à la section,
Trouvez le code $givenText = utf8_encode($text); dans PHPWord/Section.php,
Supprimez ou commentez cette ligne de code, ajoutez $givenText = iconv('gbk', 'utf-8′, $text);, par exemple, le code est comme suit :
public function addText($text, $styleFont = null, $styleParagraph = null) { //$givenText = utf8_encode($text); $givenText = iconv(‘gbk’, ‘utf-8′, $text); // 注释掉上面行后添加这行 }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!