Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 464|回复: 0

最简单 iText 的 PDF 生成方案(含中文解决方案)HTML 转为 PDF

[复制链接]
  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 802 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726006
    发表于 2021-5-17 15:18:46 | 显示全部楼层 |阅读模式

    转自:http://my.oschina.net/sanji/blog/277704

     

    最近正好项目有用到 ITEXT ,在网络上搜索了一番,发现了很多方案,但是感觉对于一般开发来说都太复杂了,本文提供一种最便捷的方式来实现,不需要任何额外 JAR 包。

     

    ITEXT 的功能和简介这里就不多说了,直接带大家做一遍:

    一段可运行的代码比说很多废话强得多

     

    S1 :首先下载 JAR 包

        CORE 包:http://sourceforge.net/projects/itext/files/

        XML  包:http://sourceforge.net/projects/xmlworker/files/

     

    S2:创建 HTML 文档(将要使用的 HTML 文档素材)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body screen_capture_injected="true" ryt11773="1">
        <p>
            <span style="font-size:12.0pt; font-family:MS Mincho">長空</span> <span
                style="font-size:12.0pt; font-family:Times New Roman,serif">(Broken
                Sword),</span> <span style="font-size:12.0pt; font-family:MS Mincho">秦王殘劍</span>
            <span style="font-size:12.0pt; font-family:Times New Roman,serif">(Flying
                Snow),</span> <span style="font-size:12.0pt; font-family:MS Mincho">飛雪</span>
            <span style="font-size:12.0pt; font-family:Times New Roman,serif">(Moon),
            </span> <span style="font-size:12.0pt; font-family:MS Mincho">如月</span> <span
                style="font-size:12.0pt; font-family:Times New Roman,serif">(the
                King), and</span> <span style="font-size:12.0pt; font-family:MS Mincho">秦王</span>
            <span style="font-size:12.0pt; font-family:Times New Roman,serif">(Sky).</span>
        </p>
    </body>
    </html>

     

     

    S3: 引入 JAR 包 ,编写JAVA 转换代码

     

    package com.zhouqian.itext;
      
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.nio.charset.Charset;
     
    import com.itextpdf.text.Document;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.pdf.PdfWriter;
    import com.itextpdf.tool.xml.XMLWorkerHelper;
      
      
    public class D07_ParseHtmlAsian {
      
         
         
        public static final String HTML = "E:/Dropbox/document/java/designPattern/data/hero.html";
        public static final String DEST = "E:/Dropbox/document/java/designPattern/data/hero.pdf";
      
        /**
         * Creates a PDF with the words "Hello World"
         * @param file
         * @throws IOException
         * @throws DocumentException
         */
        public void createPdf(String file) throws IOException, DocumentException {
            // step 1
            Document document = new Document();
            // step 2
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
            // step 3
            document.open();
            // step 4
            XMLWorkerHelper.getInstance().parseXHtml(writer, document,
                    new FileInputStream(HTML), Charset.forName("UTF-8"));
            // step 5
            document.close();
        }
      
        /**
         * Main method
         */
        public static void main(String[] args) throws IOException, DocumentException {
            File file = new File(DEST);
            file.getParentFile().mkdirs();
            new D07_ParseHtmlAsian().createPdf(DEST);
        }
    }

     

    S4:在指定路径下就可以得到 PDF 结果

     

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-15 17:06 , Processed in 0.984359 second(s), 28 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表