我使用的是FPDF(www.fpdf.org),下载了fpdf类库后,还要使用下面的中文类库才能支持中文,但只能使用一种中文字体(华文仿宋)。为此我烦恼了很长时间,现在终于搞定了,将TrueType字体转化为pt1字体使用:
下面是在FPDF上找的一个中文类库:
<?php
require('fpdf.php');
$Big5_widths=array(' '=250,'!'=250,'"'=408,'#'=668,'$'=490,'%'=875,'&'=698,'''=250,
'('=240,')'=240,'*'=417,'+'=667,','=250,'-'=313,'.'=250,'/'=520,'0'=500,'1'=500,
'2'=500,'3'=500,'4'=500,'5'=500,'6'=500,'7'=500,'8'=500,'9'=500,':'=250,';'=250,
'<'=667,'='=667,''=667,'?'=396,'@'=921,'A'=677,'B'=615,'C'=719,'D'=760,'E'=625,
'F'=552,'G'=771,'H'=802,'I'=354,'J'=354,'K'=781,'L'=604,'M'=927,'N'=750,'O'=823,
'P'=563,'Q'=823,'R'=729,'S'=542,'T'=698,'U'=771,'V'=729,'W'=948,'X'=771,'Y'=677,
'Z'=635,'['=344,''=520,']'=344,'^'=469,'_'=500,'`'=250,'a'=469,'b'=521,'c'=427,
'd'=521,'e'=438,'f'=271,'g'=469,'h'=531,'i'=250,'j'=250,'k'=458,'l'=240,'m'=802,
'n'=531,'o'=500,'p'=521,'q'=521,'r'=365,'s'=333,'t'=292,'u'=521,'v'=458,'w'=677,
'x'=479,'y'=458,'z'=427,'{'=480,'|'=496,'}'=480,'~'=667);
$GB_widths=array(' '=207,'!'=270,'"'=342,'#'=467,'$'=462,'%'=797,'&'=710,'''=239,
'('=374,')'=374,'*'=423,'+'=605,','=238,'-'=375,'.'=238,'/'=334,'0'=462,'1'=462,
'2'=462,'3'=462,'4'=462,'5'=462,'6'=462,'7'=462,'8'=462,'9'=462,':'=238,';'=238,
'<'=605,'='=605,''=605,'?'=344,'@'=748,'A'=684,'B'=560,'C'=695,'D'=739,'E'=563,
'F'=511,'G'=729,'H'=793,'I'=318,'J'=312,'K'=666,'L'=526,'M'=896,'N'=758,'O'=772,
'P'=544,'Q'=772,'R'=628,'S'=465,'T'=607,'U'=753,'V'=711,'W'=972,'X'=647,'Y'=620,
'Z'=607,'['=374,''=333,']'=374,'^'=606,'_'=500,'`'=239,'a'=417,'b'=503,'c'=427,
'd'=529,'e'=415,'f'=264,'g'=444,'h'=518,'i'=241,'j'=230,'k'=495,'l'=228,'m'=793,
'n'=527,'o'=524,'p'=524,'q'=504,'r'=338,'s'=336,'t'=277,'u'=517,'v'=450,'w'=652,
'x'=466,'y'=452,'z'=407,'{'=370,'|'=258,'}'=370,'~'=605);
class PDF_Chinese extends FPDF
{
function AddCIDFont($family,$style,$name,$cw,$CMap,$registry)
{
$i=count($this-fonts)+1;
$fontkey=strtolower($family).strtoupper($style);
$this-fonts[$fontkey]=array('i'=$i,'type'='Type0','name'=$name,'up'=-120,'ut'=40,'cw'=$cw,'CMap'=$CMap,'registry'=$registry);
}
function AddBig5Font($family='Big5')
{
$cw=$GLOBALS['Big5_widths'];
$name='MSungStd-Light-Acro';
$CMap='ETenms-B5-H';
$registry=array('ordering'='CNS1','supplement'=0);
$this-AddCIDFont($family,'',$name,$cw,$CMap,$registry);
$this-AddCIDFont($family,'B',$name.',Bold',$cw,$CMap,$registry);
$this-AddCIDFont($family,'I',$name.',Italic',$cw,$CMap,$registry);
$this-AddCIDFont($family,'BI',$name.',BoldItalic',$cw,$CMap,$registry);
}
function AddGBFont($family='GB')
{
$cw=$GLOBALS['GB_widths'];
$name='STSongStd-Light-Acro';
$CMap='GBKp-EUC-H';
$registry=array('ordering'='GB1','supplement'=2);
$this-AddCIDFont($family,'',$name,$cw,$CMap,$registry);
$this-AddCIDFont($family,'B',$name.',Bold',$cw,$CMap,$registry);
$this-AddCIDFont($family,'I',$name.',Italic',$cw,$CMap,$registry);
$this-AddCIDFont($family,'BI',$name.',BoldItalic',$cw,$CMap,$registry);
}
function GetStringWidth($s)
{
if($this->