@Override public String toPDFString() { StringBuilder sb = new StringBuilder(); sb.append(mHeader.toPDFString()); sb.append(mBody.toPDFString()); mCRT.setObjectNumberStart(mBody.getObjectNumberStart()); int x = 0; while (x < mBody.getObjectsCount()) { IndirectObject iobj = mBody.getObjectByNumberID(++x); if (iobj != null) { mCRT.addObjectXRefInfo(iobj.getByteOffset(), iobj.getGeneration(), iobj.getInUse()); } } mTrailer.setObjectsCount(mBody.getObjectsCount()); mTrailer.setCrossReferenceTableByteOffset(sb.length()); mTrailer.setId(Indentifiers.generateId()); return sb.toString() + mCRT.toPDFString() + mTrailer.toPDFString(); }