Descarga corrupta de .docx usando phpdocx

Tengo un proyecto en el que estamos utilizando phpdocx pro para generar un archivo .docx en las plantillas. Puedo ingresar los datos en la plantilla con bastante facilidad, sin embargo, cuando el archivo se descarga y abre en MS Word 2010, el programa informa que el archivo no se puede abrir porque hay problemas con el contenido, los detalles son "El archivo está dañado y no se puede abrir ". Word puede reparar el documento, sin embargo, el problema sigue siendo que, en primer lugar, no debería estar dañado.

Así es como estoy generando el documento:

function generateUnitDesign(){
  if($this->populateRecords()){
      require_once dirname(__FILE__).'/phpdocx/classes/CreateDocx.inc';
      $filename = 'UnitDesignTemplate-'.str_replace(' ', '', $this->rec->title);
      //Create Document
      $document = new CreateDocx();
      $document->addTemplate(dirname(__FILE__).'/templates/unitdesigntemplate.docx');

      // Fill in text fields
      $document->addTemplateVariable('TITLE', $this->rec->title);
      $document->addTemplateVariable('CHALLENGE', $this->rec->challenge, 'html');
      $document->addTemplateVariable('HOOK', $this->rec->hook, 'html');
      $document->addTemplateVariable('RESEARCH', $this->rec->research, 'html');
      $document->addTemplateVariable('AUDIENCE', $this->rec->audience, 'html');
      $document->addTemplateVariable('SUMMARY', $this->rec->project_brief, 'html');
      $document->addTemplateVariable('RESOURCES', $this->rec->resources, 'html');
      $document->addTemplateVariable('REQUIREMENTS', $this->rec->requirements, 'html');
      $document->addTemplateVariable('SCAFFOLDING', $this->rec->scaffolding, 'html');

      $document->createDocx($filename);
      unset($document);
      header("Content-Type: application/vnd.ms-word");
      header("Content-Length: ".filesize($filename.'.docx'));
      header('Content-Disposition: attachment; filename='.$filename.'.docx');
      header('Content-Transfer-Encoding: binary');
      ob_clean();
      flush();
      readfile($filename.'.docx');
      unlink($filename.'.docx');
  }
}

Originalmente, estaba tratando de usar sucreateDocxAndDownload() función para obtener el archivo, pero dejaría una copia del archivo .docx en el servidor, lo que no era ideal. ¿Me estoy perdiendo de algo? ¿Hay alguien con más experiencia con phpdocx para echar una mano?

Editar: Bueno, me siento como un idiota. Después de reducir el problema a la parte del código que genera el archivo, finalmente abrí el archivo en un editor HEX y descubrí que el problema era que, después de que el archivo se publicara correctamente, la interfaz web agregaría el inicio de su código HTML al final de el archivo docx haciendo un archivo 'dañado'. Esta línea inmediatamente después de launlink() arreglado todo el asunto:

exit;

Pekka: Si desea responder esto con la nueva información, aceptaré su respuesta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta