gpt4 book ai didi

java - Itext 7 PdfException - "com.itextpdf.kernel.PdfException: Pdf indirect object belongs to other PDF document. Copy object to current pdf document."

转载 作者:行者123 更新时间:2023-12-02 00:56:41 27 4
gpt4 key购买 nike

当我尝试连续打印一些文档时,出现标题中描述的异常。

第一个已打印,但第二个进程 doc.close() 抛出异常。

1.打印方法。

private void print1(Cell header, Table table, Cell footer, int size) throws Exception {
byte[] bytes = somePrintService.getByteArray(header, table, footer, size);
somePrintService.printbytes(bytes);
}

private void print2(Cell header, Table table, Cell footer, int size) throws Exception {
byte[] bytes = somePrintService.getByteArray(header, table, footer, size);
somePrintService.printbytes(bytes);
}

2.somePrintService中的getByteArray方法

public byte[] getByteArray(Cell header, Table table, Cell footer, int height) {


ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

PdfWriter writer = new PdfWriter(outputStream);

PdfDocument pdf = new PdfDocument(writer);
Rectangle rectangle = new Rectangle(135f, height);
PageSize pageSize = new PageSize(rectangle);
pdf.setDefaultPageSize(pageSize);

Document doc = new Document(pdf);
doc.setMargins(0, 0, 0, 0);


doc.add(header);
doc.add(table);
doc.add(footer);


doc.close(); ------- Exception thrown here!!!

return outputStream.toByteArray();
}

3.Itext内核代码抛出异常

private void write(PdfIndirectReference indirectReference) {
if (document != null && !indirectReference.getDocument().equals(document)) {
throw new PdfException(PdfException.PdfIndirectObjectBelongsToOtherPdfDocument);
}
...
}

PS1。我正在使用 Spring 服务来创建表格、字体等

PS2。 Itext 版本 - 7.1.10

谢谢。

最佳答案

问题已经解决了。对于每个文档,必须生成单独的 iText 对象集(单元格、段落、表格...)。

关于java - Itext 7 PdfException - "com.itextpdf.kernel.PdfException: Pdf indirect object belongs to other PDF document. Copy object to current pdf document.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61269801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com