Bonjour,
Je me suis repenché sur ce problème ce matin et j'ai finalement réussi, j'y apporte donc ma solution pour ceux qui aurait un problème similaire.
$parser = $this->container->get("thelia.parser");
$parser->setTemplateDefinition(TemplateHelper::getInstance()->getActivePdfTemplate());
$html = $parser->render(ConfigQuery::read('pdf_invoice_file', 'invoice').'.html', array('order_id' => $order_id));
$pdfEvent = new PdfEvent($html);
$action = new Pdf();
$action->generatePdf($pdfEvent);
$generatedPdf = $pdfEvent->getPdf();
$handle= fopen("test.pdf", "c+");
fwrite($handle, $generatedPdf);
fclose($handle);
$instance = \Swift_Attachment::fromPath("test.pdf");
$from = array(ConfigQuery::getStoreEmail() => ConfigQuery::getStoreName());
$to = array( $form->get("email")->getData());
$message = $this->getMailer()->createEmailMessage("xxx_contact",
$from, $to, $messageParameters, $locale)->attach($instance);
$this->getMailer()->send($message);
unlink("test.pdf");
Je génère un Pdf que je récupère dans une variable, je mets le contenu de cette variable dans un fichier pdf que je crée puis que je supprime à la fin de mon code.
Bon le code ci-dessus c'est celui de mon formulaire de contact mais il n'y a pas de raison que ça marche différemment pour l'envoi du mail après la commande passée.
En tout cas merci Roadster pour m'avoir aiguillé pour la fonction attach() et l'idée du fichier temporaire !