2015-01-03 65 views
0

我想用明碼顯示斜體字體樣式,使用下面的代碼但失敗,輸出仍然是標準樣式,而不是斜體(我正在使用iText 2)。iText basefont mingliu.ttc斜體不能工作

PdfContentByte cb = writer.getDirectContent(); 
.................. 
String ttfPath = null; 
ttfPath = BaseSection.class.getResource("/WEB-INF/lib/mingliu.ttc").getPath(); 
try{ 
    this.bfi = BaseFont.createFont(ttfPath+",0,Italic", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 
    cb.setFontAndSize(bfi, 8); 
    .......... 
    cb.showText(companyText); 
} 

任何使用BaseFont.createFont以斜體樣式顯示mingliu文本的方法? 謝謝。

+0

你的代碼不應該工作。至於使用iText 2,請閱讀StackOverflow問題的答案[iText 2.1.7或更早版本可以用於商業嗎?](http://stackoverflow.com/questions/25696851/can-itext-2-1-7 - 或更早 - 可以使用 - 商業)有一個答案給你的問題,但它是無關緊要的,因爲你不應該使用iText 2。 –

+0

然後如何使代碼工作? – user1169587

+0

正如您可以在[FAQ](http://itextpdf.com/salesfaq)中閱讀的那樣,不再支持iText 2。你爲什麼還在使用它?您是否正在開發基於iText 2的新項目?請不要。 –

回答

0

我發現下面的可以解決我的問題

PdfContentByte cb = writer.getDirectContent(); 
cb.saveState(); 
String ttfPath = BaseSection.class.getResource("/WEB-INF/lib/mingliu.ttc").getPath(); 
bf = BaseFont.createFont(ttfPath+",0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 
String companyText = "abc"; 
Font font = new Font(bf, 8, Font.ITALIC); 
Chunk chunk = new Chunk(companyTextC, font); 
Phrase phrase = new Phrase(chunk); 
ColumnText.showTextAligned(cb, Element.ALIGN_RIGHT, phrase, document.right(), 1, 0); 
cb.restoreState(); 

希望這可以幫助別人有類似的問題。