2013-07-11 106 views
2

我正在嘗試使用自定義字體,但沒有收到任何錯誤,但沒有考慮到它。無法爲PdfContentByte設置pdf的自定義字體 - DroidText/iText庫

Rectangle pageSize = basePdf.getPageSize(i); 

PdfContentByte pdfContentByte = stamper.getOverContent(i); 

// Use custom font 
if (!FontFactory.isRegistered(FUTURA_LIGHT)) { 
    FileHelper.copyFileFromAssetsToInternalStorage(mContext, FONT_PATH_IN_ASSETS); 
    FontFactory.register(mContext.getFilesDir() + "/" + FONT_PATH_IN_ASSETS, FUTURA_LIGHT); 
} 
Font myFont = FontFactory.getFont(FUTURA_LIGHT); 
BaseFont font = myFont.getBaseFont(); 

pdfContentByte.saveState(); 

pdfContentByte.stroke(); 
pdfContentByte.restoreState(); 
// Start to add text 
pdfContentByte.beginText(); 
pdfContentByte.setFontAndSize(font, 6); 
if (fontColor != null) { 
    pdfContentByte.setColorFill(fontColor); 
} 

pdfContentByte.showTextAligned(PdfContentByte.ALIGN_CENTER, message, pageSize.getWidth()/2, 40, 0); 
pdfContentByte.endText(); 

我檢查過了,字體確實已經註冊,它只是不適用於PDF。

+0

是什麼*它沒有考慮到這一點*是什麼意思?你是否以某種其他字體獲得訊息?還是根本不?請提供樣品結果。 – mkl

+0

消息打印但默認字體 –

+0

我試過了多種字體,在其他地方(資產和內部存儲)獲取字體文件的結果相同 –

回答

0

我發現它是偶然,我試圖通過添加BaseFont.IDENTITY_H

這裏顯示的口音就是我改了行:

Font myFont = FontFactory.getFont(FUTURA_LIGHT, BaseFont.IDENTITY_H);