精华内容
下载资源
问答
  • java项目的实际开发和应用中,常常需要用到对象转为String这一基本功能。本文对常用的转换方法进行一个总结。常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些...
    在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。 

    方法1:采用 Object#toString()方法
    请看下面的例子:

    Object object = getObject();

    System.out.println(object.toString()); 注1


    在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。

    方法2:采用类型转换(String)object方法
    这是标准的类型转换,将object转成String类型的值。使用这种方法时,需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。如:

    Object obj = new Integer(100);

    String strVal = (String)obj;

    在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。但是,

    Integer obj = new Integer(100);

    String strVal = (String)obj;

    如是格式代码,将会报语法错误。

    此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。

    方法3:采用String.valueOf(Object)
    String.valueOf(Object)的基础是Object#toString()。但它与Object#toString()又有所不同。在前面方法1的分析中提到,使用后者时需保证不为null。但采用第三种方法时,将不用担心object是否为null值这一问题。为了便于说明问题,我们来分析一下相关的源代码。Jdk里String# valueOf(Object)源码如下:

    /**

    * Returns the string representation of the Object argument.

    *

    * @param obj an Object.

    * @return if the argument is null, then a string equal to

    * "null"; otherwise, the value of

    * obj.toString() is returned.

    * @see java.lang.Object#toString()

    */

    public static String valueOf(Object obj) {

    return (obj == null) ? "null" : obj.toString();

    }

    从上面的源码可以很清晰的看出null值不用担心的理由。但是,这也恰恰给了我们隐患。我们应当注意到,当object为null时,String.valueOf(object)的值是字符串”null”,而不是null!!!在使用过程中切记要注意。试想一下,如果我们用 if(String.valueOf(object)==null){System.out.println(“传入的值是null!”);}这样的语句将可能会发生什么问题。再想一下,向控制台输出时,在视觉上如下语句在执行的结果上有什么不同:

    System.out.println(String.valueOf((Object)null)); 注2


    System.out.println((Object)null); 注2


    我们看到的输出将是一模一样的东西:null,但它们意义相同吗?

    注1:光就System.out.println的使用来说,语句System.out.println(object.toString()); 换为System.out.println(object); 更好。此处如是用法主要是为了说明Object#toString()的用法。

    注2:推荐使用System.out.println(String.valueOf((Object)null)); 不推荐使用System.out.println(String.valueOf(null));在使用重载方法时,这样做是一个好的习惯。 
    展开全文
  • springboot项目 java将html转为图片

    千次阅读 2020-05-09 14:57:16
    public static void main(final String[] args) throws Exception { //html页面中需要灵活变动的值 String headurl = "";//图片的路径不能是带有参数的 不然解析不了 String proUrl = ""; String qrCodeUrl = "";...
    public static void main(final String[] args) throws Exception {
    //html页面中需要灵活变动的值
        String headurl = "";//图片的路径不能是带有参数的 不然解析不了
        String proUrl = "";
        String qrCodeUrl = "";
        String proName="犀牛皮特质皮鞋";
        String proPrice="1000.00";
        String userName="测试";
        String html = "<!DOCTYPE html>\n" +
                "<html lang=\"en\">\n" +
                "<head>\n" +
                "    <meta charset=\"UTF-8\"/>\n" +
                "    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n" +
                "    <title>分享</title>\n" +
                "    <style>\n" +
                "        body {\n" +
                "            font-size: 0;\n" +
                "            padding: 0;\n" +
                "            margin: 0;\n" +
                "        }\n" +
                "\n" +
                "        div {\n" +
                "            box-sizing: border-box;\n" +
                "        }\n" +
                "\n" +
                "        .main {\n" +
                "            width: 654px;\n" +
                "            margin: 0 auto;\n" +
                "            padding: 28px;\n" +
                "            text-align: center;\n" +
                "            background: green;\n" +
                "        }\n" +
                "\n" +
                "        .top{\n" +
                "            display: inline-block;\n" +
                "            max-width: 100%;\n" +
                "            margin: 0 auto 20px;\n" +
                "            position: relative;\n" +
                "            padding-left: 56px;\n" +
                "            font-size: 28px;\n" +
                "            line-height: 48px;\n" +
                "            color: #666;\n" +
                "        }\n" +
                "\n" +
                "        .oneOver {\n" +
                "            overflow: hidden;\n" +
                "            text-overflow: ellipsis;\n" +
                "            white-space: nowrap;\n" +
                "        }\n" +
                "\n" +
                "        .head{\n" +
                "            height: 48px;\n" +
                "            width: 48px;\n" +
                "            border-radius: 50%;\n" +
                "            overflow: hidden;\n" +
                "            border: solid 1px #E6E6E6;\n" +
                "            position: absolute;\n" +
                "            left: 0;\n" +
                "            top: 0;\n" +
                "            overflow: hidden;\n" +
                "        }\n" +
                "\n" +
                "        .head img {\n" +
                "            width: 100%;\n" +
                "            height: 100%;\n" +
                "        }\n" +
                "\n" +
                "        .pro_pic{\n" +
                "            width: 400px;\n" +
                "            height: 400px;\n" +
                "            margin: 0 auto 24px;\n" +
                "        }\n" +
                "\n" +
                "        .pro_pic_{\n" +
                "            width: 100%;\n" +
                "            height: 100%;\n" +
                "        }\n" +
                "\n" +
                "        .money{\n" +
                "            font-size: 40px;\n" +
                "            font-weight: bold;\n" +
                "            padding-bottom: 16px;\n" +
                "        }\n" +
                "\n" +
                "        .name{\n" +
                "            font-size: 28px;\n" +
                "            line-height: 40px;\n" +
                "            font-weight: bold;\n" +
                "            padding-bottom: 34px;\n" +
                "        }\n" +
                "\n" +
                "        .code{\n" +
                "            height: 175px;\n" +
                "            width: 175px;\n" +
                "            margin: 0 auto 20px;\n" +
                "            border: solid 1px #E6E6E6;\n" +
                "            border-radius: 50%;\n" +
                "            overflow: hidden;\n" +
                "        }\n" +
                "\n" +
                "        .code_pic{\n" +
                "            height: 175px;\n" +
                "            width: 175px;\n" +
                "        }\n" +
                "\n" +
                "        .desc{\n" +
                "            font-size: 24px;\n" +
                "            line-height: 34px;\n" +
                "            color: #999;\n" +
                "        }\n" +
                "    </style>\n" +
                "</head>\n" +
                "<body>\n" +
                "    <div class=\"main\" id=\"main\">\n" +
                "        <div class=\"top oneOver\">\n" +
                "            <div class=\"head\">\n" +
                "                <img class=\"persion_pic\" src=\""+headurl+"\"/>\n" +
                "            </div>\n" +
                "            "+userName+",为您安利好物\n" +
                "        </div>\n" +
                "        <div class=\"pro_pic\">\n" +
                "            <img class=\"pro_pic_\" src=\""+proUrl+"\"/>\n" +
                "        </div>\n" +
                "        <div class=\"money\">¥"+proPrice+"</div>\n" +
                "        <div class=\"name\">"+proName+"</div>\n" +
                "        <div class=\"code\">\n" +
                "            <img class=\"code_pic\" src=\""+qrCodeUrl+"\"/>\n" +
                "        </div>\n" +
                "        <div class=\"desc\">识别小程序码,查看商品详情</div>\n" +
                "    </div>\n" +
                "</body>\n" +
                "</html>";
    //string转为inputstream流
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(html.getBytes());
        File targetFile = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX+"share1.html");
    //inputstream流转为file
        FileUtils.copyInputStreamToFile(byteArrayInputStream, targetFile);
    //通过openhtmltopdf工具生成图片
        final Java2DRenderer renderer = new Java2DRenderer(targetFile, 740, 1000);
        final BufferedImage img = renderer.getImage();
        final FSImageWriter imageWriter = new FSImageWriter();
        imageWriter.setWriteCompressionQuality(0.9f);
        imageWriter.write(img, "output.png");//输出路径
        System.out.println("Done with rendering");

    }

    pom.xml文件

    <dependency>
        <groupId>com.openhtmltopdf</groupId>
        <artifactId>openhtmltopdf-core</artifactId>
        <version>0.0.1-RC9</version>
    </dependency>

    生成的图片

     

    展开全文
  • java将html转为pdf

    千次阅读 2020-07-19 14:02:51
    项目采用springboot,由于是后端导出pdf,所以用thymeleaf作为页面,后端请求页面,获取渲染后的html字符串,再导出为pdf <dependency> <groupId>org.springframework.boot</groupId> <...

    项目采用springboot,由于是后端导出pdf,所以用thymeleaf作为页面,后端请求页面,获取渲染后的html字符串,再导出为pdf

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.13</version>
    </dependency>
    <dependency>
        <groupId>org.xhtmlrenderer</groupId>
        <artifactId>flying-saucer-pdf-itext5</artifactId>
        <version>9.0.3</version>
    </dependency>
    

    逻辑代码

    String htmlUrl = "访问的页面";
    log.info("页面路径:{}", htmlUrl);
    String html = OkHttpUtil.sendGet(htmlUrl);
    String htmlContent = html.replace("<!DOCTYPE html>", "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
            .replace("<html lang=\"en\" xmlns:th=\"http://www.thymeleaf.org\">", "<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">");
    log.info("html内容:\n{}", htmlContent);
    File pdf = FileUtil.createTempFile(id + ".pdf");
    HtmPdfUtil.html2pdf(htmlContent, pdf);
    

    okhttp封装
    注意,这里要将thymeleaf的部分标签替换为导出pdf支持的那种

    thymeleaf标签

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    

    生成pdf需要的标签

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    

    要支持中文html中设置<body style="font-family: SimSun;">

    导出pdf工具

    import com.itextpdf.text.pdf.BaseFont;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.core.io.ClassPathResource;
    import org.xhtmlrenderer.pdf.ITextFontResolver;
    import org.xhtmlrenderer.pdf.ITextRenderer;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    
    @Slf4j
    public class HtmPdfUtil {
    
        /**
         * 将HTML转成PDF格式的文件。html文件的格式比较严格
         *
         * @param htmlContent
         * @param pdfFile
         * @throws Exception
         */
        public static void html2pdf(String htmlContent, File pdfFile) throws Exception {
            OutputStream os = new FileOutputStream(pdfFile);
            ITextRenderer renderer = new ITextRenderer();
            renderer.setDocumentFromString(htmlContent);
            // 中文
            ITextFontResolver fontResolver = renderer.getFontResolver();
            ClassPathResource resource = new ClassPathResource("font/simsun.ttc");
            fontResolver.addFont(resource.getURL().toString(), BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
            renderer.layout();
            renderer.createPDF(os);
            os.close();
        }
    }
    

    中文字体资源路径
    在这里插入图片描述
    tip:如果导出pdf中含有img标签,导出的图片发生了转换,是因为图片太大导致的,对图片进行压缩即可

    图片压缩

    在这里插入图片描述

    在这里插入图片描述

    参考文献

    https://hacpai.com/article/1536549807193

    展开全文
  • java 将html转为图片,然后转为base64

    千次阅读 2018-08-02 13:45:13
    将HTML页面转为图片,找了很多方法,发现CSSBox对前端css支持性最好。在解码base64的时候,会出现中文乱码的问题,删除空格和换行即可 采用CSSBox(http://cssbox.sourceforge.net/)  &lt;dependency&...

    将HTML页面转为图片,找了很多方法,发现CSSBox对前端css支持性最好。在解码base64的时候,会出现中文乱码的问题,删除空格和换行即可

    采用CSSBox(http://cssbox.sourceforge.net/) 

    <dependency>
        <groupId>net.sf.cssbox</groupId>
        <artifactId>cssbox</artifactId>
        <version>4.12</version>
    </dependency>

    HTML转图片,再转base64

            ImageRenderer render = new ImageRenderer();
            String url = "http://127.0.0.1:8080/api/receiptPage";
            File file;
            InputStream inputStream = null;
            byte[] data = null;
    
            try {
                //创建一个临时文件
                file = File.createTempFile("temp", ".png");
                //将html转为png
                FileOutputStream out = new FileOutputStream(file);
                render.renderURL(url, out, ImageRenderer.Type.PNG);
                //字节流读取png
                inputStream = new FileInputStream(file);
                data = new byte[inputStream.available()];
                inputStream.read(data);
    
                out.close();
                inputStream.close();
                file.deleteOnExit();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            BASE64Encoder encoder = new BASE64Encoder();
            //删除所有空格,换行,解决base解码出现中文乱码
            return encoder.encode(data).replaceAll("\n", "").replaceAll("\r", "");

    解码base64

    public static boolean generateImage(String imgStr) {
            if(imgStr == null){
                return false;
            }
    
            BASE64Decoder decoder = new BASE64Decoder();
            try{
                byte[] b = decoder.decodeBuffer(imgStr);
    
                for (int i = 0;i<b.length;++i){
                    if(b[i]<0){
                        b[i]+=256;
                    }
                }
                OutputStream out = new FileOutputStream(new File("d:/html.png"));
    
                out.write(b);
                out.flush();
                out.close();
                return true;
            } catch (IOException e) {
                e.printStackTrace();
                return false;
            }
        }

     

    展开全文
  • 使用Java将Word转为Html或txt!

    千次阅读 2006-12-18 21:23:00
    11月1日使用Java将Word转为Html或txt!使用Java将Word转为Html或txt! package org.client;// 使用Java将Word转为Html或txt!import com.jacob.com.*;import com.jacob.activeX.*;import java.io.*;public class Client
  • Java将excel转为html

    千次阅读 2019-07-02 18:02:01
    * 程序入口方法sourceFile文件保存为html并存入resultFile * @param sourceFile * @param resultFile * @param isWithStyle * @return */ public String readExcelToHtml(File sourceFile, File resultFile...
  • 业务: 富文本内容取出生成本地word文件 参考百度的方法 ...public static Attachment createWordForHtml(String html,String fileName,String type) { Attachment uploadAttachment = null; try { ..
  • java将字串转为html格式

    千次阅读 2006-11-27 16:20:00
    /**字串转为html格式*/ public String strToHtml(String s) { if (s==null ¦ ¦s.equals("")) return ""; s = s.replaceAll("&", "&"); s = s.replace
  • JavaString转为Date的小例子

    千次阅读 2012-06-08 16:52:56
    场景:有一个String,需要转为Date,例如“Fri Jun 08 15:22:40 CST 2012”。 解决方法:使用SimpleDateFormate的parse()方法 示例代码: import java.text.DateFormat; import java.text.ParseException; ...
  • 使用Java将Word转为Html或txt!使用Java将Word转为Html或txt。前一段时间为这个问题头疼的不得了,后来查阅了资料终于解决了;现程序放出,以便以后参考。  //----------...
  • java中如何将string 转化成long

    万次阅读 2019-06-18 00:11:31
    java中如何将string 转化成long 转自:https://www.cnblogs.com/feifeicui/p/8390604.html 1.java中如何将string 转化成long long l = Long.parseLong([String]); 或 long l = Long.parseLong([String],[int radix])...
  • java 利用itext将html转为pdf

    千次阅读 2018-08-24 14:48:12
    Java项目需要将html转为pdf,在网上找了几个版本,转出来的效果都不理想:1、样式错乱 2、中文显示问题 最终自己找了个合适的版本: package com.test; import java.io.File; import java.io.FileOutputStream;...
  • javastring数组转为对象

    千次阅读 2019-03-04 15:56:00
    转载于:https://www.cnblogs.com/wch961212/p/10471193.html
  • java中Object转String

    千次阅读 2014-07-15 12:07:28
     在java项目的实际开发和应用中,常常需要用到对象转为String这一基本功能。本文对常用的转换方法进行一个总结。常用的方法有Object.toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些...
  • Java将文件转为字节数组

    千次阅读 2016-12-22 11:44:00
    Java将文件转为字节数组 关键字:文件,文件流,字节流,字节数组,二进制 摘要:最近工作中碰到的需求是,利用http传输二进制数据到服务器对应接口,需要传输userId, file(加密后)等一系列混合后的二进制数据。...
  • Java中Object转String

    2017-03-21 11:42:10
     在java项目的实际开发和应用中,常常需要用到对象转为String这一基本功能。本文对常用的转换方法进行一个总结。常用的方法有Object.toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些...
  • JSON.parseObject(JSON.toJSONString(object),new TypeReference<Map<String,Object>>(){});
  • 使用Java将Word转为Html或txt等···

    千次阅读 2006-08-07 22:34:00
    import java.io.*; //取得指定目录下面所有的doc文件名称 public class wordtohtml { //------------------------------------------------------------------------------ //方法原型: change(String paths) //...
  • java html 转为图片

    千次阅读 2018-03-27 16:14:47
    public static void main(String[] args) throws MalformedURLException { //设置为utf-8之后乱码的原因是因为有些网站的图片不是路径,而是base64的编码 Html2Image.fromFile(new File("C:\\Users\\...
  • java如何图片转为pdf

    万次阅读 2020-11-15 23:59:37
    } /** * @Description: 通过图片路径及生成pdf路径,图片转成pdf * @Author: zd * @Date: 2019/9/29 */ public void imgOfPdf(String filepath, String imgUrl) { try { ArrayList<String> imageUrllist = new ...
  • * 所有文件名改称.pdf文件 *  * @param filename * @return pdfname * @author shajianyin * @versions 2011-09-01 */ public String ToPdf(String fileName){ String returnString=fileName.substring(0...
  • 比如说String date="1987-10-10";我想给他转换成DATE类型的,而且输出后还是"1987-10-10"这个格式的,不是带英文的那些东西 ...java.text.SimpleDateFormatformatter=newSimpleDateFormat("yyyy-...
  • java对象转化成String类型

    千次阅读 2019-07-11 15:43:43
    java项目的实际开发和应用中,常常需要用到对象转为String这一基本功能。本文对常用的转换方法进行一个总结。常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些...
  • 项目在做爬虫获取数据中,发现有的返回的是html,想要根据class,id等来获取元素中的信息。发现有一个jar提供了此功能 maven <dependency> <groupId>org.jsoup</groupId> <artifactId>...
  • import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import javax.swing.text.html.HTMLEditorKit; import...
  • java.lang包中有String.split()方法,返回是一个数组,再用Arrays.asList()方法,数组转化为list   String str = "a,b,c"; List&lt;String&gt; result = Arrays.asList(str.split(",&...
  • java 图片转为base64返回给前端

    千次阅读 2020-02-13 14:07:24
    final private String[] fontNames = new String[]{ "黑体", "宋体", "Courier", "Arial", "Verdana", "Times", "Tahoma", "Georgia"}; /** * 字体样式 */ final private int[] fontStyles = new int[]{ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,876
精华内容 17,150
关键字:

java将html转为string

java 订阅