Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288

    Aggiungere un font a FPDF

    Salve, mi è capitato di avere la necessita' di aggiungere un nuovo font a FPDF (http://www.aspxnet.it/) ed ho provato a fare il porting dalla versione originale in PHP (http://www.fpdf.org) ma ho dovuto rinunciare perchè non sono riuscito a convertire pienamente delle funzioni native di php quindi ho utilizzato questo metodo, forse un po' macchinoso ma che funziona

    AGGIUNGERE UN FONT A FPDF

    La procedura deve essere effettuata in locale, perchè sara' diffice che voi abbiate la possibilita' di eseguire script su un dominio in hosting. Lo script necessita di avere PHP-CGI attivo ed il permesso di eseguire SCRIPT.


    Scaricate questo file zip.

    ISTALLAZIONE:
    1) creare una directory virtuale nominata makefont dove ci siano i permessi di esecuzione per PHP CGI e esecuzione script

    2) scompattare il file makefont.zip nella cartella virtuale

    3) personalizzate il file creaFont.vbs modificando le variabili in testa al file in questo modo:
    codice:
    HOST	      = "http://localhost/makefont/" ' Se utilizzate una directory virtuale diversa da makefont cambiate il percorso in modo che punti alla giusta cartella
    ' Cartella locale del webserver
    LocalDir       = "C:\Siti\makefont\" ' Cambiate il percorso che punti alla cartella locale che voi utilizzate
    eliminaAFM   = true ' x eliminare (true)o no (false)l'AFM generato
    4) Copiate il file TTF che intendete incorporare nella stessa directory di lavoro

    5) lanciate il file creaFont.vbs ed inserite il nome del file copiato senza estensione TTF (es. copiate il file verdana.ttf ed al prompt inserite semplicemente verdana)

    6) copiate i 2 files [NOME_FONT].TTF ed il file generato dallo script [NOME_FONT].js generato nella sottodirectory di FPDF/Fonts

    A questo punto potete comodamente utilizzare il nuovo font creato semplicemente aggiungendo il comando dell'oggetto FPDF addfont.
    Ho inserito il font verdana.ttf per effettuare le prove, una volta convertito e copiato nella sottocartella fonts potete testarlo in questo modo:

    codice:
    <%@LANGUAGE="VBSCRIPT"%>
    
    <%
    Set pdf=CreateJsObject("FPDF")
    pdf.CreatePDF()
    pdf.Open()
    pdf.AddPage()
    pdf.SetPath "fpdf/"
    pdf.addFont "verdana"
    pdf.SetFont "verdana"
    pdf.SetFontSize(16)
    pdf.Cell 100,1,"Test nuovo font verdana",0,1,"R" 
    
    pdf.Close()
    response.contentType = "application/pdf"
    Dim fso
    Set fso=Server.CreateObject("Scripting.FileSystemObject")
    filePDF = Server.MapPath("prova.pdf")
    if fso.FileExists(filePDF) then fso.DeleteFile(filePDF) 
    pdf.OutPut filePDF ,true
    set pdf = nothing
    Response.Write("File prova.pdf generato")
    %>
    A livello tecnico, la storia è semplice, semplicemente il metodo sfrutta fpdf originale in php per aggiungere il font, ma prima di questo, tramite file .vbs viene lanciato il programma da linea di comando TTF2P1L.exe che accetta in input un file TTF e ne crea il file font metric (file afm), dopo di che viene semplicemente eseguito in XML GET il richiamo a FPDF.php richiamando la funzione addFont.php che accetta in input il file TTF e il file font metric AFM per generare la mappatura del nuovo file con estensione .js.

    Ho inserito per prova nello zip il file verdana.ttf per fare delle prove, alcuni font gratuiti carini li potete trovare qui

    Saluti, abbracci, vino rosso, salciccia e panini a tutti


    P.s nota, alcuni font TTF hanno una protezione che non permette di essere incorporato quindi potreste avere un messaggio di errore quando cercate di convertirli

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    16
    Scusa la domanda stupida :
    comefaccio a creare una directory virtuale dove ci siano i permessi di esecuzione per PHP CGI se ho solo windows il locale e il serve che utilizzo solo asp?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    16
    sono riuscito a installare il server apache il localhost ma quando lancio creafonts.vbs mi dice che ha creato il file .js ma.... non lo trovo

  4. #4
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    Non dovevi installare Apache, ma semplicemente PHP, poi andare nelle opzioni di script di IIS e configurare che per i file PHp vada a richiamare C:\Php\php.exe (o nella dir dove lo installerai) per tutti i verbi (Post e Get)

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    2
    ciao ho installato IIS ASAPI module e ho assegnato a .php in IIS sia PHP.exe che la DLL relativa.
    ho modificato i perscorsi del file creaFont.vbs e l'ho lanciato x importare un file TTF...mi dice che ha creato il file .js ma non è vero perchè non lo trova neanche usando la funzione cerca....
    dove ho sbagliato? e soprattutto è possibile importare OTF? :master:
    grazie x l'aiuto barbara

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.