我有iText的问题.
我的片段:
String str = "
First
sdasdasd shshshshdffgdfgd
The dream
";
String fileNameWithPath = "/Users/cecco/Desktop/pdf2.pdf";
com.itextpdf.text.Document document =
new com.itextpdf.text.Document(com.itextpdf.text.PageSize.A4);
FileOutputStream fos = new FileOutputStream(fileNameWithPath);
com.itextpdf.text.pdf.PdfWriter pdfWriter =
com.itextpdf.text.pdf.PdfWriter.getInstance(document, fos);
document.open();
document.addAuthor("Myself");
document.addSubject("My Subject");
document.addCreationDate();
document.addTitle("My Title");
com.itextpdf.text.html.simpleparser.HTMLWorker htmlWorker =
new com.itextpdf.text.html.simpleparser.HTMLWorker(document);
htmlWorker.parse(new StringReader(str.toString()));
document.close();
fos.close();
工作正常.
但是不考虑将标签样式转换为h3和div.
我怎么解决这个问题?
解决方法:
iText不是最好的Html Parser,但你可以使用Flying-Saucer. Flying-Saucer构建于iText之上,但具有强大的Xml /(X)Html解析器.简而言之:如果你想要html,飞碟是完美的 – > PDF文件.
以下是如何从字符串生成pdf:
String str = "
First
t
sdasdasd shshshshdffgdfgd
The dream
";
OutputStream os = new FileOutputStream(new File("example.pdf"));
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(str);
renderer.layout();
renderer.createPDF(os);
os.close();
但是:FS只支持有效的Html / Xhtml / xml,所以请确保它是真的.
标签:java,pdf,itext,html
来源: https://codeday.me/bug/20190529/1180440.html