核心代码如下
package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='hmkcode.com'>hmkcode.com</a>";
public static void main( String[] args ) throws FileNotFoundException, IOException
{
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println( "PDF Created!" );
}
}
‘贰’ java把html转成pdf文件
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();
‘叁’ java将html文件转成pdf
要将HTML文件转换成PDF,在Java中可以使用以下方法和步骤:
使用iText或Apache PDFBox结合Html2Image技术:
选择合适的库:
转换步骤:
注意事项:
通过上述方法和步骤,你可以使用Java将HTML文件成功转换成PDF文件。
‘肆’ javahtml转pdf样式丢失
javahtml转pdf样式丢失的原因。
1、CSS样式丢失,HTML文档中使用的CSS样式无法被局猜正确解析和转换为PDF格式。
2、字体问题,Java转换HTML为PDF时,字体缺失或无法识别某些字体腔伍,导致样式丢失。
3、转换工具问题,Java转换HTML为PDF的工具本身也存在问题,转换算法不够完伍腊或善,版本不兼容等问题,导致样式丢失。