栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

HTML转pdf(方式二:itextpdf)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HTML转pdf(方式二:itextpdf)

1、导入相关的jar包

itext-2.1.7.jar

itextpdf-5.4.3.jar

xmlworker-5.4.3.jar

注:我的资源中有相关jar:itextpdf-jar_x64

2、相关代码

package com.example.demo.utils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import com.itextpdf.text.document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;

public class HtmlToPdf {
    private static final String PDF_PATH = "F:\html2PDF.pdf";
    private static final String HTML_PATH = "F:\pdfTest.jsp";
    private static final String CSS_PATH = "F:\html2pdf.css";

    public static void main(String[] args) throws Exception {
	//	baseFont baseFont = baseFont.createFont("front/msyh.ttf", baseFont.IDENTITY_H, baseFont.NOT_EMBEDDED);
        // 文字如果要加粗,修改第三个参数
//		Font msya = new Font(baseFont, 12, Font.NORMAL);

        document document = new document(PageSize.A4, 10, 10, 10, 10);//左右上下的margin
        document.setMargins(0, 0, 0, 0);
        PdfWriter pdfwriter;
        pdfwriter = PdfWriter.getInstance(document, new FileOutputStream(PDF_PATH));
        document.open();
        XMLWorkerHelper wh = XMLWorkerHelper.getInstance();
        InputStream cssInput = new FileInputStream(CSS_PATH);
        wh.parseXHtml(pdfwriter, document, new FileInputStream(HTML_PATH), cssInput, new DefineFontProvider());


        document.close();

        System.out.println("succeed");
    }

}
package com.example.demo.utils;

import com.itextpdf.text.baseColor;
import com.itextpdf.text.Font;
import com.itextpdf.text.pdf.baseFont;
import com.itextpdf.tool.xml.XMLWorkerFontProvider;

public class DefineFontProvider extends XMLWorkerFontProvider {
	@Override
	public Font getFont(final String fontname, final String encoding, final boolean embedded, final float size,
			final int style, final baseColor color) {
		baseFont bf = null;
		try {
			bf = baseFont.createFont("front/msyh.ttf", baseFont.IDENTITY_H, baseFont.NOT_EMBEDDED);
		} catch (Exception e) {
			e.printStackTrace();
		}
		Font font = new Font(bf, size, style, color);
		font.setColor(color);
		return font;
	}
}

3、导入相关字体:

msyh.ttf  微软雅黑包
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号