【问题标题】:iText 7 Embedded files on append mode does not work [closed]附加模式下的iText 7嵌入式文件不起作用[关闭]
【发布时间】:2021-04-14 01:59:19
【问题描述】:
PdfDocument pdfDoc = new PdfDocument(
        new PdfReader(in),
        new PdfWriter(destPath),
        new StampingProperties().useAppendMode());

PdfFileSpec spec = PdfFileSpec.createEmbeddedFileSpec(
        pdfDoc,
        annex.getInputStream(),
        annex.getFileName(),
        annex.getFileName(),
        null, null, null);

pdfDoc.addFileAttachment(annex.getFileName(), spec);
log.info("add file attachment:{}", annex.getFileName());

pdfDoc.close();

【问题讨论】:

  • 请澄清什么“不起作用”。在我的测试中,添加嵌入文件可以正常工作,无论是否使用附加模式。使用最新版本 (7.1.15) 测试。

标签: java pdf itext itext7


【解决方案1】:

使用此代码和 iText 7.1.15,我已经测试了添加嵌入文件,有和没有 附加模式

String fileName = "test.txt";

StampingProperties stampingProp = new StampingProperties();
if (append)
    stampingProp.useAppendMode();

PdfDocument pdfDoc = new PdfDocument(new PdfReader(in), new PdfWriter(dest),
        stampingProp);
PdfFileSpec spec = PdfFileSpec.createEmbeddedFileSpec(pdfDoc, new FileInputStream(fileName),
        fileName, fileName, null, null, null);
pdfDoc.addFileAttachment(fileName, spec);
pdfDoc.close();

在这两种情况下,文件都已正确嵌入,并且在 PDF 查看器中打开生成的 PDF 文档时会按预期显示。

输入和输出 PDF 的差异,只是为了验证第一个是否使用 附加模式进行了更新,而第二个没有:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2013-08-10
    • 2012-07-25
    • 1970-01-01
    • 2020-10-01
    • 2014-07-05
    • 1970-01-01
    相关资源
    最近更新 更多