public class PDFReportServiceAccess {
/** */
/** 初始化的状态 */
protected static boolean initStatus = false;
private static IReportEngine engine = null;
private static EngineConfig config = null;
private static IReportRunnable design = null;
//private static PDFRenderOption ro = null;
private static PDFRenderOption ro = null; // doubley0
/** */
/** 初始化资源 */
public void initilize() {
if (initStatus == true)
return;
try {
config = new EngineConfig();
config.setEngineHome("E://Program Files1//apache-tomcat-5.5.26//webapps//birt//WEB-INF//platform"); // birt doubley1
// runtime
// web应用中的报表引擎目录
config.setLogConfig("E://Program Files1//apache-tomcat-5.5.26//webapps//birt//logs", Level.FINE); //doubley2
Platform.startup(config);
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
engine = factory.createReportEngine(config);
engine.changeLogLevel(Level.WARNING);
ro = new PDFRenderOption();
ro.setBaseURL("http://localhost:8080/birt"); // birt runtime
// web应用
config.getEmitterConfigs().put("pdf", ro); // 生成pdf格式 doubley3
initStatus = true;
} catch (Exception ex) {
ex.printStackTrace();
initStatus = false;
}
}
/** */
/** 释放资源 */
public void release() {
engine.shutdown();
Platform.shutdown();
initStatus = false;
}
protected OutputStream run(String filename, HashMap parameters)
throws EngineException {
design = engine.openReportDesign(filename);
// Create task to run and render the report,
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
HashMap contextMap = new HashMap();
contextMap.put(EngineConstants.APPCONTEXT_PDF_RENDER_CONTEXT, ro);
task.setAppContext(contextMap);
task.setParameterValues(parameters);
task.validateParameters();
OutputStream os = new ByteArrayOutputStream();
ro.setOutputStream(os);
ro.setOutputFormat("pdf"); //doubley4
task.setRenderOption(ro);
task.run();
task.close();
return os;
}
/** */
/**
* 生成PDF格式报表,以OutputStream格式返回
*
* @param filename
* 报表设计文件名全路径
* @param parameters
* 报表参数
* @return ByteArrayOutputStream
* @throws EngineException
*/
public OutputStream call(String filename, HashMap parameters)
throws EngineException {
initilize();
OutputStream os = run(filename, parameters);
release();
return os;
}
/** */
/**
* @param args
*/
public static void main(String[] args) {
HashMap parameters = new HashMap();
// 三个Report Parameters,名称必须在报表设计文件中预先定义好
//parameters.put("begindate", "2004/01/01");
//parameters.put("enddate", "2007/12/31");
//parameters.put("sql", " where cust_id = 1234567");
int temp=7;
parameters.put("mystr1", "7"); //doubley5
//parameters.put("mystr1", temp);
ByteArrayOutputStream bos = null;
PDFReportServiceAccess ebr = new PDFReportServiceAccess();
String filename = "E://Program Files1//apache-tomcat-5.5.26//webapps//birt//new_report1.rptdesign"; //doubley6
try {
bos = (ByteArrayOutputStream) ebr.call(filename, parameters);
OutputStream fis = new FileOutputStream("c:/test.pdf");
bos.writeTo(fis);
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
HTML到PDF转换是一种常见的需求,特别是在网页打印、文档保存或跨平台分享时。本文将详细介绍如何使用HTML转PDF的方法,并重点讲解在JavaScript环境下,特别是基于`jspdf`库的实现方式。 `jspdf`是一个开源的...
BIRT支持多种输出格式,其中PDF是常见的选择,因为它可以方便地打印、保存和分享。 在提供的压缩包中,我们有两个关键文件:“birt_api.CHM”和“birt.pdf”。前者是一个CHM(Compiled HTML Help)文件,通常用于...
- 实例3虽然没有给出完整代码,但提到了可以使用TensorFlow编写自主学习的游戏AI,如Flappy Bird,这表明TensorFlow不仅限于基础数学运算,还可以应用于复杂的学习任务。 总之,TensorFlow通过图和会话的概念提供...
- 另一本推荐书籍是《Natural Language Processing with Python》(作者:Steven Bird等)。 - 所有教材均可在线免费获取。 - Python官方文档也是重要的参考资料之一。 **4. 作业与考核** - 需要完成三个必修的实践...
2. **配置Gpg4win**:设置公钥服务器、选择OpenPGP服务器并保存。 3. **配置公钥和私钥**:创建自己的公钥和私钥对,选择加密强度,并为自己的密钥设置密码。 4. **上传公钥到服务器**:将生成的公钥上传到服务器...
- **保存文件**: 选择“文件”>“另存为”,选择文件格式为JPG,文件名为photo.jpg,保存路径为C:\ks。 --- #### B卷:湖光山色图片处理 **知识点9:复制图层** - **复制**: 选择“编辑”>“复制”,或右键图层...
其中,ECS精英的K7SEM主板是一款基于SIS 730S芯片组的主板,支持AMD Athlon/Duron/ThunderBird处理器,采用Socket A插槽,能够兼容多种类型的CPU。 该主板具备内建的AC'97规范音效芯片和SIS 300显示芯片,内置...
例如,`imread()`和`imwrite()`函数用于读取和保存图像,`imshow()`和`image()`显示图像,`imcrop()`用于裁剪,`imresize()`实现图像缩放,`imrotate()`则用于图像旋转。此外,MATLAB还提供了直方图均衡化、图像增强...
当手机屏幕旋转(横竖屏切换)时,系统默认会重新创建Activity实例,因此开发者需要知道如何在配置变更时正确处理生命周期,例如通过重写onSaveInstanceState(Bundle outState)来保存状态,并在onCreate(Bundle ...
3. **电子邮件客户端**:基于客户端的电子邮件账户需要在用户的计算机上安装专门的邮件程序,如Outlook或Thunderbird。 4. **Facebook页面**:对共同兴趣的人群形成的社区,通常会在Facebook上创建页面(Pages),...
而EML格式是一种通用的邮件文件格式,被许多邮件客户端如Mozilla Thunderbird、Windows Live Mail等广泛支持,它以纯文本形式存储邮件的结构和内容。 在C#中进行MSG和EML的转换,我们通常会利用第三方库,比如...
5. **转换MHT**:如果需要将MHT文件转换为其他格式,如HTML或PDF,可以使用在线转换工具或特定的软件。例如,使用Adobe Acrobat或某些文本编辑器可能可以实现这一目标。 6. **数据恢复**:在某些情况下,如果原始...
1. `bird.jpg` 和 `003.jpg`:这些可能是用于测试算法的示例图像,可能是自然场景,包含鸟或其他元素,供用户运行代码并观察结果。 2. `run_saliency.m`:这是一个MATLAB脚本,很可能是用来运行显著性检测算法的主...
EML文件是电子邮件的标准格式之一,通常由许多电子邮件客户端(如早期版本的Microsoft Outlook Express、Windows Live Mail或 Thunderbird)保存。然而,随着电子邮件客户端的更新换代,如现代版的Microsoft Outlook...
而 "iot-bird-feeder-with-sigfox-and-tweeter-8d7fe6.pdf" 很可能是项目指南或详细文档,里面可能包含了项目的硬件组装说明、软件实现步骤以及如何利用Sigfox进行数据传输的教程。 总的来说,这个项目展示了物联网...
此外,还可以通过指定文件类型(如filetype:pdf)来检索特定格式的文档,或者使用"allintitle:"、"allintext:"、"allinurl:"和"allinanchor:"来限定搜索范围,如在网页标题、内容、URL或链接中查找特定文字。...
- 增加的选择将设置保存到一个INI文件。 - 优化的错误日志。 - 改进的稀疏文件的恢复。 - 性能改善。 - 各种用户界面改动。 - 小改动和变化。 v1.09.194(2007年12月6日) - 固定的臭虫与分散的MFT表。 v1.09.190...
提供的两个文档“OpenCV中文参考手册2010年.pdf”和“Opencv中文手册.pdf”是OpenCV的学习参考资料,涵盖了从基础到进阶的各类知识,包括API的详细解释、示例代码和实践案例。 总的来说,OpenCV是一个强大的工具,...