Magento 1.9 – How to add custom details in invoice print PDF?

Invoice PDF print file:

/app/code/core/Mage/Sales/Model/Order/Pdf/invoice.php

<?php /** * Magento * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade Magento to newer * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magento.com for more information. * * @category Mage * @package Mage_Sales * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ /** * Sales Order Invoice PDF model * * @category Mage * @package Mage_Sales * @author Magento Core Team <[email protected]> */ class Mage_Sales_Model_Order_Pdf_Invoice extends Mage_Sales_Model_Order_Pdf_Abstract { /** * Draw header for item table * * @param Zend_Pdf_Page $page * @return void */ protected function _drawHeader(Zend_Pdf_Page $page) { /* Add table head */ $this->_setFontRegular($page, 10); $page->setFillColor(new Zend_Pdf_Color_RGB(0.93, 0.92, 0.92)); $page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5)); $page->setLineWidth(0.5); $page->drawRectangle(25, $this->y, 570, $this->y -15); $this->y -= 10; $page->setFillColor(new Zend_Pdf_Color_RGB(0, 0, 0)); //columns headers $lines[0][] = array( 'text' => Mage::helper('sales')->__('Products'), 'feed' => 35 ); $lines[0][] = array( 'text' => Mage::helper('sales')->__('SKU'), 'feed' => 290, 'align' => 'right' ); $lines[0][] = array( 'text' => Mage::helper('sales')->__('Qty'), 'feed' => 435, 'align' => 'right' ); $lines[0][] = array( 'text' => Mage::helper('sales')->__('Price'), 'feed' => 360, 'align' => 'right' ); // $lines[0][] = array( // 'text' => Mage::helper('sales')->__('Tax'), // 'feed' => 495, // 'align' => 'right' // ); $lines[0][] = array( 'text' => Mage::helper('sales')->__('Subtotal'), 'feed' => 565, 'align' => 'right' ); $lineBlock = array( 'lines' => $lines, 'height' => 5 ); $this->drawLineBlocks($page, array($lineBlock), array('table_header' => true)); $page->setFillColor(new Zend_Pdf_Color_GrayScale(0)); $this->y -= 20; } /** * Return PDF document * * @param array $invoices * @return Zend_Pdf */ public function getPdf($invoices = array()) { $this->_beforeGetPdf(); $this->_initRenderer('invoice'); $pdf = new Zend_Pdf(); $this->_setPdf($pdf); $style = new Zend_Pdf_Style(); $this->_setFontBold($style, 10); foreach ($invoices as $invoice) { if ($invoice->getStoreId()) { Mage::app()->getLocale()->emulate($invoice->getStoreId()); Mage::app()->setCurrentStore($invoice->getStoreId()); } $page = $this->newPage(); $order = $invoice->getOrder(); /* Add image */ $this->insertLogo($page, $invoice->getStore()); /* Add address */ $this->insertAddress($page, $invoice->getStore()); /* Add head */ $this->insertOrder( $page, $order, Mage::getStoreConfigFlag(self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID, $order->getStoreId()) ); /* Add document text and number */ $this->insertDocumentNumber( $page, Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId() ); /* Add table */ $this->_drawHeader($page); /* Add body */ foreach ($invoice->getAllItems() as $item){ if ($item->getOrderItem()->getParentItem()) { continue; } /* Draw item */ $this->_drawItem($item, $page, $order); $page = end($pdf->pages); } /* Add totals */ $this->insertTotals($page, $invoice); if ($invoice->getStoreId()) { Mage::app()->getLocale()->revert(); } } $this->_afterGetPdf(); return $pdf; } /** * Create new page and assign to PDF object * * @param array $settings * @return Zend_Pdf_Page */ public function newPage(array $settings = array()) { /* Add new table head */ $page = $this->_getPdf()->newPage(Zend_Pdf_Page::SIZE_A4); $this->_getPdf()->pages[] = $page; $this->y = 800; if (!empty($settings['table_header'])) { $this->_drawHeader($page); } return $page; } } 

How to add following details,

Order id, Shipping Address, Store address

Screenshot: https://snipboard.io/dCTYWi.jpg

submitted by /u/aveeva7
[link] [comments]