zoukankan      html  css  js  c++  java
  • 让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();

        }


  • 相关阅读:
    重定向请求
    json处理
    post请求
    get请求
    提交cookie登录
    进击的Python【第三章】:Python基础(三)
    进击的Python【第二章】:Python基础(二)
    进击的Python【第一章】:Python背景初探与Python基础(一)
    java 内存分析
    java--循环练习
  • 原文地址:https://www.cnblogs.com/xiuquan/p/6103167.html
Copyright © 2011-2022 走看看