/** * check second line of pdf header */ private void checkComment(final COSHeader header) throws IOException { byte[] comment = getLineBytes(); boolean isValidComment = true; if (comment != null && comment.length != 0) { if (comment[0] != '%') { isValidComment = false; } if (comment.length < 5) { isValidComment = false; } } else { isValidComment = false; } if (isValidComment) { header.setBinaryHeaderBytes(comment[1], comment[2], comment[3], comment[4]); } else { header.setBinaryHeaderBytes(0, 0, 0, 0); } }
public void setHeader(String header) { this.header.setHeader(header); }
/** * 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); } }
private COSHeader parseHeader() throws IOException { COSHeader result = new COSHeader(); result.setHeaderOffset(headerOffset); result.setHeader(header); result.setVersion(headerVersion); checkComment(result);
return new COSObject(); } else if(offset > 0) { if (header.getHeaderOffset() > 0) { offset += header.getHeaderOffset();
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(); }
COSHeader documentHeader = document.getHeader(); if (documentHeader != null) { this.headerVersion = documentHeader.getVersion();
public COSDocument(final PDDocument document) { this.doc = document; this.header = new COSHeader(); this.body = new COSBody(); this.xref = new COSXRefTable(); this.trailer = new COSTrailer(); this.firstTrailer = new COSTrailer(); this.lastTrailer = new COSTrailer(); this.linearized = false; this.isNew = true; this.changedObjects = new ArrayList<>(); this.addedObjects = new ArrayList<>(); this.resourceHandler = new FileResourceHandler(); }
source.seek(currentOffset + document.getHeader().getHeaderOffset()); source.read(buffer); source.unread(buffer.length - 1); source.seek(currentOffset + document.getHeader().getHeaderOffset()); return source.getStreamLength(); this.isStreamEnd = true; source.seek(currentOffset + document.getHeader().getHeaderOffset()); return result;
generationNumber.getInteger().intValue()); long keyOffset = this.document.getOffset(key).longValue(); source.seek(keyOffset + document.getHeader().getHeaderOffset());