Javascript PHP JavaBridge ireport-pdf文件为空

Javascript PHP JavaBridge ireport-pdf文件为空,javascript,php,pdf,php-java-bridge,Javascript,Php,Pdf,Php Java Bridge,我已经通过JavaBridge连接了xampp php文件,并将其与我的.jrxml文件连接起来。它可以成功下载为.pdf文件。 但是,.pdf文件完全是空白的。它在我的ireport文件中显示得很好。我使用MicrosoftSQLServer2008作为我的数据库服务器 <?php define('JAVA_INC_URL','http://localhost:8080/JavaBridge/java/Java.inc'); require_once(JAVA_INC_URL);

我已经通过JavaBridge连接了xampp php文件,并将其与我的.jrxml文件连接起来。它可以成功下载为.pdf文件。 但是,.pdf文件完全是空白的。它在我的ireport文件中显示得很好。我使用MicrosoftSQLServer2008作为我的数据库服务器

<?php 
define('JAVA_INC_URL','http://localhost:8080/JavaBridge/java/Java.inc'); 
require_once(JAVA_INC_URL);
set_time_limit(0);

 // créer une instance de la classe Java java.lang.System dans PHP
    $system = new JavaClass('java.lang.System');
    $class = new JavaClass("java.lang.Class");
    $class->forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    $driverManager = new JavaClass("java.sql.DriverManager");
    $conn = $driverManager->getConnection("jdbc:sqlserver://xxxxxx:1433","xx","xxxxxxxx");
    //compilation
    $compileManager = new   
    JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
    $viewer = new JavaClass("net.sf.jasperreports.view.JasperViewer");
    $report = $compileManager->compileReport("C:/xampp/htdocs/test report 
    jasper/2/report2.jrxml");
    // fill
    $fillManager = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
    $params = new Java("java.util.HashMap");
            $params->put('orderno', "SOP00014");
    $emptyDataSource = new Java("net.sf.jasperreports.engine.JREmptyDataSource");

    $runmanager = new Java("net.sf.jasperreports.engine.JasperRunManager");

    $jasperPrint = $fillManager->fillReport($report, $params, $conn);



$format = $_GET['format'];

switch ($format) 
{
    case 'pdf':


        $outputPath = realpath(".")."\\"."report"."\\"."export.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=export.pdf");

        readfile($outputPath);
        unlink($outputPath);

        $exporter->exportReport();
        break;
    case 'csv':

        $outputPath = realpath(".")."\\"."report"."\\"."export.csv";


        $exporter= new Java("net.sf.jasperreports.engine.export.JRCsvExporter");

        $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/csv");
        header("Content-Disposition: attachment; filename=export.csv");

        readfile($outputPath);
        unlink($outputPath);

        $exporter->exportReport();
        break;
    case 'txt':

        $outputPath = realpath(".")."\\"."report"."\\"."export.txt";

        $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);

        header("Content-type: plain/text");
        header("Content-Disposition: attachment; filename=export.txt");


        $exporter->exportReport();

        readfile($outputPath);
        unlink($outputPath);

        break;
    case 'pptx':
        $outputPath = realpath(".")."\\"."report"."\\"."export.pptx";                   
        $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);
        header("Content-type: aapplication/vnd.ms-powerpoint");
        header("Content-Disposition: attachment; filename=export.pptx");
        $exporter->exportReport();

        readfile($outputPath);
        unlink($outputPath);
        break;
    case 'doc':
        $outputPath = realpath(".")."\\"."report"."\\"."export.docx";                   
        $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);
        header("Content-type: application/vnd.ms-word");
        header("Content-Disposition: attachment; filename=export.docx");
        $exporter->exportReport();

        readfile($outputPath);
        unlink($outputPath);
        break;

    default:
        # code...
        break;
}
?>
put(‘订单号’,“SOP00014”);
$emptyDataSource=newJava(“net.sf.jasperreports.engine.jreportyDataSource”);
$runmanager=newJava(“net.sf.jasperreports.engine.JasperRunManager”);
$jasperPrint=$fillManager->fillReport($report、$params、$conn);
$format=$_GET['format'];
交换机($格式)
{
案例“pdf”:
$outputPath=realpath(“.”“\\\”报告“\\”导出.pdf”;
$exporter=newJava(“net.sf.jasperreports.engine.export.JRPdfExporter”);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->JASPER\u PRINT,$jasperrprint);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->输出文件名,$outputPath);
标题(“内容类型:application/pdf”);
标题(“内容处置:附件;文件名=export.pdf”);
readfile($outputPath);
取消链接($outputPath);
$exporter->exportReport();
打破
案例“csv”:
$outputPath=realpath(“.”“\\\”报告“\\”导出.csv”;
$exporter=newJava(“net.sf.jasperreports.engine.export.JRCsvExporter”);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->JASPER\u PRINT,$jasperrprint);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->输出文件名,$outputPath);
标题(“内容类型:应用程序/csv”);
标题(“内容处置:附件;文件名=export.csv”);
readfile($outputPath);
取消链接($outputPath);
$exporter->exportReport();
打破
案例“txt”:
$outputPath=realpath(“.”“\\\”报告“\\\”导出.txt”;
$exporter=newJava(“net.sf.jasperreports.engine.export.JRTextExporter”);
$exporter->setParameter(java(“net.sf.jasperreports.engine.export.JRTextExporterParameter”)->页面宽度,120);
$exporter->setParameter(java(“net.sf.jasperreports.engine.export.JRTextExporterParameter”)->页面高度,60);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->JASPER\u PRINT,$jasperrprint);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->输出文件名,$outputPath);
标题(“内容类型:纯/文本”);
标题(“内容处置:附件;文件名=export.txt”);
$exporter->exportReport();
readfile($outputPath);
取消链接($outputPath);
打破
案例“pptx”:
$outputPath=realpath(“.”“\\\”报告“\\”导出.pptx”;
$exporter=newJava(“net.sf.jasperreports.engine.export.ooxml.JRPptxExporter”);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->JASPER\u PRINT,$jasperrprint);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->输出文件名,$outputPath);
标题(“内容类型:aaapplication/vnd.ms powerpoint”);
标题(“内容处置:附件;文件名=export.pptx”);
$exporter->exportReport();
readfile($outputPath);
取消链接($outputPath);
打破
案件‘文件’:
$outputPath=realpath(“.”“\\\”报告“\\”导出.docx”;
$exporter=newJava(“net.sf.jasperreports.engine.export.ooxml.JRDocxExporter”);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->JASPER\u PRINT,$jasperrprint);
$exporter->setParameter(java(“net.sf.jasperreports.engine.jreporterParameter”)->输出文件名,$outputPath);
标题(“内容类型:application/vnd.ms word”);
标题(“内容处置:附件;文件名=export.docx”);
$exporter->exportReport();
readfile($outputPath);
取消链接($outputPath);
打破
违约:
#代码。。。
打破
}
?>

PDF文件是二进制文件。PDF对象的对象结构以ASCII范围内的字符表示。内容流(图像和带有页面内容的压缩PDF语法)以二进制格式存储。如果使用错误的编码传输或存储文档(例如,将其视为文本文件而不是二进制文件),对象结构将保留,但所有页面内容和图像都将损坏。这导致PDF的所有页面都是空白的。在tomcat start.bat中,它显示net.sf.jasperreports.engine.JasperRunManager中找不到可见的构造函数,返回类而不是实例:这可能是您想要的。请更正此错误或使用java函数(改为“net.sf.jasperreports.engine.JasperRunManager”),但我让ady将最新版本的jasperreport.jar添加到JavaBridge\WEB-INF\lib中,并且在tomcat start.bat log4j中出现此错误:警告找不到记录器(net.sf.jasperreports.engine.xml.JRXmlDigesterFactory)的附加程序。log4j:警告请正确初始化log4j系统。