public function generateHtml2pdf($sUID, $aFields, $sPath, $sFilename, $sContent, $sLandscape = false, $aProperties = array()) { // define("MAX_FREE_FRACTION", 1); define('PATH_OUTPUT_FILE_DIRECTORY', PATH_HTML . 'files/' . $_SESSION['APPLICATION'] . '/outdocs/'); G::verifyPath(PATH_OUTPUT_FILE_DIRECTORY, true); require_once PATH_THIRDPARTY . 'html2pdf/html2pdf.class.php'; // define Save file $sOutput = 2; $sOrientation = $sLandscape == false ? 'P' : 'L'; $sLang = defined('SYS_LANG') ? SYS_LANG : 'en'; $sMedia = $aProperties['media']; // margin define define("MINIMAL_MARGIN", 15); $marges = array(MINIMAL_MARGIN, MINIMAL_MARGIN, MINIMAL_MARGIN, MINIMAL_MARGIN); if (isset($aProperties['margins'])) { // Default marges (left, top, right, bottom) $margins = $aProperties['margins']; $margins['left'] = $margins['left'] > 0 ? $margins['left'] : MINIMAL_MARGIN; $margins['top'] = $margins['top'] > 0 ? $margins['top'] : MINIMAL_MARGIN; $margins['right'] = $margins['right'] > 0 ? $margins['right'] : MINIMAL_MARGIN; $margins['bottom'] = $margins['bottom'] > 0 ? $margins['bottom'] : MINIMAL_MARGIN; $marges = array($margins['left'], $margins['top'], $margins['right'], $margins['bottom']); } $html2pdf = new HTML2PDF($sOrientation, $sMedia, $sLang, true, 'UTF-8', $marges); $html2pdf->pdf->SetAuthor($aFields['USR_USERNAME']); $html2pdf->pdf->SetTitle('Processmaker'); $html2pdf->pdf->SetSubject($sFilename); $html2pdf->pdf->SetCompression(true); //$html2pdf->pdf->SetKeywords('HTML2PDF, TCPDF, processmaker'); if (isset($aProperties['pdfSecurity'])) { $pdfSecurity = $aProperties['pdfSecurity']; $userPass = G::decrypt($pdfSecurity['openPassword'], $sUID); $ownerPass = $pdfSecurity['ownerPassword'] != '' ? G::decrypt($pdfSecurity['ownerPassword'], $sUID) : null; $permissions = explode("|", $pdfSecurity['permissions']); $html2pdf->pdf->SetProtection($permissions, $userPass, $ownerPass); } $html2pdf->setTestTdInOnePage(false); $html2pdf->setTestIsImage(false); $html2pdf->setTestIsDeprecated(false); $html2pdf->writeHTML($html2pdf->getHtmlFromPage($sContent)); switch ($sOutput) { case 0: // Vrew browser $html2pdf->Output($sPath . $sFilename . '.pdf', 'I'); break; case 1: // Donwnload $html2pdf->Output($sPath . $sFilename . '.pdf', 'D'); break; case 2: // Save file $html2pdf->Output($sPath . $sFilename . '.pdf', 'F'); break; } copy($sPath . $sFilename . '.html', PATH_OUTPUT_FILE_DIRECTORY . $sFilename . '.html'); copy(PATH_OUTPUT_FILE_DIRECTORY . $sFilename . '.pdf', $sPath . $sFilename . '.pdf'); unlink(PATH_OUTPUT_FILE_DIRECTORY . $sFilename . '.pdf'); unlink(PATH_OUTPUT_FILE_DIRECTORY . $sFilename . '.html'); }