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
Last revisionBoth sides next revision
doc:appunti:prog:fpdf [2011/01/23 17:04] – [Perparare il font per l'uso con fpdf] niccolodoc:appunti:prog:fpdf [2011/09/22 11:26] – [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 Fontconfig (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 forinta 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.txt · Last modified: 2011/09/22 11:29 by niccolo