首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在生成PDF文档并使用iText 7合并它时,如何消除PDF错误和iText警告消息?

在生成PDF文档并使用iText 7合并它时,如何消除PDF错误和iText警告消息?
EN

Stack Overflow用户
提问于 2019-07-18 11:35:35
回答 1查看 717关注 0票数 0

我使用iText版本7.1.6来生成PDF文档,最后我尝试合并它。

下面是与注释合并的代码。

代码语言:javascript
复制
List<byte[]> pdfDocumentList= new ArrayList<byte[]>();

// pdfDocumentList has list of byte arrays generated from other ways
ByteArrayOutputStream mergeOutputStream = new ByteArrayOutputStream();
PdfDocument pdfMerged = new PdfDocument(new PdfWriter(mergeOutputStream));
PdfMerger merger = new PdfMerger(pdfMerged);
ByteArrayOutputStream finalOutputStream = new ByteArrayOutputStream();
PdfWriter writer = new PdfWriter(finalOutputStream);
PdfDocument pdf = new PdfDocument(writer);

// sb is containing the concatenated HTML sources
HtmlConverter.convertToPdf(sb.toString(), pdf, properties);
pdf.close();
pdfDocumentList.add(finalOutputStream.toByteArray());
if(!pdfDocumentList.isEmpty()){
    for(byte[] bytes : pdfDocumentList){
        PdfDocument externalPdf = new PdfDocument(new PdfReader(new ByteArrayInputStream(bytes)));
        merger.merge(externalPdf, 1, externalPdf.getNumberOfPages());
    }
}
pdfMerged.close();
return mergeOutputStream.toByteArray();

当我合并PDF文档列表时,我会得到以下错误和警告。此外,警告不断被打印多次。我怎么才能修好它?

警告

代码语言:javascript
复制
WARNING: The background rectangle has negative or zero sizes. It will not be displayed.
Jul 18, 2019 2:24:24 PM com.itextpdf.layout.renderer.AbstractRenderer drawBackground

错误

代码语言:javascript
复制
<Jul 18, 2019, 2:27:19,964 PM AST> <Error> <com.itextpdf.kernel.pdf.PdfReader> <BEA-000000> <Error occurred while reading cross reference table. Cross reference table will be rebuilt.
com.itextpdf.io.IOException: PDF startxref not found.
    at com.itextpdf.io.source.PdfTokenizer.getStartxref(PdfTokenizer.java:262)
    at com.itextpdf.kernel.pdf.PdfReader.readXref(PdfReader.java:753)
    at com.itextpdf.kernel.pdf.PdfReader.readPdf(PdfReader.java:538)
    at com.itextpdf.kernel.pdf.PdfDocument.open(PdfDocument.java:1818)
    at com.itextpdf.kernel.pdf.PdfDocument.<init>(PdfDocument.java:238)
    Truncated. see log file for complete stacktrace
>
2019-07-18 14:27:19 ERROR user: KALASINX ip: 127.0.0.1 (ServiceInterceptor.java:59) ~ ServiceInterceptor Error:
com.itextpdf.kernel.PdfException: Trailer not found.
    at com.itextpdf.kernel.pdf.PdfReader.rebuildXref(PdfReader.java:1064) ~[kernel-7.1.6.jar:?]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-28 11:30:38

在分析了HTML代码并进行了反复测试之后,我能够消除警告消息。我必须删除与表、tr和td标记相关的background-color样式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57093534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档