public static void signDeferred(PdfReader reader, String fieldName, OutputStream outs, ExternalSignatureContainer externalSignatureContainer) throws DocumentException, IOException, GeneralSecurityException {
AcroFields af = reader.getAcroFields();
PdfDictionary v = af.getSignatureDictionary(fieldName);
if (v == null)
throw new DocumentException("No field");
if (!af.signatureCoversWholeDocument(fieldName))
throw new DocumentException("Not the last signature");
PdfArray b = v.getAsArray(PdfName.BYTERANGE);
long[] gaps = b.asLongArray();
if (b.size() != 4 || gaps[0] != 0)
throw new DocumentException("Single exclusion space supported");