Example #1
0
 public void close() throws DocumentException, IOException {
   if (!hasSignature) {
     stamper.close(moreInfo);
     return;
   }
   sigApp.preClose();
   PdfSigGenericPKCS sig = sigApp.getSigStandard();
   PdfLiteral lit = (PdfLiteral) sig.get(PdfName.CONTENTS);
   int totalBuf = (lit.getPosLength() - 2) / 2;
   byte buf[] = new byte[8192];
   int n;
   InputStream inp = sigApp.getRangeStream();
   try {
     while ((n = inp.read(buf)) > 0) {
       sig.getSigner().update(buf, 0, n);
     }
   } catch (SignatureException se) {
     throw new ExceptionConverter(se);
   }
   buf = new byte[totalBuf];
   byte[] bsig = sig.getSignerContents();
   System.arraycopy(bsig, 0, buf, 0, bsig.length);
   PdfString str = new PdfString(buf);
   str.setHexWriting(true);
   PdfDictionary dic = new PdfDictionary();
   dic.put(PdfName.CONTENTS, str);
   sigApp.close(dic);
   stamper.reader.close();
 }
  public void invokeOperator(PdfLiteral operator, ArrayList<PdfObject> operands) {
    ContentOperator op = operators.get(operator.toString());
    if (op == null) {

      return;
    }

    op.invoke(this, operator, operands);
  }