Maison > développement back-end > Problème PHP > Comment résoudre le problème de mot php tronqué

Comment résoudre le problème de mot php tronqué

藏色散人
Libérer: 2023-03-06 19:12:01
original
2502 Les gens l'ont consulté

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.

Comment résoudre le problème de mot php tronqué

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)
Copier après la connexion

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();
}
Copier après la connexion

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);
// 注释掉上面行后添加这行
}
Copier après la connexion

La méthode d'appel est la suivante :

$document->setValue(‘Template’, iconv(‘utf-8′, ‘GB2312//IGNORE’, ‘中文’));
Copier après la connexion

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);
// 注释掉上面行后添加这行
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal