_fileFactory = $fileFactory; $this->resultForwardFactory = $resultForwardFactory; parent::__construct($context); } /** * @return ResponseInterface|\Magento\Backend\Model\View\Result\Forward * @throws \Exception */ public function execute() { $shipmentId = $this->getRequest()->getParam('shipment_id'); if ($shipmentId) { $shipment = $this->_objectManager->create(\Magento\Sales\Model\Order\Shipment::class)->load($shipmentId); if ($shipment) { $pdf = $this->_objectManager->create( \Magento\Sales\Model\Order\Pdf\Shipment::class )->getPdf( [$shipment] ); $date = $this->_objectManager->get( \Magento\Framework\Stdlib\DateTime\DateTime::class )->date('Y-m-d_H-i-s'); $fileContent = ['type' => 'string', 'value' => $pdf->render(), 'rm' => true]; return $this->_fileFactory->create( 'packingslip' . $date . '.pdf', $fileContent, DirectoryList::VAR_DIR, 'application/pdf' ); } } else { /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */ $resultForward = $this->resultForwardFactory->create(); return $resultForward->forward('noroute'); } } }