itext将html生成pdf所用到的包

网上有很多这样的代码,测试了很多大多包不能用

亲测能用的包,其中中文换行的包

flying-saucer-pdf-itext5会以来引用flying-saucer-core-9.0.3.jar原包不支持中文换行,将支持中文换行的包替换掉该jar包

中文换行

<dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.3</version>
        </dependency>
        <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext-asian</artifactId>
        <version>5.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>4.2.2</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf.tool</groupId>
            <artifactId>xmlworker</artifactId>
            <version>5.5.9</version>
        </dependency>
        <dependency>
            <groupId>org.xhtmlrenderer</groupId>
            <artifactId>flying-saucer-pdf-itext5</artifactId>
            <version>9.0.3</version>
        </dependency>

代码如下(在table中不管用 还得用空格唤醒换行)

/**
*
* @param htmlFile html文件存储路径
* @param pdfFile 生成的pdf文件存储路径
*/
public static void html2pdf(String htmlFile, String pdfFile) {
// step 1
String url;
OutputStream os = null;
try {
File file = new File(pdfFile);
File fileParent = file.getParentFile();
if (!fileParent.exists()) {
fileParent.mkdirs();
}
url = new File(htmlFile).toURI().toURL().toString();
os = new FileOutputStream(pdfFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
// 解决中文不显示问题
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("/static/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
renderer.layout();
renderer.createPDF(os);
} catch (Exception e) {
System.out.println(pdfFile);
e.printStackTrace();
} finally {
if(os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

iText是一个用于生成PDF文档的开源Java库,它提供了丰富的API和功能,可以通过编程方式创建、编辑和操作PDF文档。iText可以将HTML转换为PDF,以便在应用程序中生成具有复杂布局和样式的PDF文档。 要使用iTextHTML转换为PDF,你需要遵循以下步骤: 1. 导入iText库:首先,你需要将iText库添加到你的Java项目中。你可以从iText官方网站下载最新版本的库文件,并将其添加到你的项目依赖中。 2. 创建PDF文档对象:使用iText库中的PdfDocument类创建一个新的PDF文档对象。 3. 创建HTML解析器:使用iText库中的HtmlConverter类创建一个HTML解析器对象。 4. 将HTML转换为PDF:使用HTML解析器对象的convertToPdf()方法,将HTML内容转换为PDF格式,并将其添加到PDF文档对象中。 5. 保存PDF文档:使用PDF文档对象的close()方法保存并关闭PDF文档。 下面是一个简单的示例代码,演示了如何使用iTextHTML转换为PDF: ```java import com.itextpdf.html2pdf.HtmlConverter; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; public class HtmlToPdfConverter { public static void main(String[] args) { // 创建PDF文档对象 PdfDocument pdfDoc = new PdfDocument(new PdfWriter("output.pdf")); try { // 创建HTML解析器 HtmlConverter.convertToPdf("<html><body><h1>Hello, iText!</h1></body></html>", pdfDoc); // 保存PDF文档 pdfDoc.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 这是一个简单的示例,将一个含标题的HTML转换为PDF,并将其保存为名为"output.pdf"的文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值