java html怎么转成pdf

java html怎么转成pdf,第1张

可以使用虚拟打印机来处理:

方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用;

方法二:用其他虚拟打印机转成PDF文件。

方法三:使用专门的转换软件,把文件转成PDF文件。

java中利用第三方jar包iText 5.4.2就可以实现html转为pdf。

比如有如下index.html文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>HTML to PDF</title>

<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>

<h1>HTML to PDF</h1>

<p>

<span class="itext">itext</span>5.4.2 <span class="description">converting HTML to PDF</span>

</p>

<table>

<tr>

<th class="label">Title</th>

<td>iText - Java HTML to PDF</td>

</tr>

<tr>

<th>URL</th>

<td>http://hmkcode.com/itext-html-to-pdf-using-java</td>

</tr>

</table>

</body>

</html>

样式文件:

h1 {

color:#ccc

}

table tr td{

text-align:center

border:1px solid gray

padding:4px

}

table tr th{

background-color:#84C7FD

color:#fff

width: 100px

}

.itext{

color:#84C7FD

font-weight:bold

}

.description{

color:gray

}

后台转换的接口:

package com.hmkcode

import java.io.FileInputStream

import java.io.FileOutputStream

import java.io.IOException

import com.itextpdf.text.Document

import com.itextpdf.text.DocumentException

import com.itextpdf.text.pdf.PdfWriter

import com.itextpdf.tool.xml.XMLWorkerHelper

public class App

{

public static void main( String[] args ) throws DocumentException, IOException

{

// step 1

Document document = new Document()

// step 2

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("pdf.pdf"))

// step 3

document.open()

// step 4

XMLWorkerHelper.getInstance().parseXHtml(writer, document,

new FileInputStream("index.html"))

//step 5

document.close()

System.out.println( "PDF Created!" )

}

}

转换结果:

renderer.createPDF( os )捕捉下异常,看是不是跳走廊,在close之前调用os.flush()试试。

String docPath = session.getAttribute("docpath").toString()//获取文件HTML文件路径

String inputFile = docPath+"html"//定义输入文件全名

String url = new File(inputFile).toURI().toURL().toString()

String outputFile =docPath + "pdf"//定义输出文件全名

OutputStream os = new FileOutputStream(outputFile)

ITextRenderer renderer = new ITextRenderer()实例化一个ITextRenderer

renderer.setDocument(url)

ITextFontResolver fontResolver = renderer.getFontResolver()

ontResolver.addFont("C:/Windows/fonts/simsun.ttc",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED)//设置字体

// 解决图片的相对路径问题

renderer.getSharedContext().setBaseURL("file:/" + application.getRealPath("UserFiles/Image") + "/")

renderer.layout()

renderer.createPDF(os)

os.close()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12032675.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存