Maison >développement back-end >tutoriel php >phpword remplace le contenu du modèle et résout les caractères chinois tronqués

phpword remplace le contenu du modèle et résout les caractères chinois tronqués

不言
不言original
2018-04-02 13:21:403232parcourir

Le contenu de cet article est de partager avec vous comment remplacer le contenu d'un modèle dans phpword et résoudre le problème des caractères chinois tronqués. Les amis dans le besoin peuvent y jeter un œil.

D'accord, téléchargez-le d'abord :
Adresse de téléchargement : https://pan.baidu.com/s/1upup2rpLTVXIdJpGi9kK6A
Mot de passe : qxsd
Manuel http://phpword.readthedocs.io /fr/latest/search.html?q=setValue&check_keywords=yes&area=default

//Utilisez Vendor pour inclure la classe PHPWord
require_once "./word/PHPWord.php";
// Initialiser l'objet PHPWord
$PHPWord = new PHPWord();
$oMember['m_real_name'] = "Test au microscope électronique";
$oMember['content'] = "Exigences du test au microscope électronique Description Microscope électronique Exigences de test Description Exigence de test au microscope électronique Description Test au microscope électronique ExigenceDescription Exigences de test au microscope électronique Décrire les exigences des tests de microscopie électroniqueDécrire les exigences des tests de microscopie électroniqueDécrire les exigences des tests de microscopie électronique

Décrire les exigences des tests de microscopie électroniqueDécrire les exigences des tests de microscopie électroniqueDécrire les exigences des tests de microscopie électroniqueDescription";
//Charger le fichier modèle

$document = $PHPWord ->loadTemplate('./word/test/template1.docx');


//Remplacer un contenu dans le fichier modèle Word Si vous souhaitez afficher le chinois ici, vous devez. utilisez la fonction iconv
$document->setValue('need_name', iconv('utf-8', 'GB2312//IGNORE', $oMember['m_real_name']));
$document-> ;setValue('content', iconv('utf-8', 'GB2312//IGNORE', $oMember['content']));

//Remplacez un contenu dans le fichier modèle Word, faites ne pas utiliser le chinois setValue
$document->setValue('file', "7897898998");

$filename = './word/test/m-i-'.time().'. docx';

//Enregistrer le document Word
$document->save($filename);

//Télécharger le document Word
//header("Emplacement : ".$filename)


Comment écrire des variables dans des fichiers modèles

content =》 ${content} N'oubliez pas de ne pas ajouter de style à cette variable sinon elle sera affectée

need_name =》 ${need_name}

file =》 ${file}

De cette façon, vous constaterez que les caractères chinois sont tronqué. Vous devez modifier plusieurs fichiers :

Méthode Word/Base.php _WriteTextStyle() ci-dessous

$objWriter->writeAttribute('w:eastAsia', $font) ; //Modifier et ajouter if ($font != 'Arial') {
$objWriter->startElement('w:rFonts');

$objWriter->writeAttribute( 'w:eastAsia', $font); // Ajouter Modifiez cette ligne et ajoutez

$objWriter->writeAttribute('w:ascii', $font);
$objWriter->writeAttribute('w :hAnsi', $font);
$objWriter ->writeAttribute('w:cs', $font);
$objWriter->endElement();
}


PHPWord/Template.php setValue()Méthodes:

if(!is_array($replace)) {// $replace = utf8_encode($replace); $replace = iconv( 'gbk','utf- 8', $replace); //Ajouter

}


D'accord, maintenant il n'y a plus de problème

Source : Second évaluateur


Recommandations associées :

Comment PHP résout-il le problème des caractères chinois tronqués ?


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!

Déclaration:
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
Article précédent:PHP Memcache et MemcachedArticle suivant:PHP Memcache et Memcached