Risolto, in pratica il problema era dovuto all'impostazione di codifica.
Mi spiego meglio, sul server per la conversione in PDF sono compilate insieme al PHP le Haru, queste non essendo unicode, ma implementando solo alcune tabelle caratteri hanno bisogno di conoscere a priori il charset.
Una rogna perché sono pochissimo e malissimo documentate, in pratica c'è un buon esempio d'uso su Zend e il manuale di PHP ma senza nessun esempio, quindi si va per tentativi.
Inoltre bisogna stare attenti pure al font usato perché non tutti hanno l'intero unicode al loro interno, per esempio il DejaVu.
DejaVu è un bastardo perché esiste in tre modalità, serif, sans e condensed.
Il primo è comodo se devi stampare su carta man on ha tutto l'insieme dei caratteri, mentre l'unico che li ha è sans, che però su carta rende male. Gioco forza però usarlo anche se pesa vari mega, ma è normale c'è quasi tutto l'unicode dentro
Inoltre bisogna anche controllare la codifica dei caratteri riga per irga e non solo una volta nel testo, dato che l'intestazione è in italiano, il resto in vattela a pesca e se c'è un nome di persona non è detto che non sia il nome di un giapponese
Insomma Italiano = ISO8859-2 (Già l'ISO8859-1 non c'è) poi magari andiamo nella Federazione Russa, quindi ISO8859-5 e infine si torna in ISO8859-2 per la firma che è in italiano.
Una bella palla.
Per fortuna un'amico ha scritto una routine che si basa sulla verifica dell'errore di iconv() sulla stringa passata per scoprire qual'è la codifica da usarsi, ma questa routine va usata ogni volta che si scrive una stringa e ogni volta bisogna usare la getFont() per dirgli quale carattere e quale codifica usarsi.
Meglio sarebbe stato usare la pdflib ma è a pagamento per l'unicode mentre le Haru no, mannaggia i giapponesi!


Rispondi quotando