Magento 2: Pdf - Add New PageHow to change save path of PDF files in magento 2Overriding Invoice /...
Comparing two arrays of unequal length
How can i do a custom maintenance message on magento 2.2.4
Traveling through the asteriod belt?
Use two 8s and two 3s to make the number 24
What does it mean for a caliber to be flat shooting?
When can a QA tester start his job?
Why did the villain in the first Men in Black movie care about Earth's Cockroaches?
What are the exceptions to Natural Selection?
kill -0 <PID> は何をするのでしょうか?
use of 4/2 chord more compelling than root position?
Porting Linux to another platform requirements
Why exactly do action photographers need high fps burst cameras?
What is the purpose of easy combat scenarios that don't need resource expenditure?
Why did Democrats in the Senate oppose the Born-Alive Abortion Survivors Protection Act (2019 S.130)?
Can a person refuse a presidential pardon?
Why are the books in the Game of Thrones citadel library shelved spine inwards?
How did Ancient Greek 'πυρ' become English 'fire?'
Which one of these password policies are more secure?
How to deal with an incendiary email that was recalled
Can a hotel cancel a confirmed reservation?
Quickly creating a sparse array
What's a good word to describe a public place that looks like it wouldn't be rough?
Publishing research using outdated methods
How do you funnel food off a cutting board?
Magento 2: Pdf - Add New Page
How to change save path of PDF files in magento 2Overriding Invoice / Interceptor, modifying the PDF generation for an Invoice orderMagento 2 add prefix in Invoice numberdisplay brand column invoice PDFMagento 2 : How to add horizontal lines to separate the line items in sales invoice PDF ?Magento 2: PDF set page margins for InvoiceMagento 2 Adding Total Due and Total Paid to PDF orderMagento2 : Remove shipping charge and credit cart type and number from order invoiceMagento 2: Set table structure in order invoice pdfget invoice item using order_item_id in magento 2
I want to add custom image in a invoice pdf. The image to display is from my custom table based on order id. I am able to add the image in pdf using the below code.
app/code/Vendor/Module/etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference type="MagentoSalesModelOrderPdfInvoice"
for="VendorModuleModelOrderPdfInvoice"/>
</config>
app/code/Vendor/Module/Model/Order/Pdf/Invoice.php
<?php
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace VendorModuleModelOrderPdf;
use MagentoSalesModelOrderPdfConfig;
/**
* Sales Order Invoice PDF model
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class Invoice extends MagentoSalesModelOrderPdfInvoice
{
private $ordermoduleCollectionFactory;
private $directoryList;
private $filesystem;
public function __construct(
MagentoPaymentHelperData $paymentData,
MagentoFrameworkStdlibStringUtils $string,
MagentoFrameworkAppConfigScopeConfigInterface $scopeConfig,
VendorModuleModelResourceModelOrdermoduleGridCollectionFactory $ordermoduleCollectionFactory,
MagentoFrameworkFilesystem $filesystem,
Config $pdfConfig,
MagentoSalesModelOrderPdfTotalFactory $pdfTotalFactory,
MagentoSalesModelOrderPdfItemsFactory $pdfItemsFactory,
MagentoFrameworkStdlibDateTimeTimezoneInterface $localeDate,
MagentoFrameworkTranslateInlineStateInterface $inlineTranslation,
MagentoSalesModelOrderAddressRenderer $addressRenderer,
MagentoStoreModelStoreManagerInterface $storeManager,
MagentoFrameworkLocaleResolverInterface $localeResolver,
MagentoFrameworkFilesystemDirectoryList $directoryList,
array $data = []
) {
parent::__construct(
$paymentData,
$string,
$scopeConfig,
$filesystem,
$pdfConfig,
$pdfTotalFactory,
$pdfItemsFactory,
$localeDate,
$inlineTranslation,
$addressRenderer,
$storeManager,
$localeResolver,
$data
);
$this->filesystem = $filesystem;
$this->directoryList = $directoryList;
$this->ordermoduleCollectionFactory = $ordermoduleCollectionFactory;
}
public function getPdf($invoices = [])
{
$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()) {
$this->_localeResolver->emulate($invoice->getStoreId());
$this->_storeManager->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,
$this->_scopeConfig->isSetFlag(
self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID,
MagentoStoreModelScopeInterface::SCOPE_STORE,
$order->getStoreId()
)
);
/* Add document text and number */
$this->insertDocumentNumber($page, __('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()) {
$this->_localeResolver->revert();
}
}
$orderId = $order->getId();
$module = $this->getAvailableModule($orderId);
if ($module != '') {
$this->insertConditions($page,$module);
}
$this->_afterGetPdf();
return $pdf;
}
public function insertConditions($page,$module)
{
$module =$$module //custom image
$image = Zend_Pdf_Image::imageWithPath($imageFile,$imageWidth,$imageHeight);
$y=$pdf->y - $imageHeight /3;
$page->drawImage($image, 35,$y, 35+ $imageWidth / 2, $y + $imageHeight/2);
}
public function getAvailableModule($orderId)
{
$collection = $this->ordermoduleCollectionFactory->create()
->addFieldToFilter('order_id', $orderId)
->addFieldToFilter('main_table.dealer_id', array('neq' => -1));
$image = '';
foreach($collection as $col) {
$image = $col->getModule();
}
if (!is_null($image)) {
try
{
$imagePath = '/modulefiles/'.$image;
$media_dir = $this->filesystem->getDirectoryRead(MagentoFrameworkAppFilesystemDirectoryList::MEDIA);
if ($media_dir->isFile($imagePath)) {
return $media_dir->getAbsolutePath($imagePath);
}
else
return null;
} catch (Exception $e) {
return false;
}
}
}
public function newPage(array $settings = [])
{
/* 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;
}
}
The issue is:
Invoice with a single item in pdf -> my image is displaying properly
Invoice with multiple items in order -> don't have space in first page. So displaying as
http://i.prntscr.com/CRm-KGvjSimZCFDj2TcLEQ.png
So I have added new page function $page = $this->newPage();
in function insertConditions()
But now my custom image is always showing n the second page. Even if we have space remaining in the first page.
How can I solve this:adding new page only when no remaining space in the first page.
magento2 page invoice-pdf new
add a comment |
I want to add custom image in a invoice pdf. The image to display is from my custom table based on order id. I am able to add the image in pdf using the below code.
app/code/Vendor/Module/etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference type="MagentoSalesModelOrderPdfInvoice"
for="VendorModuleModelOrderPdfInvoice"/>
</config>
app/code/Vendor/Module/Model/Order/Pdf/Invoice.php
<?php
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace VendorModuleModelOrderPdf;
use MagentoSalesModelOrderPdfConfig;
/**
* Sales Order Invoice PDF model
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class Invoice extends MagentoSalesModelOrderPdfInvoice
{
private $ordermoduleCollectionFactory;
private $directoryList;
private $filesystem;
public function __construct(
MagentoPaymentHelperData $paymentData,
MagentoFrameworkStdlibStringUtils $string,
MagentoFrameworkAppConfigScopeConfigInterface $scopeConfig,
VendorModuleModelResourceModelOrdermoduleGridCollectionFactory $ordermoduleCollectionFactory,
MagentoFrameworkFilesystem $filesystem,
Config $pdfConfig,
MagentoSalesModelOrderPdfTotalFactory $pdfTotalFactory,
MagentoSalesModelOrderPdfItemsFactory $pdfItemsFactory,
MagentoFrameworkStdlibDateTimeTimezoneInterface $localeDate,
MagentoFrameworkTranslateInlineStateInterface $inlineTranslation,
MagentoSalesModelOrderAddressRenderer $addressRenderer,
MagentoStoreModelStoreManagerInterface $storeManager,
MagentoFrameworkLocaleResolverInterface $localeResolver,
MagentoFrameworkFilesystemDirectoryList $directoryList,
array $data = []
) {
parent::__construct(
$paymentData,
$string,
$scopeConfig,
$filesystem,
$pdfConfig,
$pdfTotalFactory,
$pdfItemsFactory,
$localeDate,
$inlineTranslation,
$addressRenderer,
$storeManager,
$localeResolver,
$data
);
$this->filesystem = $filesystem;
$this->directoryList = $directoryList;
$this->ordermoduleCollectionFactory = $ordermoduleCollectionFactory;
}
public function getPdf($invoices = [])
{
$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()) {
$this->_localeResolver->emulate($invoice->getStoreId());
$this->_storeManager->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,
$this->_scopeConfig->isSetFlag(
self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID,
MagentoStoreModelScopeInterface::SCOPE_STORE,
$order->getStoreId()
)
);
/* Add document text and number */
$this->insertDocumentNumber($page, __('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()) {
$this->_localeResolver->revert();
}
}
$orderId = $order->getId();
$module = $this->getAvailableModule($orderId);
if ($module != '') {
$this->insertConditions($page,$module);
}
$this->_afterGetPdf();
return $pdf;
}
public function insertConditions($page,$module)
{
$module =$$module //custom image
$image = Zend_Pdf_Image::imageWithPath($imageFile,$imageWidth,$imageHeight);
$y=$pdf->y - $imageHeight /3;
$page->drawImage($image, 35,$y, 35+ $imageWidth / 2, $y + $imageHeight/2);
}
public function getAvailableModule($orderId)
{
$collection = $this->ordermoduleCollectionFactory->create()
->addFieldToFilter('order_id', $orderId)
->addFieldToFilter('main_table.dealer_id', array('neq' => -1));
$image = '';
foreach($collection as $col) {
$image = $col->getModule();
}
if (!is_null($image)) {
try
{
$imagePath = '/modulefiles/'.$image;
$media_dir = $this->filesystem->getDirectoryRead(MagentoFrameworkAppFilesystemDirectoryList::MEDIA);
if ($media_dir->isFile($imagePath)) {
return $media_dir->getAbsolutePath($imagePath);
}
else
return null;
} catch (Exception $e) {
return false;
}
}
}
public function newPage(array $settings = [])
{
/* 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;
}
}
The issue is:
Invoice with a single item in pdf -> my image is displaying properly
Invoice with multiple items in order -> don't have space in first page. So displaying as
http://i.prntscr.com/CRm-KGvjSimZCFDj2TcLEQ.png
So I have added new page function $page = $this->newPage();
in function insertConditions()
But now my custom image is always showing n the second page. Even if we have space remaining in the first page.
How can I solve this:adding new page only when no remaining space in the first page.
magento2 page invoice-pdf new
add a comment |
I want to add custom image in a invoice pdf. The image to display is from my custom table based on order id. I am able to add the image in pdf using the below code.
app/code/Vendor/Module/etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference type="MagentoSalesModelOrderPdfInvoice"
for="VendorModuleModelOrderPdfInvoice"/>
</config>
app/code/Vendor/Module/Model/Order/Pdf/Invoice.php
<?php
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace VendorModuleModelOrderPdf;
use MagentoSalesModelOrderPdfConfig;
/**
* Sales Order Invoice PDF model
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class Invoice extends MagentoSalesModelOrderPdfInvoice
{
private $ordermoduleCollectionFactory;
private $directoryList;
private $filesystem;
public function __construct(
MagentoPaymentHelperData $paymentData,
MagentoFrameworkStdlibStringUtils $string,
MagentoFrameworkAppConfigScopeConfigInterface $scopeConfig,
VendorModuleModelResourceModelOrdermoduleGridCollectionFactory $ordermoduleCollectionFactory,
MagentoFrameworkFilesystem $filesystem,
Config $pdfConfig,
MagentoSalesModelOrderPdfTotalFactory $pdfTotalFactory,
MagentoSalesModelOrderPdfItemsFactory $pdfItemsFactory,
MagentoFrameworkStdlibDateTimeTimezoneInterface $localeDate,
MagentoFrameworkTranslateInlineStateInterface $inlineTranslation,
MagentoSalesModelOrderAddressRenderer $addressRenderer,
MagentoStoreModelStoreManagerInterface $storeManager,
MagentoFrameworkLocaleResolverInterface $localeResolver,
MagentoFrameworkFilesystemDirectoryList $directoryList,
array $data = []
) {
parent::__construct(
$paymentData,
$string,
$scopeConfig,
$filesystem,
$pdfConfig,
$pdfTotalFactory,
$pdfItemsFactory,
$localeDate,
$inlineTranslation,
$addressRenderer,
$storeManager,
$localeResolver,
$data
);
$this->filesystem = $filesystem;
$this->directoryList = $directoryList;
$this->ordermoduleCollectionFactory = $ordermoduleCollectionFactory;
}
public function getPdf($invoices = [])
{
$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()) {
$this->_localeResolver->emulate($invoice->getStoreId());
$this->_storeManager->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,
$this->_scopeConfig->isSetFlag(
self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID,
MagentoStoreModelScopeInterface::SCOPE_STORE,
$order->getStoreId()
)
);
/* Add document text and number */
$this->insertDocumentNumber($page, __('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()) {
$this->_localeResolver->revert();
}
}
$orderId = $order->getId();
$module = $this->getAvailableModule($orderId);
if ($module != '') {
$this->insertConditions($page,$module);
}
$this->_afterGetPdf();
return $pdf;
}
public function insertConditions($page,$module)
{
$module =$$module //custom image
$image = Zend_Pdf_Image::imageWithPath($imageFile,$imageWidth,$imageHeight);
$y=$pdf->y - $imageHeight /3;
$page->drawImage($image, 35,$y, 35+ $imageWidth / 2, $y + $imageHeight/2);
}
public function getAvailableModule($orderId)
{
$collection = $this->ordermoduleCollectionFactory->create()
->addFieldToFilter('order_id', $orderId)
->addFieldToFilter('main_table.dealer_id', array('neq' => -1));
$image = '';
foreach($collection as $col) {
$image = $col->getModule();
}
if (!is_null($image)) {
try
{
$imagePath = '/modulefiles/'.$image;
$media_dir = $this->filesystem->getDirectoryRead(MagentoFrameworkAppFilesystemDirectoryList::MEDIA);
if ($media_dir->isFile($imagePath)) {
return $media_dir->getAbsolutePath($imagePath);
}
else
return null;
} catch (Exception $e) {
return false;
}
}
}
public function newPage(array $settings = [])
{
/* 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;
}
}
The issue is:
Invoice with a single item in pdf -> my image is displaying properly
Invoice with multiple items in order -> don't have space in first page. So displaying as
http://i.prntscr.com/CRm-KGvjSimZCFDj2TcLEQ.png
So I have added new page function $page = $this->newPage();
in function insertConditions()
But now my custom image is always showing n the second page. Even if we have space remaining in the first page.
How can I solve this:adding new page only when no remaining space in the first page.
magento2 page invoice-pdf new
I want to add custom image in a invoice pdf. The image to display is from my custom table based on order id. I am able to add the image in pdf using the below code.
app/code/Vendor/Module/etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference type="MagentoSalesModelOrderPdfInvoice"
for="VendorModuleModelOrderPdfInvoice"/>
</config>
app/code/Vendor/Module/Model/Order/Pdf/Invoice.php
<?php
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace VendorModuleModelOrderPdf;
use MagentoSalesModelOrderPdfConfig;
/**
* Sales Order Invoice PDF model
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class Invoice extends MagentoSalesModelOrderPdfInvoice
{
private $ordermoduleCollectionFactory;
private $directoryList;
private $filesystem;
public function __construct(
MagentoPaymentHelperData $paymentData,
MagentoFrameworkStdlibStringUtils $string,
MagentoFrameworkAppConfigScopeConfigInterface $scopeConfig,
VendorModuleModelResourceModelOrdermoduleGridCollectionFactory $ordermoduleCollectionFactory,
MagentoFrameworkFilesystem $filesystem,
Config $pdfConfig,
MagentoSalesModelOrderPdfTotalFactory $pdfTotalFactory,
MagentoSalesModelOrderPdfItemsFactory $pdfItemsFactory,
MagentoFrameworkStdlibDateTimeTimezoneInterface $localeDate,
MagentoFrameworkTranslateInlineStateInterface $inlineTranslation,
MagentoSalesModelOrderAddressRenderer $addressRenderer,
MagentoStoreModelStoreManagerInterface $storeManager,
MagentoFrameworkLocaleResolverInterface $localeResolver,
MagentoFrameworkFilesystemDirectoryList $directoryList,
array $data = []
) {
parent::__construct(
$paymentData,
$string,
$scopeConfig,
$filesystem,
$pdfConfig,
$pdfTotalFactory,
$pdfItemsFactory,
$localeDate,
$inlineTranslation,
$addressRenderer,
$storeManager,
$localeResolver,
$data
);
$this->filesystem = $filesystem;
$this->directoryList = $directoryList;
$this->ordermoduleCollectionFactory = $ordermoduleCollectionFactory;
}
public function getPdf($invoices = [])
{
$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()) {
$this->_localeResolver->emulate($invoice->getStoreId());
$this->_storeManager->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,
$this->_scopeConfig->isSetFlag(
self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID,
MagentoStoreModelScopeInterface::SCOPE_STORE,
$order->getStoreId()
)
);
/* Add document text and number */
$this->insertDocumentNumber($page, __('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()) {
$this->_localeResolver->revert();
}
}
$orderId = $order->getId();
$module = $this->getAvailableModule($orderId);
if ($module != '') {
$this->insertConditions($page,$module);
}
$this->_afterGetPdf();
return $pdf;
}
public function insertConditions($page,$module)
{
$module =$$module //custom image
$image = Zend_Pdf_Image::imageWithPath($imageFile,$imageWidth,$imageHeight);
$y=$pdf->y - $imageHeight /3;
$page->drawImage($image, 35,$y, 35+ $imageWidth / 2, $y + $imageHeight/2);
}
public function getAvailableModule($orderId)
{
$collection = $this->ordermoduleCollectionFactory->create()
->addFieldToFilter('order_id', $orderId)
->addFieldToFilter('main_table.dealer_id', array('neq' => -1));
$image = '';
foreach($collection as $col) {
$image = $col->getModule();
}
if (!is_null($image)) {
try
{
$imagePath = '/modulefiles/'.$image;
$media_dir = $this->filesystem->getDirectoryRead(MagentoFrameworkAppFilesystemDirectoryList::MEDIA);
if ($media_dir->isFile($imagePath)) {
return $media_dir->getAbsolutePath($imagePath);
}
else
return null;
} catch (Exception $e) {
return false;
}
}
}
public function newPage(array $settings = [])
{
/* 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;
}
}
The issue is:
Invoice with a single item in pdf -> my image is displaying properly
Invoice with multiple items in order -> don't have space in first page. So displaying as
http://i.prntscr.com/CRm-KGvjSimZCFDj2TcLEQ.png
So I have added new page function $page = $this->newPage();
in function insertConditions()
But now my custom image is always showing n the second page. Even if we have space remaining in the first page.
How can I solve this:adding new page only when no remaining space in the first page.
magento2 page invoice-pdf new
magento2 page invoice-pdf new
asked 5 mins ago
VindhujaVindhuja
665520
665520
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f263865%2fmagento-2-pdf-add-new-page%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f263865%2fmagento-2-pdf-add-new-page%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown