Hello, I am trying to Flatten a PDF using PDFBox3 by doing :
private static void flattenPDF(String src, String dst) throws IOException { PDDocument doc = Loader.loadPDF(new RandomAccessReadBufferedFile( src )); PDDocumentCatalog catalog = doc.getDocumentCatalog(); PDAcroForm acroForm = catalog.getAcroForm(); if (acroForm == null){ logger.debug("This document does not contains any form, nothing to do..."); }else { acroForm.setNeedAppearances(false); acroForm.flatten();// Flatten using pdfbox3 } doc.save(dst); doc.close(); } It works but it creates in some cases a document that is not readable using PDFBox 2 where I get this error: java.io.IOException: COSObject{525, 0} cannot be assigned to offset 1528842, this belongs to COSObject{4196, 0} at org.apache.pdfbox.pdfparser.COSParser.parseDictObjects(COSParser.java:736) at org.apache.pdfbox.pdfparser.PDFParser.initialParse(PDFParser.java:185) at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:231) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1233) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1133) With the following code : System.out.printf("\n*\n* demo.pdf\n*\n"); try ( InputStream resource = getClass().getResourceAsStream("/mkl/testarea/pdfbox2/extract/bad-annot-1.pdf") ) { //OutputStream result = new FileOutputStream(new File(RESULT_FOLDER, "bad-pdf-sign.pdf")); PDDocument pdDocument = PDDocument.load(resource); System.out.printf("Producer of document : %s\n", pdDocument.getDocumentInformation().getProducer()); AccessPermission accessPermission = pdDocument.getCurrentAccessPermission(); if (accessPermission.isReadOnly()) { System.out.printf("The document cannot be modified (read-only)"); } if (!accessPermission.canModify()) { System.out.printf("Cannot modify the document"); } if (!accessPermission.canModifyAnnotations()) { System.out.printf("Cannot modify the annotation"); } if (!accessPermission.canFillInForm()) { System.out.printf("Cannot fill in form"); } } Do you have any ideas why ? I can not share the document (confidential) :( Best regards, Fred