2015-07-29 15 views
5

Tôi có tệp phông chữ "arial.ttf" trong một ứng dụng web và tôi chỉ có thể lấy nội dung của nó là InputStream.Cách tạo iText BaseFont dựa trên InputStream

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

Làm cách nào để tạo một iText BaseFont dựa trên InputStream? Phương thức createFont không chấp nhận.

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

createFont (InputStream, String, boolean) không thể gọi createFont (java.lang.String, java.lang.String, boolean) trong BaseFont.

+0

BaseFont là gì? Nó không có trong JDK bình thường. –

+0

@ aryn.galadar nó là trong itext. 99maas: bạn không thể bao gồm thông tin đó? – wero

+0

và 'BaseFont' không có phương thức' createFont' chấp nhận InputStream. – wero

Trả lời

3

Hãy thử một cái gì đó như sau:

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

Bạn cần phải xác định .ttf trong tên phông chữ để nói với các phương pháp cần giải thích nó như là định dạng ttf.

Các vấn đề liên quan