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

不言
Libérer: 2023-03-23 06:02:02
original
3172 Les gens l'ont consulté

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!

É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