Domanda

Esiste un modo per leggere i caratteri Open Type in Java nello stesso modo in cui faccio con i caratteri TrueType?

Funziona perfettamente per TTF ma non ho ancora capito come fare lo stesso con i caratteri Open Type.

Font f = Font.createFont( Font.TRUETYPE_FONT,
new FileInputStream("f.ttf") );

Tieni presente che non posso inoltrare i caratteri installati.Fornisco il carattere con il mio programma ma non voglio installarlo a livello di sistema.

È stato utile?

Soluzione

Non credo che ci sia il supporto Open Type Font in Java (non libero atleast), iText affermato di avere questo sostegno, l'ho provato qualche mese fa e non ha funzionato, che cosa ha funzionato per me è un programma chiamato FontForge che ho usato per creare una TTF dal sistema organizzato di negoziazione che poi ho usato.

Altri suggerimenti

Java supporto dei font OpenType dipende dal vostro sistema operativo e la versione del JDK.

Prima di Java 6, è possibile utilizzare solo TrueType aromatizzato caratteri OpenType. Con Java 6 è possibile utilizzare tutti i font OpenType ma non sarà possibile beneficiare di funzionalità tipografiche avanzate come legature.

Ho usato un font-convertitore per convertire il sistema organizzato di negoziazione in un file TTF . Ci sono alcuni servizi online là fuori (come www.freefontconverter.com ) che fanno il lavoro. Per me questa è stata una soluzione semplice e veloce.

Il carattere Open Type(.otf) non è supportato in Java 1.6.Da Java 1.7 viene aggiunto il supporto.Il codice seguente ha funzionato per me:

Font font = Font.createFont(Font.TRUETYPE_FONT, new File("MyFont.otf"));
font  = font.deriveFont(Font.BOLD, 40);
------
label.setFont(font);

Di seguito sono riportati alcuni collegamenti che giustificano ciò

http://bugs.java.com/view_bug.do?bug_id=6992611 http://docs.oracle.com/javase/7/docs/webnotes/adoptionGuide/#swing

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top