public function printInvoice()
 {
     $senderData = $this->senderData;
     $recipientData = $this->recipientData;
     if ($this->printStyle == 'receipt') {
         $defaultSubject = isset($senderData['receipt_email_subject']) ? $senderData['receipt_email_subject'] : '';
         $defaultBody = isset($senderData['receipt_email_body']) ? $senderData['receipt_email_body'] : '';
     } else {
         $defaultSubject = isset($senderData['invoice_email_subject']) ? $senderData['invoice_email_subject'] : '';
         $defaultBody = isset($senderData['invoice_email_body']) ? $senderData['invoice_email_body'] : '';
     }
     $this->emailFrom = getRequest('email_from', isset($senderData['invoice_email_from']) ? $senderData['invoice_email_from'] : (isset($senderData['email']) ? $senderData['email'] : ''));
     $this->emailTo = getRequest('email_to', isset($recipientData['email']) ? $recipientData['email'] : '');
     $this->emailCC = getRequest('email_cc', '');
     $this->emailBCC = getRequest('email_bcc', isset($senderData['invoice_email_bcc']) ? $senderData['invoice_email_bcc'] : '');
     $this->emailSubject = $this->replacePlaceholders(getRequest('email_subject', $defaultSubject));
     $this->emailBody = $this->replacePlaceholders(getRequest('email_body', $defaultBody));
     $send = getRequest('email_send', '');
     if (!$send || !$this->emailFrom || !$this->emailTo || !$this->emailSubject || !$this->emailBody) {
         $this->showEmailForm($send);
         return;
     }
     parent::printInvoice();
 }
 protected function initPDF()
 {
     parent::initPDF();
     $this->pdf->printFooterOnFirstPage = true;
 }
 public function __construct()
 {
     parent::__construct();
     // The normal invoice can be printed by a read-only user
     $this->readOnlySafe = true;
 }