Rumah  >  Soal Jawab  >  teks badan

java - 使用itext将html转成PDF,PDF空白的问题。

我将一个html转换成Pdf,结果转出的PDF是空白的。

经过排查,导致的原因是里面有一个最外层的p设置了CSS样式为width: 800px;

这个数字如果设置成660px就没有问题,再大就会空白。

我使用的itext是5.5.6版本。请问各位大神,这是为什么?或者,能否帮忙分析一下?

Java代码如下

public static byte[] htmlToPdf(String html) throws Exception {

        ByteArrayInputStream htmlin = null;
        Document document = null;
        PdfWriter writer = null;
        ByteArrayOutputStream pdfout = null;

        CloudSignFontProvider fontProvider = new CloudSignFontProvider();

        try {

            pdfout = new ByteArrayOutputStream();
            htmlin = new ByteArrayInputStream(html.getBytes());
            document = new Document(PageSize.A4, 50, 50, 50, 50);
            writer = PdfWriter.getInstance(document, pdfout);
            document.open();
            XMLWorkerHelper.getInstance().parseXHtml(writer, document, htmlin, null, fontProvider);
            writer.flush();
            pdfout.flush();

            document.close();
            document = null;

            byte[] pdfdata = pdfout.toByteArray();
            return pdfdata;
        } catch (Exception ex) {
            logger.error(ex.getMessage(), ex);
            throw ex;
        } finally {
            if (writer != null) {
                writer.close();
            }
            if (document != null) {
                document.close();
            }
            if (htmlin != null) {
                htmlin.close();
            }
            if (pdfout != null) {
                pdfout.close();
            }
        }
    }
ringa_leeringa_lee2764 hari yang lalu695

membalas semua(0)saya akan balas

Tiada jawapan
  • Batalbalas