Maison  >  Article  >  développement back-end  >  Comment résoudre le problème chinois tronqué en php fpdf

Comment résoudre le problème chinois tronqué en php fpdf

PHPz
PHPzoriginal
2023-04-19 09:22:242038parcourir

FPDF est une bibliothèque de classes PHP pour générer des documents PDF, qui permet de générer des fichiers PDF sans utiliser d'éditeur de documents PDF.

Cependant, lors de l'utilisation de FPDF pour générer des documents PDF chinois, le problème des caractères chinois tronqués peut survenir. Cette question apparaît également fréquemment dans certains forums de sites Web. Comment résoudre ce problème ?

Tout d’abord, comprenons le problème du jeu de caractères des fichiers PDF. Le jeu de caractères contenu dans le fichier PDF est le jeu de caractères Unicode et les codes de caractères chinois sont convertis selon le codage GB2312 ou UTF-8. Dans la bibliothèque de classes FPDF, seul le jeu de caractères ISO-8859-1 est pris en charge par défaut, ce qui pose le problème des caractères PDF chinois tronqués. Dans ce cas, nous pouvons le résoudre en convertissant les jeux de caractères ou en modifiant les polices.

Solution 1 : Convertir le jeu de caractères

Nous pouvons utiliser la fonction iconv() pour convertir la chaîne chinoise codée GB2312 ou UTF-8 en jeu de caractères ISO-8859-1, puis la sortir, ce qui peut résoudre le problème du chinois tronqué. . La méthode spécifique est la suivante :

1. Avant de créer la police, utilisez la fonction iconv() pour convertir la chaîne en jeu de caractères ISO-8859-1

$text = "中文内容";
$text_iso = iconv("UTF-8","ISO-8859-1",$text);

2. Utilisez la chaîne ISO-8859-1 générée pour. créez un objet FPDF

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',14);
$pdf->Cell(0,10,$text_iso);
$pdf->Output();

À ce stade, dans le document PDF généré, le contenu chinois ne sera pas tronqué. Cependant, cette méthode nécessite une conversion répétée des jeux de caractères lors du traitement de gros morceaux de contenu chinois, ce qui n'est pas assez pratique.

Solution 2 : Changer la police

Changer la police et utiliser une police qui prend en charge le jeu de caractères chinois est également un moyen efficace de résoudre le problème des caractères chinois tronqués. Nous pouvons utiliser la fonction AddFont() dans FPDF pour charger des fichiers de polices pouvant prendre en charge le jeu de caractères chinois et créer des polices prenant en charge les caractères chinois, résolvant ainsi le problème des caractères chinois tronqués.

1. Téléchargez des polices prenant en charge les jeux de caractères chinois

Recherchez sur Internet les « polices FPDF prenant en charge les caractères chinois » et vous trouverez de nombreux liens de téléchargement, tels que les polices Founder, les polices Yahei, etc. Placez les fichiers de polices téléchargés dans le répertoire "fonts" de FPDF.

2. Charger les fichiers de polices

Utilisez la fonction AddFont() de FPDF pour charger les fichiers de polices prenant en charge les caractères chinois.

require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->AddFont('MSYH', '', 'msyh.ttf', true); 
$pdf->SetFont('MSYH', '', 14);
$pdf->Cell(0,10, "中文内容");
$pdf->Output();

Parmi eux, la fonction AddFont() a 4 paramètres, à savoir : le nom de la police, le style de la police, le nom du fichier de police et s'il s'agit d'une police "trueType". Parmi eux, le style de police propose quatre choix : '', « B », « I » et « U », qui représentent respectivement normal, gras, italique et souligné. Parmi les polices prenant en charge les caractères chinois, il n’existe généralement que le style normal.

Notez que lors de l'utilisation de la fonction AddFont(), le fichier de police doit être stocké dans le répertoire des polices et doit avoir un suffixe .ttf.

Après avoir utilisé des polices prenant en charge le jeu de caractères chinois, le contenu chinois du document PDF généré s'est affiché normalement.

Résumé

Lorsque vous utilisez FPDF pour générer des documents PDF chinois, vous pouvez utiliser les deux méthodes ci-dessus pour résoudre le problème du chinois tronqué.

La première méthode nécessite une conversion répétée du jeu de caractères, ce qui n'est pas assez pratique. La deuxième méthode nécessite de télécharger des fichiers de polices prenant en charge les jeux de caractères chinois et de les placer dans le répertoire « fonts » de FPDF. Elle est plus pratique à utiliser que la première méthode. Dans le même temps, il convient également de noter que la composition en chinois dans les documents PDF peut entraîner des problèmes en raison de la taille de la police et d'autres problèmes. Il est donc préférable de tester avant d'utiliser du contenu chinois.

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