/** * Constructor using greenfield COSDocument * * @param cosDocument * greenfield COSDocument */ public GFCosDocument(COSDocument cosDocument) { super(cosDocument, COS_DOCUMENT_TYPE); this.catalog = this.getCatalog(); COSHeader cosHeader = cosDocument.getHeader(); this.indirectObjectCount = cosDocument.getObjects().size(); this.version = cosHeader.getVersion(); this.headerOffset = cosHeader.getHeaderOffset(); this.header = cosHeader.getHeader(); this.headerCommentByte1 = cosHeader.getHeaderCommentByte1(); this.headerCommentByte2 = cosHeader.getHeaderCommentByte2(); this.headerCommentByte3 = cosHeader.getHeaderCommentByte3(); this.headerCommentByte4 = cosHeader.getHeaderCommentByte4(); this.isOptionalContentPresent = parseOptionalContentPresent(); this.postEOFDataSize = cosDocument.getPostEOFDataSize(); this.isLinearised = cosDocument.getTrailer() != cosDocument.getLastTrailer() && cosDocument.isLinearized(); this.lastID = getTrailerID(cosDocument.getLastTrailer().getKey(ASAtom.ID)); this.firstPageID = getTrailerID(cosDocument.getFirstTrailer().getKey(ASAtom.ID)); PDFAFlavour.Specification specification = StaticContainers.getFlavour().getPart(); if (specification == PDFAFlavour.Specification.ISO_19005_3 || specification == PDFAFlavour.Specification.ISO_19005_4) { FileSpecificationKeysHelper.registerFileSpecificationKeys(cosDocument); } }
public void saveAs(final Writer writer) { writer.writeHeader(this.header.getHeader()); writer.addToWrite(this.xref.getAllKeys()); writer.writeBody(); writer.setTrailer(this.trailer); writer.writeXRefInfo(); writer.clear(); }