首页 > 解决方案 > Itext 7.1.16 - 添加两个段落不起作用

问题描述

我尝试创建 PDF 文档,但我无法创建包含 2 个段落的文档。它只显示添加的第一个:

在此处输入图像描述

这是我的复制代码:

public void createBillingDocument(List<PDFData> datas) {
        datas.forEach(data -> {
            try {
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                PdfWriter writer = new PdfWriter(outputStream);
                PdfDocument pdf = new PdfDocument(writer);
                Document document = new Document(pdf,PageSize.A4);
                document.add(new Paragraph("Muh"));
                document.add(new Paragraph("Kuh"));
                document.close();
                pdf.close();
                writer.close();
                outputStream.close();
                fileAccess.storeFile(outputStream.toString(), "test/" + "Name.pdf");
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        });
    }

有没有人遇到同样的问题并找到了解决方案?

问候

编辑:一件奇怪的事情是,如果我在它之间做一个 Breake,它会显示两个段落。每一个一页。

try {
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                PdfWriter writer = new PdfWriter(outputStream);
                PdfDocument pdf = new PdfDocument(writer);
                Document document = new Document(pdf,PageSize.A4);
                document.add(new Paragraph("Muh"));
                document.add(new AreaBreak());
                document.add(new Paragraph("Kuh"));
                document.close();
                pdf.close();
                writer.close();
                outputStream.close();
                fileAccess.storeFile(outputStream.toString(), "test/" + "Name.pdf");
            } catch (IOException e) {
                throw new RuntimeException(e);
            }

标签: javaitext7

解决方案


好的,发现了。@mkl 是对的。问题在于“将文档另存为字符串”。将其更改为 ByteArray,瞧,它起作用了 :) 感谢您的时间!


推荐阅读