|
Server IP : 127.0.0.1 / Your IP : 127.0.0.1 Web Server : Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3 System : Windows NT WIN-R7LTCC7BPLI 6.3 build 9200 (Windows Server 2012 R2 Datacenter Edition) i586 User : GerbangSIPAD ( 0) PHP Version : 5.6.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF Directory (0777) : C:/xampp5/htdocs/bhumie/upload/../protected/components/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
class PrintUtils extends CApplicationComponent{
public function executeViewPadReport($paramsInput, $fileJasper, $fileName, $reportPath = '')
{
include dirname(__FILE__) . '/Setting.php';
include dirname(__FILE__) . '/DBSetting.php';
require_once("http://" . $serverAddress . ":8080/JavaBridge/java/Java.inc");
$class = new JavaClass("java.lang.Class");
$class->forName("org.postgresql.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
$databaseAddress = "jdbc:postgresql://" . $databaseAddress . ":" . $port . "/" . $databaseName;
//var_dump($databaseAddress); exit();
$conn = $driverManager->getConnection($databaseAddress, $userName, $password);
$compileManager = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $compileManager->compileReport(realpath(Yii::app()->basePath . '/../report/' . $fileJasper));
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
//$paramsInput["SUBREPORT_DIR"] = $reportDirectory . $slash;
$paramsInput["SUBREPORT_DIR"] = $reportDirectory.$reportPath.$slash;
//$paramsInput["IMAGE_DIR"] = $padImageLogo . $slash;
$params = new Java("java.util.HashMap");
foreach ($paramsInput as $key => $value):
$params->put($key, $value);
endforeach;
$emptyDataSource = new Java("net.sf.jasperreports.engine.JREmptyDataSource");
//print_r($paramsInput);die;
$outputPath = realpath(Yii::app()->basePath).'/../tmp/'.$fileName.'.pdf';
$jasperPrint = $fillManager->fillReport($report, $params, $conn);
$exportManager = new JavaClass("net.sf.jasperreports.engine.JasperExportManager");
//$outputPath = str_replace('\protected', '', realpath(Yii::app()->basePath) . '/files/' . $fileName . '.pdf') ;
$exportManager->exportReportToPdfFile($jasperPrint, $outputPath);
//header("Content-type: application/pdf");
//header("Content-disposition: attachment; filename=\"" . $fileName . ".pdf\"");
//readfile($outputPath);
//unlink($outputPath);
return $outputPath;
}
public function executeReport($paramsInput, $fileJasper, $fileName, $reportPath, $param, $calltype=0)
{
include dirname(__FILE__).'/Setting.php';
include dirname(__FILE__) . '/DBSetting.php';
require_once("http://".$serverAddress.":8080/JavaBridge/java/Java.inc");
$databaseAddress = "jdbc:postgresql://" . $databaseAddress . ":" . $port . "/" . $databaseName;
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
$paramsInput["SUBREPORT_DIR"] = $reportDirectory.$reportPath.$slash;
$params = new Java("java.util.HashMap");
foreach($paramsInput as $key => $value):
$params->put($key, $value);
endforeach;
$class = new JavaClass("java.lang.Class");
$class->forName("org.postgresql.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
//db username and password
$conn = $driverManager->getConnection($databaseAddress, $userName, $password);
$jasperPrint = $fillManager->fillReport(realpath(Yii::app()->basePath.'/../report/'.$fileJasper), $params, $conn);
$nip = Yii::app()->globalvar->getNIP();
$file = '/'.$nip.$fileName.$param.'.jrprint';
$tmpPath = realpath(Yii::app()->basePath.'/../tmp/').$file;
$jrSaver = new JavaClass("net.sf.jasperreports.engine.util.JRSaver");
$jrSaver->saveObject($jasperPrint,$tmpPath);
$fileToOpenName = '/'.$nip.$fileName.$param.'.jnlp';
$fileToOpen = realpath(Yii::app()->basePath.'/../jnlp/').$fileToOpenName;
$handle = fopen($fileToOpen, 'w') or die('Cannot open file: '.$fileToOpen);
$fileJnlp = $nip.$fileName.$param;
$fileJnlpComplete = $nip.$fileName.$param.'.jnlp';
$current = file_get_contents($fileToOpen);
$current .= '<?xml version="1.0" encoding="UTF-8" standalone="no"?>';
$current .= '<jnlp codebase="http://'.$serverAddress.'/bhumie/jnlp" href="'.$fileJnlpComplete.'" spec="1.0+">';
$current .= '<information>';
$current .= '<title>ReportViewer</title>';
$current .= '<vendor>nsp</vendor>';
$current .= '<homepage href=""/>';
$current .= '<description>ReportViewer</description>';
$current .= '<description kind="short">ReportViewer</description>';
$current .= '</information>';
$current .= '<security>';
$current .= '<all-permissions/>';
$current .= '</security>';
$current .= '<update check="always"/>';
$current .= '<resources>';
$current .= '<j2se version="1.5+"/>';
$current .= '<jar href="ReportViewer.jar" main="true"/>';
$current .= '<jar href="lib/commons-beanutils-1.8.2.jar"/>';
$current .= '<jar href="lib/commons-collections-3.2.1.jar"/>';
$current .= '<jar href="lib/commons-digester-2.1.jar"/>';
$current .= '<jar href="lib/commons-logging-1.1.jar"/>';
$current .= '<jar href="lib/jasperreports-4.7.1.jar"/>';
$current .= '<jar href="lib/groovy-all-1.7.5.jar"/>';
$current .= '</resources>';
$current .= '<application-desc main-class="nsp.sippbb.report.Viewer">';
$current .= '<property name="org.apache.commons.logging.Log" value="org.apache.commons.logging.impl.NoOpLog"/>';
$current .= '<argument>'.$serverAddress.'</argument>';
$current .= '<argument>'.$fileJnlp.'</argument>';
$current .= '</application-desc>';
$current .= '</jnlp>';
file_put_contents($fileToOpen, $current);
$fileHtml = '/'.$nip.$fileName.$param.'.html';
$fileHtmlToOpen = realpath(Yii::app()->basePath.'/../jnlp/').$fileHtml;
$htmlHandle = fopen($fileHtmlToOpen, 'w') or die('Cannot open file: '.$fileHtmlToOpen);
$fileHtml = $nip.$fileName.$param;
$fileHtmlComplete = $nip.$fileName.$param.'.html';
//$fileNewWindow = 'http://localhost/bhumie/jnlp/'.$fileHtmlComplete;
$currentHtml = file_get_contents($fileHtmlToOpen);
$currentHtml .= '<html>';
$currentHtml .= '<head>';
$currentHtml .= '<title>Report Background Engine</title>';
$currentHtml .= '</head>';
$currentHtml .= '<body>';
$currentHtml .= '<div style="text-align:center">';
$currentHtml .= '<h2><strong>Preparing Data</strong></h2>';
$currentHtml .= '<img src="ajax-loader.gif" />';
$currentHtml .= '</div>';
$currentHtml .= '<script src="deployJava.js"></script>';
$currentHtml .= '<script>';
$currentHtml .= 'deployJava.launch("'.$fileJnlpComplete.'");';
$currentHtml .= '</script>';
$currentHtml .= '</body>';
$currentHtml .= '</html>';
file_put_contents($fileHtmlToOpen, $currentHtml);
$fileNewWindow = 'http://'.$serverAddress.'/bhumie/jnlp/'.$fileHtmlComplete;
if($calltype == 1){
//untuk mengambil link addrees yang dibuat oleh jnlp
//digunakan untuk ajax request
return $fileNewWindow;
}
else{
?>
<script>
<?php
echo "NewWindow('".$fileNewWindow."','Launch','600','200','yes')";
?>
</script>
<?php
}
}
public function executePdfReport($paramsInput, $fileJasper, $fileName, $reportPath){
include dirname(__FILE__).'/Setting.php';
include dirname(__FILE__).'/DBSetting.php';
require_once("http://".$serverAddress.":8080/JavaBridge/java/Java.inc");
$class = new JavaClass("java.lang.Class");
$class->forName("org.postgresql.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
$databaseAddress = "jdbc:postgresql://".$databaseAddress.":".$port."/".$databaseName;
$conn = $driverManager->getConnection($databaseAddress, $userName, $password);
$compileManager = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $compileManager->compileReport(realpath(Yii::app()->basePath.'/../report/'.$fileJasper));
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
$paramsInput["SUBREPORT_DIR"] = $pdfReportDirectory.$reportPath.$slash;
$params = new Java("java.util.HashMap");
foreach($paramsInput as $key => $value):
$params->put($key, $value);
endforeach;
$emptyDataSource = new Java("net.sf.jasperreports.engine.JREmptyDataSource");
$jasperPrint = $fillManager->fillReport($report, $params, $conn);
$exportManager = new JavaClass("net.sf.jasperreports.engine.JasperExportManager");
$outputPath = realpath(Yii::app()->basePath).'/../tmp/'.$fileName.'.pdf';
$exportManager->exportReportToPdfFile($jasperPrint, $outputPath);
header("Content-type: application/pdf");
header("Content-disposition: attachment; filename=\"".$fileName.".pdf\"");
readfile($outputPath);
unlink($outputPath);
}
public function executeXlsxReport($paramsInput, $fileJasper, $fileName, $reportPath){
include dirname(__FILE__).'/Setting.php';
include dirname(__FILE__).'/DBSetting.php';
require_once("http://".$serverAddress.":8080/JavaBridge/java/Java.inc");
$class = new JavaClass("java.lang.Class");
$class->forName("org.postgresql.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
$databaseAddress = "jdbc:postgresql://".$databaseAddress.":".$port."/".$databaseName;
$conn = $driverManager->getConnection($databaseAddress, $userName, $password);
$compileManager = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $compileManager->compileReport(realpath(Yii::app()->basePath.'/../report/'.$fileJasper));
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
$paramsInput["SUBREPORT_DIR"] = $padReportDirectory.$reportPath.$slash;
$params = new Java("java.util.HashMap");
foreach($paramsInput as $key => $value):
$params->put($key, $value);
endforeach;
$emptyDataSource = new Java("net.sf.jasperreports.engine.JREmptyDataSource");
$jasperPrint = $fillManager->fillReport($report, $params, $conn);
// $exportManager = new JavaClass("net.sf.jasperreports.engine.JasperExportManager");
$outputPath = realpath(Yii::app()->basePath).'/../tmp/'.$fileName.'.xls';
// $exportManager->exportReportToPdfFile($jasperPrint, $outputPath);
$exportManager = new Java("net.sf.jasperreports.engine.export.JRXlsExporter");
$JRExporterParameter = new JavaClass("net.sf.jasperreports.engine.JRExporterParameter");
$exportManager->setParameter($JRExporterParameter->INPUT_FILE_NAME, $jasperPrint);
$exportManager->setParameter($JRExporterParameter->OUTPUT_FILE_NAME, $outputPath);
// $memoryStream = new Java("java.io.ByteArrayOutputStream");
// $exportManager = new JavaClass("net.sf.jasperreports.engine.export.JRXlsExporter");
// JRXlsxExporter xlsxExporter = new JRXlsxExporter();
//ByteArrayOutputStream os = new ByteArrayOutputStream();
// $outputPath = realpath(Yii::app()->basePath).'/../tmp/'.$fileName.'.xls';
// $JRExporterParameter = new JavaClass("net.sf.jasperreports.engine.JRExporterParameter");
//$exportManager->setParameter($JRExporterParameter->INPUT_FILE_NAME, $jasperPrint);
// $exportManager->setParameter($JRExporterParameter->OUTPUT_FILE_NAME, $outputPath);//$outputPath);
//$exportManager->setParameter($JRExporterParameter->OUTPUT_STREAM, $memoryStream);
//xlsxExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
//xlsxExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "xxx.xlsx");
//uncomment this codes if u are want to use servlet output stream
//xlsxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, servletOutputStream);
//xlsxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, os);
$exportManager->exportReport();
//$keluaran = $memoryStream->toByteArray();
// header("Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=\"".$fileName.".xls\"");
readfile($outputPath);
unlink($outputPath);
}
/*
public function executePadReport($paramsInput, $fileJasper, $fileName, $reportPath){
include dirname(__FILE__).'/Setting.php';
include dirname(__FILE__).'/DBSetting.php';
require_once("http://".$serverAddress.":8080/JavaBridge/java/Java.inc");
$class = new JavaClass("java.lang.Class");
$class->forName("org.postgresql.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
$databaseAddress = "jdbc:postgresql://".$databaseAddress.":".$port."/".$databaseName;
$conn = $driverManager->getConnection($databaseAddress, $userName, $password);
$compileManager = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $compileManager->compileReport(realpath(Yii::app()->basePath.'/modules/pad/reports/'.$fileJasper));
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
$paramsInput["SUBREPORT_DIR"] = $padReportDirectory.$reportPath.$slash;
$params = new Java("java.util.HashMap");
foreach($paramsInput as $key => $value):
$params->put($key, $value);
endforeach;
$emptyDataSource = new Java("net.sf.jasperreports.engine.JREmptyDataSource");
$jasperPrint = $fillManager->fillReport($report, $params, $conn);
$exportManager = new JavaClass("net.sf.jasperreports.engine.JasperExportManager");
$outputPath = realpath(Yii::app()->basePath).'/modules/pad/temp/'.$fileName.'.pdf';
$exportManager->exportReportToPdfFile($jasperPrint, $outputPath);
header("Content-type: application/pdf");
header("Content-disposition: attachment; filename=\"".$fileName.".pdf\"");
readfile($outputPath);
unlink($outputPath);
}
*/
public function executeExportReport($paramsInput, $fileJasper, $fileName, $reportPath,$type ='pdf'){
include dirname(__FILE__).'/Setting.php';
include dirname(__FILE__).'/DBSetting.php';
require_once("http://".$serverAddress.":8080/JavaBridge/java/Java.inc");
$class = new JavaClass("java.lang.Class");
$class->forName("org.postgresql.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
$databaseAddress = "jdbc:postgresql://".$databaseAddress.":".$port."/".$databaseName;
$conn = $driverManager->getConnection($databaseAddress, $userName, $password);
$compileManager = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $compileManager->compileReport(realpath(Yii::app()->basePath.'/../report/'.$fileJasper));
$fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
$paramsInput["SUBREPORT_DIR"] = $padReportDirectory.$reportPath.$slash;
$params = new Java("java.util.HashMap");
foreach($paramsInput as $key => $value):
$params->put($key, $value);
endforeach;
$emptyDataSource = new Java("net.sf.jasperreports.engine.JREmptyDataSource");
$jasperPrint = $fillManager->fillReport($report, $params, $conn);
$exporter = new Java("net.sf.jasperreports.engine.JRExporter");
$outputPath = realpath(Yii::app()->basePath).'/../tmp/'.$fileName;
switch ($type) {
case 'xls':
$outputPath = $outputPath.".xls";
try {
$exporter = new java("net.sf.jasperreports.engine.export.JRXlsExporter");
// $exporter->setParameter(java("net.sf.jasperreports.engine.export.JRXlsExporterParameter")->IS_ONE_PAGE_PER_SHEET, java("java.lang.Boolean")->TRUE);
// $exporter->setParameter(java("net.sf.jasperreports.engine.export.JRXlsExporterParameter")->IS_WHITE_PAGE_BACKGROUND, java("java.lang.Boolean")->FALSE);
// $exporter->setParameter(java("net.sf.jasperreports.engine.export.JRXlsExporterParameter")->IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, java("java.lang.Boolean")->TRUE);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"".$fileName.".xls\"");
break;
case 'csv':
$outputPath = $outputPath.".csv";
try {
$exporter = new java("net.sf.jasperreports.engine.export.JRCsvExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.export.JRCsvExporterParameter")->FIELD_DELIMITER, ",");
$exporter->setParameter(java("net.sf.jasperreports.engine.export.JRCsvExporterParameter")->RECORD_DELIMITER, "\n");
$exporter->setParameter(java("net.sf.jasperreports.engine.export.JRCsvExporterParameter")->CHARACTER_ENCODING, "UTF-8");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=\"".$fileName.".csv\"");
break;
case 'docx':
$outputPath = $outputPath.".docx";
try {
$exporter = new java("net.sf.jasperreports.engine.export.ooxml.JRDocxExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment; filename=\"".$fileName.".docx\"");
break;
case 'html':
$outputPath = $outputPath.".html";
try {
$exporter = new java("net.sf.jasperreports.engine.export.JRHtmlExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
break;
case 'pdf':
$outputPath = $outputPath.".pdf";
$exporter = new java("net.sf.jasperreports.engine.export.JRPdfExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=\"".$fileName.".pdf\"");
break;
case 'ods':
$outputPath = $outputPath.".ods";
try {
$exporter = new java("net.sf.jasperreports.engine.export.oasis.JROdsExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
header("Content-type: application/vnd.oasis.opendocument.spreadsheet");
header("Content-Disposition: attachment; filename=\"".$fileName.".ods\"");
break;
case 'odt':
$outputPath = $outputPath.".odt";
try {
$exporter = new java("net.sf.jasperreports.engine.export.oasis.JROdtExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
header("Content-type: application/vnd.oasis.opendocument.text");
header("Content-Disposition: attachment; filename=\"".$fileName.".odt\"");
break;
case 'txt':
$outputPath = $outputPath.".txt";
try {
$exporter = new java("net.sf.jasperreports.engine.export.JRTextExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.export.JRTextExporterParameter")->PAGE_WIDTH, 120);
$exporter->setParameter(java("net.sf.jasperreports.engine.export.JRTextExporterParameter")->PAGE_HEIGHT, 60);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
header("Content-type: text/plain");
break;
case 'rtf':
$outputPath = $outputPath.".rtf";
try {
$exporter = new java("net.sf.jasperreports.engine.export.JRRtfExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
header("Content-type: application/rtf");
header("Content-Disposition: attachment; filename=\"".$fileName.".rtf\"");
break;
case 'pptx':
$outputPath = $outputPath.".pptx";
try {
$exporter = new java("net.sf.jasperreports.engine.export.ooxml.JRPptxExporter");
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->JASPER_PRINT, $jasperPrint);
$exporter->setParameter(java("net.sf.jasperreports.engine.JRExporterParameter")->OUTPUT_FILE_NAME, $outputPath);
} catch (JavaException $ex) {
echo $ex;
}
header("Content-type: aapplication/vnd.ms-powerpoint");
header("Content-Disposition: attachment; filename=\"".$fileName.".pptx\"");
break;
}
$exporter->exportReport();
readfile($outputPath);
unlink($outputPath);
}
}
?>