关于 FineReport 生成PDF的问题--java后端生成

环境:两台服务器:一台部署FineReport;一台部署java应用

需求:java应用调用FineReport 报表模板,生成pdf后保存到Oracle数据库中。

应该调用什么API,有没有实现方式

FineReport 18654346937 发布于 2018-11-15 10:13
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
toorLv2见习互助
发布于2018-11-15 15:15(编辑于 2018-11-15 15:51)

生成pdf后保存到Oracle数据库中。  是要把pdf文件存到数据库中? 前面的需求使用导出文件的api就好了image.png

修改对应的路径,网络访问的话,就写上网络路径

  • 18654346937 18654346937(提问者) 请问怎么在本地访问远程报表服务器
    2018-11-15 15:35 
  • toor toor 回复 18654346937(提问者) 看上图
    2018-11-15 15:51 
  • 18654346937 18654346937(提问者) 回复 toor 谢谢,网络路径 怎么填? 本来想使用 new RemoteEnv(\"http://10.6.0.104:8075/WebReport/ReportServer\",\"admin\",\"admin\") 代替 LocalEnv ,但是报错 用户名或密码不对。。 报表平台的用户名和密码就是这个。
    2018-11-15 16:51 
  • toor toor 回复 18654346937(提问者) \\\\192.168.0.60\\test 这样的,注意转义
    2018-11-15 16:57 
  • 18654346937 18654346937(提问者) 回复 toor 哎,服务器之间不允许这样访问,不像共享文件夹这样可以通过IP去访问别的机器文件。 有没有通过 URL:http://10.6.0.104:8075/WebReport/ReportServer 这样可以访问远程报表的,类似于报表切换目录里的远程服务器配置,像二楼那样的。我看API里有个com.fr.env.RemoteEnv,不太会用
    2018-11-15 17:07 
最佳回答
0
天狮座Lv6初级互助
发布于2018-11-15 15:50

本地访问远程服务器,只需要点击工具栏那个地方切换就好了

image.pngimage.png

然后按一楼那么做就ok了

  • 18654346937 18654346937(提问者) java应用服务器上没有安装报表设计器。。有API可以直接连接远程报表服务器吗?
    2018-11-15 16:39 
  • 用户W6268850 用户W6268850 回复 18654346937(提问者) 好像是有的:在官网上面就是很清楚的写了 package com.fr.io; import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class testUrl { public static void main(String[] args){ String pdfPath = \"D:\"+File.separator+\"TEST.pdf\"; try { URL url = new URL(\"http://localhost:8020/FR10/decision/view/report?viewlet=WorkBook48.cpt&format=pdf&aa=9\"); URLConnection connection = url.openConnection(); BufferedInputStream bis = new BufferedInputStream(connection.getInputStream()); FileOutputStream outputStream = new FileOutputStream(new File(pdfPath)); byte[] buff = new byte[1024]; int byteRead; while (-1!=(byteRead=bis.read(buff,0,buff.length))){ outputStream.write(buff,0,byteRead); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 毕竟是java写的一个后台程序而已,当然能各种调用,但是帆软没有注解jar包 按理说应该直接用注解就能搞定传参,一个util解决所有的问题,非要搞得非常复杂我很难受。
    2021-05-19 15:02 
  • 4关注人数
  • 878浏览人数
  • 最后回答于:2018-11-15 15:51
    请选择关闭问题的原因
    确定 取消
    返回顶部