@OperationMethod
 public Blob run(DocumentModel targetDocument) throws Exception {
   TemplateBasedDocument renderable = targetDocument.getAdapter(TemplateBasedDocument.class);
   if (renderable != null) {
     if (store) {
       return renderable.renderAndStoreAsAttachment(templateName, save);
     } else {
       return renderable.renderWithTemplate(templateName);
     }
   } else {
     BlobHolder bh = targetDocument.getAdapter(BlobHolder.class);
     if (bh != null) {
       return bh.getBlob();
     } else {
       return null;
     }
   }
 }