【发布时间】:2014-05-01 15:14:04
【问题描述】:
我的代码需要一堆 PDF 并将它们组合成一个文件...
PdfWriter writer = PdfWriter.getInstance(document, baos)
....
PdfFileSpecification fs = PdfFileSpecification.fileEmbedded(writer, null, af.fileName, af.documentData.data)
fs.addCollectionItem(item)
writer.addFileAttachment(fs)
这很好用,我看到所有页面都符合我的预期。现在我希望将其拆分并根据大小复制到多个子文件。但是,当我使用生成的 byte[] iText 时,似乎只看到了第一页...
PdfCopy copy = null
PdfReader reader = new PdfReader(before) // Add the byte array here
int pages = reader.getNumberOfPages() //It is only 1 I would expect more pages.
它似乎只能识别在其他文档之前添加的封面。有没有办法可以得到所有页面的计数?如果我之前把它作为附件发送,它会显示所有 1xx 页面。
【问题讨论】:
-
您是要拆分已经“合并”的 PDF,还是要重新构建您的“合并”逻辑?
-
您正在组合文件,方法是将它们附加到一个只有封面的新 PDF 中,并使该文件成为 Adobe 所称的 Portfolio .如果您想访问这些附加 PDF 的页面,您必须再次提取它们并在单独的
PdfReader实例中打开它们。 -
@mkl 是对的,应该将他的评论变成答案。他的回答应该被接受。
-
@BrunoLowagie 把他的评论变成答案 - 好的,你来了! ;)
-
谢谢,我赞成今天的答案和你提到的答案。
标签: pdf-generation itext