public static function printLabels($printout_format) { $module_instance = Module::getinstanceByName('dpdpoland'); if ($package_ids = Tools::getValue('PackagesBox')) { $package = new DpdPolandPackage(); $separated_packages = DpdPolandPackage::separatePackagesBySession($package_ids); $international_packages = $separated_packages['INTERNATIONAL']; $domestic_packages = $separated_packages['DOMESTIC']; if ($international_packages) { $result = self::createLabelPDFDocument($package, $module_instance, $international_packages, $printout_format, 'international_labels.pdf'); if ($result !== true) { return $module_instance->outputHTML($result); } } if ($domestic_packages) { $result = self::createLabelPDFDocument($package, $module_instance, $domestic_packages, $printout_format, 'domestic_labels.pdf'); if ($result !== true) { return $module_instance->outputHTML($result); } } include_once _PS_MODULE_DIR_ . 'dpdpoland/libraries/PDFMerger/PDFMerger.php'; $pdf = new PDFMerger(); if ($international_packages && $domestic_packages) { if (file_exists(_PS_MODULE_DIR_ . 'dpdpoland/labels_multisession.pdf') && !unlink(_PS_MODULE_DIR_ . 'dpdpoland/labels_multisession.pdf')) { $error_message = $module_instance->l('Could not delete old PDF file. Please check module folder permissions', self::FILENAME); $error = $module_instance->displayError($error_message); return $module_instance->outputHTML($error); } $international_pdf_path = _PS_MODULE_DIR_ . 'dpdpoland/international_labels.pdf'; $domestic_pdf_path = _PS_MODULE_DIR_ . 'dpdpoland/domestic_labels.pdf'; $multisession_pdf_path = _PS_MODULE_DIR_ . 'dpdpoland/labels_multisession.pdf'; $pdf->addPDF($international_pdf_path, 'all')->addPDF($domestic_pdf_path, 'all')->merge('file', $multisession_pdf_path); } ob_end_clean(); header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="labels_' . time() . '.pdf"'); if ($international_packages && $domestic_packages) { readfile(_PS_MODULE_DIR_ . 'dpdpoland/labels_multisession.pdf'); } elseif ($international_packages) { readfile(_PS_MODULE_DIR_ . 'dpdpoland/international_labels.pdf'); } elseif ($domestic_packages) { readfile(_PS_MODULE_DIR_ . 'dpdpoland/domestic_labels.pdf'); } else { $error_message = $module_instance->l('No labels were found', self::FILENAME); $error = $module_instance->displayError($error_message); return $module_instance->outputHTML($error); } self::deletePDFFiles(); } }