@Override public void transform(ArchivalUnit au, PdfDocument pdfDocument) throws PdfException { pdfDocument.unsetModificationDate(); PdfUtil.normalizeTrailerId(pdfDocument); pdfDocument.unsetMetadata(); PDDocumentInformation pdDocInfo = ((GtvPdfBoxDocument) pdfDocument).getPdDocumentInformation(); if (pdDocInfo.getCustomMetadataValue(GtvPdfBoxDocument.PDFDATE) != null) { pdDocInfo.setCustomMetadataValue(GtvPdfBoxDocument.PDFDATE, null); } if (pdDocInfo.getCustomMetadataValue(GtvPdfBoxDocument.PDFUSER) != null) { pdDocInfo.setCustomMetadataValue(GtvPdfBoxDocument.PDFUSER, null); } PdfStateMachineWorker worker = new PdfStateMachineWorker(); boolean anyXform = false; for (PdfPage pdfPage : pdfDocument.getPages()) { PdfTokenStream pdfTokenStream = pdfPage.getPageTokenStream(); worker.process(pdfTokenStream); if (worker.getResult()) { anyXform = true; List<PdfToken> tokens = pdfTokenStream.getTokens(); // clear tokens including text markers tokens.subList(worker.getBegin(), worker.getEnd() + 1).clear(); pdfTokenStream.setTokens(tokens); } } if (log.isDebug2()) { log.debug2("Transform: " + anyXform); } }