• 让Flying saucer支持font定义


    在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();

        }


  • 相关阅读:
    Ubuntu 10.04安装google拼音输入法
    Ubuntu 10.04 编译Android 2.1源码
    Android make sdk 错误解决方案
    关于android内核从linux内核分支上除名
    odex打包为可用的apk程序
    取得当前屏幕的截图
    android设备作为视频监控客户端的思路
    政府网站群系统选型
    浅谈网站群的一代与二代技术
    我的2013
  • 原文地址:https://www.cnblogs.com/xiuquan/p/6103167.html
Copyright © 2020-2023  润新知