配置依赖:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</artifactId> <version>2.0.2</version> </dependency>
代码实现:
try { WriterProperties writerProperties = new WriterProperties(); //Add metadata writerProperties.addXmpMetadata(); FileOutputStream fos = new FileOutputStream(outputFile);//outputFile为生成存放的路径如:d:/test.pdf PdfWriter pdfWriter = new PdfWriter(fos, writerProperties); PdfDocument pdfDoc = new PdfDocument(pdfWriter); pdfDoc.getCatalog().setLang(new PdfString("UTF-8")); //Set the document to be tagged pdfDoc.setTagged(); pdfDoc.getCatalog().setViewerPreferences(new PdfViewerPreferences().setDisplayDocTitle(true)); //Set meta tags PdfDocumentInfo pdfMetaData = pdfDoc.getDocumentInfo(); pdfMetaData.setAuthor("XX"); pdfMetaData.addCreationDate(); pdfMetaData.getProducer(); pdfMetaData.setCreator("XXX"); pdfMetaData.setKeywords("resume"); pdfMetaData.setSubject("PDF resume"); //Title is derived from html //Create event-handlers // String footer = "来自:XX网 - www.XXX.com"; // Footer footerHandler = new Footer(footer,msyh); // PageXofY footerHandler = new PageXofY(pdfDoc); //Assign event-handlers // pdfDoc.addEventHandler(PdfDocumentEvent.END_PAGE,footerHandler); // pdf conversion ConverterProperties props = new ConverterProperties(); FontProvider fp = new FontProvider(); fp.addStandardPdfFonts(); fp.addDirectory(outputFile);//The noto-nashk font file (.ttf extension) is placed in the resources fp.addSystemFonts(); props.setFontProvider(fp); props.setBaseUri(outputFile); //Setup custom tagworker factory for better tagging of headers //DefaultTagWorkerFactory tagWorkerFactory = new TagWorkerFactory(); //props.setTagWorkerFactory(tagWorkerFactory); //inputFile是要转化的内容 HtmlConverter.convertToPdf(new ByteArrayInputStream(inputFile.getBytes("UTF-8")), pdfDoc, props); pdfDoc.close(); }catch (Exception e) { e.printStackTrace(); }