среда, 6 апреля 2011 г.

symfony render PDF

public function executePdf(sfWebRequest $request)
  {
    $this->certificate = Doctrine_Core::getTable('Certificate')->findOneByToken(array($request->getParameter('token')));
    $this->forward404Unless($this->certificate);
  //$config = sfTCPDFPluginConfigHandler::loadConfig();
  // pdf object
  $pdf = new myPDF();

  // settings
  $pdf->SetFont("FreeSerif", "", 12);
  /*
  $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
  $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
  $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
  $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
  $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
*/
  //$pdf->setPrintHeader(false);
  $pdf->setPrintFooter(false);
  
  // init pdf doc
  //$pdf->AliasNbPages();
  $pdf->AddPage('L', array(132,66));
  $pdf->Cell(80, 10, "Certificate číslo: ". $this->certificate->token);

  $this->setLayout(false);
  // output
  $response = $this->getContext()->getResponse();
$response->clearHttpHeaders();
$response->setHttpHeader('Pragma', 'public');
$response->setHttpHeader('Cache-Control', '');
$response->setHttpHeader('Content-Type', 'application/pdf');
$response->setHttpHeader('Content-Disposition', 'attachment; filename="invoice.pdf"');
$response->setContent($pdf->Output());

return sfView::NONE;

//  return $pdf->Output();

  // Stop symfony process
 // throw new sfStopException();

  }
}

include '/var/www/oleg/slevy/plugins/sfTCPDFPlugin/lib/tcpdf/tcpdf.php';
// Extend the TCPDF class to create custom Header and Footer
//class MYPDF extends sfTCPDF {
class MYPDF extends TCPDF {


    //Page header
    public function Header() {
        // full background image
        // store current auto-page-break status
        $bMargin = $this->getBreakMargin();
        $auto_page_break = $this->AutoPageBreak;
        $this->SetAutoPageBreak(false, 0);
        $img_file = sfConfig::get('sf_web_dir') . '/images/bg_kupon.jpg';
        $this->Image($img_file, 0, 0, 132, 66, '', '', '', false, 300, '', false, false, 0);
        // restore auto-page-break status
        $this->SetAutoPageBreak($auto_page_break, $bMargin);
    }
}

Комментариев нет:

Отправить комментарий