Apache PDFBox - Adobe Acrobat提示保存。

问题描述 投票:1回答:1

我正在使用Apache PDFBox 2.0.16版本为一个现有的PDF文件添加分页功能。然而,当我用Adobe Acrobat Reader打开文件时,如果我试图关闭文件,它会提示一个警报,问我是否要保存文件,即使我没有编辑任何东西,文件是不可编辑的,在第一。

我的代码如下。

private void paging(ByteArrayOutputStream os) throws IOException {
    PDDocument doc = PDDocument.load(new ByteArrayInputStream(os.toByteArray()));
    PDFont font = getFont(doc);
    PDPageTree pages = doc.getDocumentCatalog().getPages();
    for (int i = 0; i < pages.getCount(); i++) {
        PDPage page = pages.get(i);
        PDPageContentStream contentStream = new PDPageContentStream(doc, page, PDPageContentStream.AppendMode.APPEND, true, false);
        contentStream.beginText();
        contentStream.setFont(font, FONT_SIZE);
        contentStream.setNonStrokingColor(Color.BLACK);
        contentStream.newLineAtOffset(page.getCropBox().getWidth() - 40,  15);
        contentStream.showText((i + 1) + " / " + pages.getCount());
        contentStream.endText();
        contentStream.close();
    }

    doc.save(os);
    doc.close();
}
java pdfbox acrobat
1个回答
0
投票

在保存之前重置'os',这样你的PDF文件就会有一个新的版本。ByteArrayOutputStream 被清空并定位在开头。

os.reset();

也可以直接用字节数组调用load()。

PDDocument.load(os.toByteArray());

并更新到当前版本,目前是2.0.19。

© www.soinside.com 2019 - 2024. All rights reserved.