code: public void stamp(WordprocessingMLPackage document, T contextRoot, OutputStream out) throws DocxStamperException {
      try {
        ProxyBuilder<T> proxyBuilder = addCustomInterfacesToContextRoot(contextRoot, this.config.getExpressionFunctions());
        replaceExpressions(document, proxyBuilder);
        processComments(document, proxyBuilder);
        document.save(out);
        commentProcessorRegistry.reset();
      } catch (DocxStamperException e) {
        throw e;
      } catch (Exception e) {
        throw new DocxStamperException(e);
      }
    }
docs: Same as stamp(InputStream, T, OutputStream) except that you may pass in a DOCX4J document as a template instead
  of an InputStream.
  
  @param document    the .docx template.
  @param contextRoot the context root object against which all expressions found in the template are evaluated.
  @param out         the output stream in which to write the resulting .docx document.
  @throws DocxStamperException in case of an error.