Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Java] Come usare altri FONT!!

    Salve a Tutti....
    dalle varie ricerche fatte in internet non sono riuscito
    a capire come usare altri font presenti sul sistema dove
    gira l'applicazione creata in Java. Sono riuscito ad ottenere
    un array con tutti i Font presenti, ma non riesco a selezionarne
    uno in specifico per usarlo al posto di quelli del font.family!!
    Oppure come fare per usare un mio Font che metto a disposizione
    dell'utente in una determinata cartella!!

    A chi può darmi un aiuto.... grazie.
    Ciao

    PS: in particolare mi serve, soprattutto per creare un documento .pdf con iText.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Io per aggiungere del testo con un particolare font su un PDF con iText ho creato un'istanza della classe Font della libreria, in questo modo (dove richiesto):

    codice:
    new Font(
       BaseFont.createFont(percorsoAlFile, "ISO-8859-1", true),   // true = embedded nel PDF
       dimensione,
       stile,
       colore
    )
    Il percorsoAlFile è una stringa con il percorso fisico al file (in formato TTF, AFM, PFM, ecc... ce ne sono diversi tipi supportati) del font.
    dimensione e stile sono, rispettivamente, un float e un int che indicano la dimensione in punti e lo stile (normale, grassetto, corsivo, ecc).

    Trovi tutto quello che ti serve nelle classi Font e BaseFont.

    Non ho trovato un modo per creare il Font partendo da un java.awt.Font.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie, gentilissimo come sempre...

    Ho provato così:
    codice:
    private Font mioFont = new Font(BaseFont.createFont("font\\KUENSTL2.TTF","ISO-8859-1",true),16,Font.NORMAL);
    Mi fa importare: import com.itextpdf.text.pdf.BaseFont;

    Ma dopo mi dice: NO seggestions available
    segnandomi questa parte del codice:
    codice:
    private Font mioFont = new Font(BaseFont.createFont("font\\KUENSTL2.TTF","ISO-8859-1",true),16,Font.NORMAL);
    Dove sbaglio!?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Chi ti dice "No suggestions available"? Googlando ho visto che sembra essere un messaggio di Eclispe (che io non uso, quindi non so cosa voglia dire quel messaggio).

    Occhio che potrebbe essere un problema dell'auto-importazione dei package di Eclipse... la classe Font è definita anche in java.awt, ma non è quella da importare, bensì quella di iText (com.itextpdf.text.Font). Verifica che Eclipse non abbia importato (automaticamente o sotto tuo consiglio) la classe java.awt.Font.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Si è un messaggio di Eclipse.

    Di java.awt la Classe non importa nulla, ma solo:
    codice:
    import java.io.IOException;
    import java.net.MalformedURLException;
    
    import com.itextpdf.text.BadElementException;
    import com.itextpdf.text.Document;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Element;
    import com.itextpdf.text.Font;
    import com.itextpdf.text.Image;
    import com.itextpdf.text.Paragraph;
    import com.itextpdf.text.pdf.BaseFont;
    Non so, forse sbaglio la sintassi del codice!!
    codice:
    private Font miofFont = new Font(BaseFont.createFont("font\\KUENSTL2.TTF","ISO-8859-1",true),16,Font.NORMAL);

  6. #6
    Ecco come ho risolto....
    codice:
    private Font mioFont;
    ........
    try {
         mioFont = new Font(BaseFont.createFont("font\\KUENSTL2.TTF", BaseFont.WINANSI, BaseFont.EMBEDDED),26);
    } catch (IOException e) {
         e.printStackTrace();
         mioFont  = new Font(Font.FontFamily.HELVETICA, 16, Font.ITALIC);
    }
    Non so però il significato dei parametri di BaseFont,
    come BaseFont.WINANSI per esempio.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ok, che dovesse essere inserito in un try/catch mi sta bene (l'avevo dato per scontato), ma di certo quel messaggio non si riferisce all'assenza della gestione delle eccezioni.

    Rimango un po' perplesso: BaseFont.WINANSI è un oggetto String che rappresenta la codifica ANSI di Windows (il valore di quella costante è "Cp1252"), BaseFont.EMBEDDED è una costante booleana che vale "true". In buona sostanza, a parte la codifica, il resto è identico.

    Secondo me potevi compilare lo stesso, senza tener conto delle pare di Eclipse.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Ok, grazie infinite Lele,
    sei sempre gentilissimo e molto in gamba.

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.