码迷,mamicode.com
首页 > 其他好文 > 详细

让Flying saucer支持font定义

时间:2016-11-25 23:22:31      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:cell   font   hand   处理   fonts   attribute   auc   apply   rgb   

在wangEditor里给某段字体加上颜色后,在生成的PDF里无法体现出来,只好打开flying saucer的源码debug,发现XhtmlNamespaceHandler类中没有对font元素的处理,于是依样画瓢:


public String getNonCssStyling(Element e) {

    if (e.getNodeName().equals("table")) {

        return applyTableStyles(e);            

    } else if (e.getNodeName().equals("td") || e.getNodeName().equals("th")) {

        return applyTableCellStyles(e);

    } else if (e.getNodeName().equals("tr")) {

        return applyTableRowStyles(e);

    } else if (e.getNodeName().equals("img")) {

        return applyImgStyles(e);

    } else if (e.getNodeName().equals("p") || e.getNodeName().equals("div")) {

        return applyBlockAlign(e);

    }else if(e.getNodeName().equalsIgnoreCase("font")){

        return applyFontStyle(e);

    }

    return "";

}


然后加上下面的方法:


private String applyFontStyle(Element e) {

        StringBuffer style = new StringBuffer();

        String s;

        s = getAttribute(e, "color");

        if (s != null) {

            s = s.toLowerCase().trim();

            style.append("color: ");

            style.append(s);

            style.append(";");

        }

        s = getAttribute(e, "size");

        if (s != null) {

            s = s.toLowerCase().trim();

            if(!s.endsWith("px")){

                s = s + "px";

            }

            style.append("font-size: ");

            style.append(s);

            style.append(";");

        }

        return style.toString();

    }


让Flying saucer支持font定义

标签:cell   font   hand   处理   fonts   attribute   auc   apply   rgb   

原文地址:http://www.cnblogs.com/xiuquan/p/6103167.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!