读书人

打印有关问题(急)

发布时间: 2012-01-01 23:10:55 作者: rapoo

打印问题(急。。。。)
package com.assfd;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperPrintManager;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

public class ReportTest
{
@SuppressWarnings("unchecked")
public static void main(String[] args)
{
Connection conn = null;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;databaseName=reportTest","sa","" );

String temp=System.getProperty("user.dir");
String dir = temp + "//src//file//reportTest";

JasperCompileManager.compileReportToFile(dir+ ".jrxml",dir + ".jasper");

JasperReport jasperReport = (JasperReport) JRLoader.loadObject(dir + ".jasper");

Map<String, String> map = new HashMap<String, String>();
map.put("Facility", "Technology");

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, conn);
JasperPrintManager.printReport(jasperPrint,true);

exportReport(dir ,"xls",jasperPrint);
exportReport(dir ,"pdf",jasperPrint);

JasperViewer jrview = new JasperViewer(jasperPrint,false);
jrview.setVisible(true);

conn.close();

} catch (Exception e) {
if(conn != null){
try {
conn.close();
} catch (SQLException e1) {}
}
e.printStackTrace();
}

}

private static void exportReport(String fileName, String format,JasperPrint print) throws JRException
{
JRExporter exporter = null;
if (format.equalsIgnoreCase("pdf"))
{
exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();
fileName = fileName+".pdf";
}
else if (format.equalsIgnoreCase("csv"))
{
exporter = new net.sf.jasperreports.engine.export.JRCsvExporter();

fileName = fileName+".csv";
}
else if (format.equalsIgnoreCase("html"))
{
exporter = new net.sf.jasperreports.engine.export.JRHtmlExporter();

fileName = fileName+".html";

}
else if (format.equalsIgnoreCase("xls") || format.equalsIgnoreCase("xls2"))
{

if (format.equalsIgnoreCase("xls"))


{
exporter = new net.sf.jasperreports.engine.export.JRXlsExporter();
}
else
{
exporter = new net.sf.jasperreports.engine.export.JExcelApiExporter();
}

fileName = fileName+".xls";

}
else if (format.equalsIgnoreCase("odt"))
{
exporter = new net.sf.jasperreports.engine.export.oasis.JROdtExporter();

fileName = fileName+".odt";

}

if (exporter != null)
{
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,fileName);
exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);
exporter.exportReport();
}
}
}


[解决办法]
那就是说你目前没有可用的打印机
检查一下打印机的安装阿

读书人网 >J2SE开发

热点推荐