Java 在Flex中生成导出

Java 在Flex中生成导出,java,apache-flex,Java,Apache Flex,我有一个名为Edition的类,它将报告导出为PDF。我测试了这个类,效果非常好 公共最终课程版{ 私有静态版m_实例=null; 私人发动机; 私有字符串实路径; 私人期权; 私有字符串etat; 私有字符串chemin; 私有地图参数; 私有字符串格式; 私人语言; /** *建设者 *我是一家汽车旅馆的客人 *费桑图尔纳图书馆资源酒店 *这是一个非常好的配置。 *@BirtException */ Edition()抛出BirtException{ EngineConfig config=

我有一个名为Edition的类,它将报告导出为PDF。我测试了这个类,效果非常好

公共最终课程版{
私有静态版m_实例=null;
私人发动机;
私有字符串实路径;
私人期权;
私有字符串etat;
私有字符串chemin;
私有地图参数;
私有字符串格式;
私人语言;
/**
*建设者
*我是一家汽车旅馆的客人
*费桑图尔纳图书馆资源酒店
*这是一个非常好的配置。
*@BirtException
*/
Edition()抛出BirtException{
EngineConfig config=新的EngineConfig();
//realPath=“/home/atef/workspace1.0/Reporting/WebContent”;
//config.setResourcePath(新文件(realPath,“WEB-INF/classes/resources”).getAbsolutePath();
config.setBIRTHome(新文件(“C:\\Users\\ameni\\Downloads\\birt-runtime-4_4_1-20140916\\birt-runtime-4_4_1\\ReportEngine\\lib”).getAbsolutePath();//endroit oùse trouvent les libraries du runtime
平台启动(配置);
IReportEngineFactory=(IReportEngineFactory)平台
.createFactoryObject(IReportEngineFactory.EXTENSION\u REPORT\u ENGINE\u FACTORY);
engine=factory.createReportEngine(配置);
选项=新渲染();
}
/**
*服务实例
*@return l'instance en cours du service
*@BirtException
*/
publicstaticedition getInstance()引发BirtException{
if(m_实例==null){
m_实例=新版本();
}
返回m_实例;
}
/**
*初始化
*@param etat nom du rpt design
*@param chemin chemin et nom du fichier de出动架次
*@param parametres paramètresápasserélétat
*@param格式出击(PDF、XLS、DOC等)
*@param language de lédition
*/
公共void init(字符串etat、字符串chemin、映射参数、字符串格式、字符串语言){
this.etat=etat;
this.chemin=chemin;
this.parametres=parametres;
this.format=格式;
this.langue=新语言环境(langue);
}
/**
*莱塔兰斯门特酒店
*@ScriptException
*/
公共无效runBirt(){
试一试{
/*Récupération du设计*/
IReportRunnable design=engine.openReportDesign(新文件(“C:\\Users\\ameni\\workspace\\RoasmartTest\\report.rptdesign”).getAbsolutePath();
IDataSource dataSource=design.getDesignInstance().getDataSource(“数据源”);
试一试{
setPrivateDriverProperty(“odaDriverClass”,“org.postgresql.Driver”);
setPrivateDriverProperty(“odaURL”,“jdbc:postgresql://127.0.0.1:5432/springdb");
setPrivateDriverProperty(“odaUser”、“ameni”);
setPrivateDriverProperty(“odaPassword”、“ameni”);
}
捕获(脚本异常){
e、 printStackTrace();
}
System.out.println(“设计的理由”);
/*执行*/
IRunTask runTask=engine.createRunTask(设计);
System.out.println(“执行”);
/*Paramètres*/
for(字符串谱号:parametres.keySet()){
setParameterValue(clef,parametres.get(clef));
}
System.out.println(“参数”);
/*语言*/
setLocale(语言);
System.out.println(“语言Chmn:+chemin”);
runTask.run(chemin+“.rptdocument”);
/*这是一份很好的文件*/
IReportDocument doc=engine.openReportDocument(chemin+“.rptdocument”);
//IDataSet dat=design.getDesignInstance().getDataSet(“MyData”);
System.out.println(“Récupération du rpt文档2”);
/*人都*/
IRenderTask renderTask=engine.createRenderTask(doc);
System.out.println(“人都”);
option.setOutputFileName(chemin);//出动次数的名称
option.setOutputFormat(format);//飞行费格式
renderTask.SetRenderOperation(选项);//收费费
renderTask.render();//修改文件
}
捕获(引擎异常e){
e、 printStackTrace();
}
}
公共无效析构函数(){
引擎。销毁();
}
} 
现在我想知道如何在flex中调用这个类,比如使用button,有什么想法吗

弯曲


如果您使用的是Adobe AIR,则可以使用API:

公共函数处理程序(e:事件):void{
if(NativeProcess.isSupported)
{
var nativeProcessStartupInfo:nativeProcessStartupInfo=new nativeProcessStartupInfo();
var file:file=file.applicationDirectory.resolvePath(“extractor.jar”);
nativeProcessStartupInfo.executable=文件;
变量processArgs:Vector.=新向量。();
processArgs[0]=“foo”;
//在这里为jar添加任何附加参数
nativeProcessStartupInfo.arguments=processArgs;
进程=新的NativeProcess();
进程启动(nativeProcessStartupInfo);
process.addEventListener(nativeProcessExiteEvent.EXIT,onExit);
//可能需要添加更多侦听器,例如错误事件处理程序
}
其他的
{
跟踪(“不支持NativeProcess”);
}
}

您的Flex代码是在空中运行还是作为独立的SWF运行?
public function handler(e:Event):void {
    if(NativeProcess.isSupported)
    {
        var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
        var file:File = File.applicationDirectory.resolvePath("extractor.jar");
        nativeProcessStartupInfo.executable = file;

        var processArgs:Vector.<String> = new Vector.<String>();
        processArgs[0] = "foo";
        //Add any additional arguments for the jar here
        nativeProcessStartupInfo.arguments = processArgs;

        process = new NativeProcess();
        process.start(nativeProcessStartupInfo);
        process.addEventListener(NativeProcessExitEvent.EXIT, onExit);
        //There are more listeners you might want to add, e.g. error event handlers
    }
    else
    {
        trace("NativeProcess not supported.");
    }
}