分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

关于使用itext转Html为pdf添加css样式的问题

发布时间:2023-09-06 01:30责任编辑:顾先生关键词:pdf

使用的jar文件

xmlworker-5.5.11.jar

itextpdf-5.5.11.jar

下载地址:https://pan.baidu.com/s/1i5AIBvZ

以下为测试代码

package com.test;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import com.itextpdf.text.Document;import com.itextpdf.text.pdf.PdfWriter;import com.itextpdf.tool.xml.XMLWorkerHelper;public class Html2Pdf{ ???public static void main(String [] args) throws Exception ???{ ???String urlsource = getURLSource(new File("D:/test.html")); ???String cssSource = getURLSource(new File("D:/css.css")); ???htmlToPdf(urlsource,cssSource); ???} ???// 支持中文 ???public static void htmlToPdf(String htmlstr,String cssSource) throws Exception ???{ ???String outputFile = "D:/test.pdf"; ???Document document = new Document(); ???PdfWriter writer = null; ???writer = PdfWriter.getInstance(document, new FileOutputStream(outputFile)); ???document.open(); ???????InputStream bis = new ByteArrayInputStream(htmlstr.toString().getBytes());
???InputStream cssis = new ByteArrayInputStream(cssSource.toString().getBytes());

      XMLWorkerHelper.getInstance().parseXHtml(writer, document, bis,cssis);

 ???document.close(); ???} ???/** ????* 通过网站域名URL获取该网站的源码 ????* ?????* @param url ????* @return String ????* @throws Exception ????*/ ???public static String getURLSource(File url) throws Exception ???{ ???InputStream inStream = new FileInputStream(url); ???// 通过输入流获取html二进制数据 ???byte [] data = readInputStream(inStream); // 把二进制数据转化为byte字节数据 ???String htmlSource = new String(data); ???inStream.close(); ???return htmlSource; ???} ???/** ????* 把二进制流转化为byte字节数组 ????* ?????* @param instream ????* @return byte[] ????* @throws Exception ????*/ ???public static byte [] readInputStream(InputStream instream) throws Exception ???{ ???ByteArrayOutputStream outStream = new ByteArrayOutputStream(); ???byte [] buffer = new byte[1204]; ???int len = 0; ???while ((len = instream.read(buffer)) != -1) ???{ ???????outStream.write(buffer, 0, len); ???} ???instream.close(); ???return outStream.toByteArray(); ???}}

关于使用itext转Html为pdf添加css样式的问题

原文地址:http://www.cnblogs.com/shej123/p/8043250.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved