maven工程实现html转换为pdf,支持中文格式

配置依赖:

<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();
        }

猜你喜欢

转载自blog.csdn.net/zhangtongpeng/article/details/80280531