User Tools

Site Tools


doc:appunti:prog:fpdf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:prog:fpdf [2011/01/23 17:05] – [Perparare il font per l'uso con fpdf] niccolodoc:appunti:prog:fpdf [2011/09/22 11:29] (current) – [Scegliere il font] niccolo
Line 15: Line 15:
 Per questi font la libreria conosce la **larghezza di ciascun carattere** e pertanto è in grado di impaginare correttamente il documento. Tali informazioni sono contenuti in appositi file .php, contenuti nella sottodirectory **''font/''**. Per questi font la libreria conosce la **larghezza di ciascun carattere** e pertanto è in grado di impaginare correttamente il documento. Tali informazioni sono contenuti in appositi file .php, contenuti nella sottodirectory **''font/''**.
  
-La libreria FPDF non supporta la codifica UTF-8, accetta solo codifiche ad 8 bit (tabella di 256 caratteri max) e come codifica predefinita utilizza **[[wp>Windows-1252|CP1252]]** (che include le lettere accentate e il simbolo dell'euro in posizione 128).+**La libreria FPDF non supporta la codifica UTF-8**, accetta solo codifiche ad 8 bit (tabella di 256 caratteri max) e come codifica predefinita utilizza **[[wp>Windows-1252|CP1252]]** (che include le lettere accentate e il simbolo dell'euro in posizione 128).
 ===== Scegliere il font ===== ===== Scegliere il font =====
  
Line 37: Line 37:
 premendo //Invio// nella casella //Search//, se il carattere esiste nel font, viene evidenziato in negativo per qualche secondo nella tabella dei glifi. premendo //Invio// nella casella //Search//, se il carattere esiste nel font, viene evidenziato in negativo per qualche secondo nella tabella dei glifi.
  
-===== Perparare il font per l'uso con fpdf =====+Dopo aver individuato il font è possibile installarlo (anche nella propria home directory) seguendo le istruzioni contenute nella [[..:linux:tux:fonts?&#debian_squeeze_e_xorg|pagina relativa ai font TTF]]. 
 + 
 +In alternativa all'installazione manuale è sufficiente **attivare** il font in ''fontmatrix'' (abilitando il segno di spunta); in questo caso viene creato un link simbolico al font nella directory **''$HOME/.Fontmatrix/Activated/''**, tale directory è compresa tra quelle utilizzate da ''fontconfig''. ''fontmatrix'' stesso provvede all'aggiornamento della cache di ''fontconfig''
 +===== Preparare il font per l'uso con fpdf =====
  
 Con questa ricetta si prepara un font TTF per essere incluso nel documento ed utilizzato per rendere caratteri speciali quali le lettere accentate e il simbolo dell'Euro. Con questa ricetta si prepara un font TTF per essere incluso nel documento ed utilizzato per rendere caratteri speciali quali le lettere accentate e il simbolo dell'Euro.
Line 49: Line 52:
 </code> </code>
  
-quindi bisogna scrivere due righe di PHP che richiamano l'utility MakeFont fornita con la libreria FPDF:+Con **FPDF 1.7** si utilizza quindi l'utility **''makefont.php''** per preparare il font ad essere usato. Dopo aver copiato il file .ttf nella directory **''fpdf17/font/''**, si esegue: 
 + 
 +<code> 
 +php ../makefont/makefont.php arial_cyrillic.ttf ISO-8859-5 
 +</code> 
 + 
 +Questo predispone il font ad essere incluso nel PDF (altrimenti si deve passare un terzo parametro //false//), pertanto ne viene creata una copia compressa con estensione **''.z''**. Viene creato anche un file con estensione **''.php''** (''arial_cyrillic.php'' nel nostro esempio). Il funzionamento dell'operazione è il seguente: 
 + 
 +  * Nel file .ttf **deve essere presente la codifica Unicode** per ogni carattere. 
 +  * La mappa indicata viene usata per associare ciascun codice 0-255 ad un punto Unicode (indicato con la sintassi ''U+0041''). Se un carattere presente nella mappa non è presente nel font, viene emesso un messaggio di warning. Se non viene indicata la mappa, si intende cp1252. 
 +  * Nel file .php vengono salvate informazioni sulla metrica del font. 
 + 
 +DELETEME Con la versione 1.6 di FPDF bisogna scrivere due righe di PHP che richiamano l'utility MakeFont fornita con la libreria FPDF:
  
 <code php> <code php>
Line 57: Line 72:
 ?> ?>
 </code> </code>
- 
-Il risultato di questa operazione è la creazione del file **''andalemo.z''** e del file **''andalemo.php''**. Il primo contiene il font vero e proprio in forma compressa, così come verrà incluso nel documento PDF. Il secondo file contiene le informazioni metriche sul font e la mappatura dalla codifica 8-bit (cp1252 nell'esempio) alla codifica del font True Type. 
  
 Dovremmo ricordarci - quando si utilizza questo font - di codificare le stringhe secondo quanto dichiarato a ''MakeFont()'', ecco un esempio: Dovremmo ricordarci - quando si utilizza questo font - di codificare le stringhe secondo quanto dichiarato a ''MakeFont()'', ecco un esempio:
Line 67: Line 80:
 $pdf=new FPDF(); $pdf=new FPDF();
 $pdf->AddPage(); $pdf->AddPage();
-pdf->AddFont('Andale Mono', '', 'andalemo.php');+$pdf->AddFont('Andale Mono', '', 'andalemo.php');
 $pdf->SetFont('Andale Mono', '', 16); $pdf->SetFont('Andale Mono', '', 16);
 $str = iconv('UTF-8', 'CP1252', 'Niccolò Rigacci, per qualche € in più.'); $str = iconv('UTF-8', 'CP1252', 'Niccolò Rigacci, per qualche € in più.');
Line 74: Line 87:
 $pdf->Output(); $pdf->Output();
 </code> </code>
 +
 +===== Unicode =====
 +
 +Alcuni link utili per Unicode:
 +
 +  * [[http://unicode-search.net/]] Ricerca caratteri nella codifica Unicode
 +  * [[http://www.utf8-chartable.de/]] Tabelle Unicode
doc/appunti/prog/fpdf.1295798701.txt.gz · Last modified: 2011/01/23 17:05 by niccolo