html转pdf java
时间: 2023-10-14 12:28:18 浏览: 184
可以使用第三方库 iText 或 Flying Saucer 来将 HTML 转换为 PDF。
使用 iText:
```java
import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
public class HtmlToPdf {
public static void main(String[] args) throws Exception {
// HTML 文件路径
String htmlPath = "test.html";
// PDF 文件路径
String pdfPath = "test.pdf";
// 创建一个 Document 对象
Document document = new Document(PageSize.A4);
// 创建一个 PDFWriter 对象
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdfPath));
// 打开 Document 对象
document.open();
// 读取 HTML 文件内容
InputStream is = new FileInputStream(htmlPath);
// 使用 XMLWorkerHelper 将 HTML 转换为 PDF
XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);
// 关闭 Document 对象
document.close();
System.out.println("PDF 文件生成成功!");
}
}
```
使用 Flying Saucer:
```java
import org.xhtmlrenderer.pdf.ITextRenderer;
import java.io.FileOutputStream;
import java.io.InputStream;
public class HtmlToPdf {
public static void main(String[] args) throws Exception {
// HTML 文件路径
String htmlPath = "test.html";
// PDF 文件路径
String pdfPath = "test.pdf";
// 创建一个 ITextRenderer 对象
ITextRenderer renderer = new ITextRenderer();
// 读取 HTML 文件内容
InputStream is = HtmlToPdf.class.getClassLoader().getResourceAsStream(htmlPath);
// 设置 HTML 文件路径
renderer.setDocument(is, null);
// 解析 HTML 并将其转换为 PDF
renderer.layout();
renderer.createPDF(new FileOutputStream(pdfPath));
System.out.println("PDF 文件生成成功!");
}
}
```
阅读全文