2015-07-29 13 views
5

Ich habe eine Schriftart-Datei "Arial.ttf" in einer Web-Anwendung und ich kann nur den Inhalt als InputStream erhalten.So erstellen Sie iText BaseFont basierend auf InputStream

InputStream inputFont = getResourceAsStream("/resources/arial.ttf"); 

Wie kann ich ein iText BaseFont auf der Grundlage der InputStream erstellen? Die Methode createFont akzeptiert dies nicht.

BaseFont bf = BaseFont.createFont(inputFont, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 

Create (INPUTSTREAM- String, boolean) nicht Create (java.lang.String, java.lang.String, boolean) in basefont aufzurufen.

+0

Was ist BaseFont? Es ist nicht im normalen JDK. –

+0

@ aryn.galadar es ist in itext. 99maas: Kannst du diese Information nicht aufnehmen? – wero

+0

und 'BaseFont' hat keine' createFont'-Methode, die einen InputStream akzeptiert. – wero

Antwort

3

Probieren Sie etwas wie folgt aus:

byte[] bytes = IOUtils.toByteArray(Thread.currentThread().getContextClassLoader() 
     .getResourceAsStream("/resources/arial.ttf")); 
BaseFont.createFont("arial.ttf", BaseFont.IDENTITY_Harial.ttf, BaseFont.EMBEDDED, true, bytes, null); 

Sie haben die Ttf in dem Schriftnamen angeben, um die Methode zu sagen, dass es es als ttf Format interpretieren sollte.

Verwandte Themen