2012-06-06 52 views
3

我想在後端/ admin的產品列表的magento中創建pdf。 我不知道該怎麼做,我在網上找到的東西並不是那麼有用。 希望有人能幫助我。如何在magento中創建pdf?

編輯

class Wouterkamphuisdotcom_Web_Adminhtml_WebController extends Mage_Adminhtml_Controller_action { 

protected function _initAction() { 
    $this->loadLayout() 
      ->_setActiveMenu('web/items') 
      ->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager')); 

    return $this; 
} 
public function exportPdfAction(){ 
    $fileName = 'customers.pdf';   
    $content = $this->getLayout()->createBlock('Web/Web_Grid')->getPdfFile(); 
    $this->_prepareDownloadResponse($fileName, $content); 
} 

這是我的控制器

+0

如果你找到一個回答你的問題接受了:) http://stackoverflow.com/faq#howtoask – skafandri

回答

10

請注意:

  • 這不是好辦法做到這一點,因爲它覆蓋Magento核心f iles,你必須覆蓋你的模型中的這些文件。
  • 這不是一個完整的解決方案但小費讓你瞭解和進一步去自己。 (這將只打印頭,無數據)

我會引導你(默認情況下有CSV和Excel)將PDF導出功能爲客戶

編輯應用程序/代碼/核心/法師/ Adminhtml /Block/Widget/Grid.php,添加以下功能

public function getPdfFile(){ 
    $this->_isExport = true; 
    $this->_prepareGrid(); 
    $this->getCollection()->getSelect()->limit(); 
    $this->getCollection()->setPageSize(0); 
    $this->getCollection()->load(); 
    $this->_afterLoadCollection(); 

    $pdf = new Zend_Pdf(); 
    $page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4); 
    $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES); 
    $page->setFont($font, 12); 
    $width = $page->getWidth(); 
    $i=0; 
    foreach ($this->_columns as $column) { 
     if (!$column->getIsSystem()) { 
      $i+=10; 
      $header = $column->getExportHeader();     
      $page->drawText($header, $i, $page->getHeight()-20);     
      $width = $font->widthForGlyph($font->glyphNumberForCharacter($header)); 
      $i+=($width/$font->getUnitsPerEm()*12)*strlen($header)+10; 
     } 
    } 
    $pdf->pages[] = $page; 
    return $pdf->render(); 
} 

編輯應用程序/代碼/核心/法師/ Adminhtml /控制器/ CustomerController.php,添加以下功能

public function exportPdfAction(){ 
    $fileName = 'customers.pdf';   
    $content = $this->getLayout()->createBlock('adminhtml/customer_grid')->getPdfFile(); 
    $this->_prepareDownloadResponse($fileName, $content); 
} 

編輯應用程序/代碼/核心/法師/ Adminhtml /座/客戶/ Grid.php,找到

$this->addExportType('*/*/exportCsv', Mage::helper('customer')->__('CSV')); 
    $this->addExportType('*/*/exportXml', Mage::helper('customer')->__('Excel XML')); 

添加PDF導出

$this->addExportType('*/*/exportCsv', Mage::helper('customer')->__('CSV')); 
    $this->addExportType('*/*/exportXml', Mage::helper('customer')->__('Excel XML')); 
    $this->addExportType('*/*/exportPdf', Mage::helper('customer')->__('PDF')); 

現在刷新管理,您可以將客戶導出爲PDF。

+0

THX這將有很大的幫助,現在我只需要找出如何添加數據:) – Wouter

+0

燦不相信有人低估了我的這個答案!我能知道爲什麼嗎? – skafandri

+0

那不是我,還沒有選舉權但 – Wouter