itextpdf 5.5.6版本生成pdf文件 字體設置三種方式

1.第一種是引用window本地系統字體(這裏以常見的宋體爲例)

        BaseFont bf =BaseFont.createFont("C:/WINDOWS/Fonts/simsun.ttf", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
        Font f = new Font(bf,18,Font.NORMAL);

2.第二種是直接根據路徑引用項目中字體

        String path = getClass().getResource("/").getPath();
        if (path.indexOf("WEB-INF/classes") != -1) {
            path = path.substring(1, path.indexOf("WEB-INF/classes"));
            path = "/"+path + "font/simsun.ttf";
        }

 BaseFont bf =BaseFont.createFont(path , BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
 Font f = new Font(bf,18,Font.NORMAL);

這裏可以直接將字體放在項目的classes路徑下, 這樣直接引用字體名就可以了。

3.第三種直接引用itext字體庫中的字體

 BaseFont bf =BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
 Font f = new Font(bf,18,Font.NORMAL);

這種方法引用基本都是常見字體,像一些韓語或西班牙語字體就沒有了 就需要使用上面的方法了

最後再說下相關api的傳參作用,舉個栗子

BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);

第一個參數爲字體引用地址,第二個參數爲字體編碼方式,第三個參數爲字體寫入方式 我這裏的BaseFont.NOT_EMBEDDED這個參數的意思就是不以嵌入式方式寫入字體

new Font(bf,18,Font.NORMAL);

第一個參數是字體對象,第二個參數是字體大小,第三個參數是字體樣式 這裏的Font.NORMAL代表無附加樣式,相關api還提供加粗等 

no bb 上圖

寫到這就結束了 如果有錯誤的話 希望大家指正交流哈 然後這裏給大家提供個itextpdf官方的api鏈接

https://api.itextpdf.com/iText5/java/5.5.9/

只不過裏面都是全英的 反正我看着是挺費勁的

發佈了6 篇原創文章 · 獲贊 1 · 訪問量 797
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章