@Override public Boolean getcontainsAA() { return this.catalog != null && this.catalog.getObject().getType().isDictionaryBased() && this.catalog.knownKey(ASAtom.AA); }
public static void registerFileSpecificationKeys(COSDocument document) { PDDocument pdDocument = document.getPDDocument(); if (pdDocument == null) { return; } PDCatalog catalog = pdDocument.getCatalog(); if (catalog != null) { registerDictionaryAFKeys(catalog.getObject()); processStructElements(catalog.getStructTreeRoot()); } List<PDPage> pages = pdDocument.getPages(); for (PDPage page : pages) { processPage(page); } visitedKeys.clear(); }
/** * {@inheritDoc} Implemented by GreenField library. */ @Override public MetadataFixerResult saveDocumentIncremental(final MetadataFixerResultImpl.RepairStatus status, OutputStream output) { MetadataFixerResultImpl.Builder builder = new MetadataFixerResultImpl.Builder(); try { PDMetadata meta = this.document.getCatalog().getMetadata(); boolean isMetaPresent = meta != null && this.isNeedToBeUpdated(); boolean isMetaAdd = meta == null && this.metadata != null; if (isMetaPresent || isMetaAdd) { this.metadata.updateMetadataStream(); if (isMetaAdd) { this.document.getDocument().addChangedObject( this.document.getCatalog().getObject()); } this.document.saveTo(output); output.close(); builder.status(getStatus(status)); } else { builder.status(status); } } catch (Exception e) { LOGGER.log(Level.FINE, e.getMessage(), e); builder.status(FIX_ERROR).addFix("Problems with document save. " + e.getMessage()); } return builder.build(); }
@Override public Boolean getcontainsAlternatePresentations() { if (this.catalog != null) { COSObject rawCatalog = this.catalog.getObject(); if (rawCatalog != null && rawCatalog.getType().isDictionaryBased()) { COSObject namesDictionary = rawCatalog.getKey(ASAtom.NAMES); if (namesDictionary != null && namesDictionary.getType().isDictionaryBased()) { COSObject alternatePresentations = namesDictionary.getKey(ASAtom.getASAtom("AlternatePresentations")); if (alternatePresentations != null && !alternatePresentations.empty() && alternatePresentations.getType() != COSObjType.COS_NULL) { return Boolean.TRUE; } } } } return Boolean.FALSE; }