コード例 #1
0
 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');
 }