@Override
public void checkMetadataStream(
MetadataFixerResultImpl.Builder resultBuilder,
PDFAFlavour flavour) {
PDFAFlavour.Specification part = flavour.getPart();
if (part != PDFAFlavour.Specification.ISO_19005_1) {
COSFilters filters = ((COSStream) this.stream.getDirectBase()).getFilters();
if (filters.size() == 1 && filters.getFilters().get(0) == ASAtom.FLATE_DECODE) {
return;
}
try {
((COSStream) this.stream.getDirectBase()).setFilters(new COSFilters(
COSName.construct(ASAtom.FLATE_DECODE)));
this.doc.addChangedObject(stream);
resultBuilder.addFix("Metadata stream filtered with FlateDecode");
} catch (IOException e) {
LOGGER.log(Level.FINE, "Problems with setting filter for stream.", e);
}
}
this.setRequiredDictionaryValue(ASAtom.METADATA, ASAtom.TYPE,
resultBuilder);
this.setRequiredDictionaryValue(ASAtom.getASAtom("XML"),
ASAtom.SUBTYPE, resultBuilder);
}