Вопрос по admin, pdf, magento – Как создать PDF в magento?

4

Я хочу создать PDF в magento из списка продуктов в бэкэнд / админ. Я не знаю, как это сделать, и вещи, которые я нахожу в Интернете, не очень полезны. Надеюсь, кто-нибудь может мне помочь.

гр

edit

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);
}

это мой контроллер

Если вы найдете ответ на свой вопрос, примите его :)stackoverflow.com/faq#howtoask ilyes kooli

Ваш Ответ

1   ответ
10

Пожалуйста, обратите внимание:

  • This is not the good way to do it, because it overrides Magento core files, you have to override those files within your modeule.
  • This is not a complete solution but a tip to make you understand and go further yourself. (this will print only headers, no data)

Я помогу вам добавить функцию экспорта в PDF для клиентов (по умолчанию есть CSV и Excel)

редактироватьapp/code/core/Mage/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();
}

редактироватьapp/code/core/Mage/Adminhtml/controllers/CustomerController.php, добавьте следующую функцию

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

редактироватьapp/code/core/Mage/Adminhtml/Block/Customer/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.

THX это очень поможет, теперь мне нужно только узнать, как добавить данные :) Wouter
Опубликовать код, который вызвал ошибку
это не я, даже не мог голосовать Wouter
Не могу поверить, что кто-то отверг меня за этот ответ !!!! Могу я узнать почему?
Скорее всего, он дал указание изменить основные файлы. (то, что никогда не должно быть сделано в Magento)

Похожие вопросы