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


 

使用的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(); } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM