`

BIRT 保存为PDF

 
阅读更多
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转换是一种常见的需求,特别是在网页打印、文档保存或跨平台分享时。本文将详细介绍如何使用HTML转PDF的方法,并重点讲解在JavaScript环境下,特别是基于`jspdf`库的实现方式。 `jspdf`是一个开源的...

    birt pdf 书

    BIRT支持多种输出格式,其中PDF是常见的选择,因为它可以方便地打印、保存和分享。 在提供的压缩包中,我们有两个关键文件:“birt_api.CHM”和“birt.pdf”。前者是一个CHM(Compiled HTML Help)文件,通常用于...

    28-提交-项目实战.pdf

    - 实例3虽然没有给出完整代码,但提到了可以使用TensorFlow编写自主学习的游戏AI,如Flappy Bird,这表明TensorFlow不仅限于基础数学运算,还可以应用于复杂的学习任务。 总之,TensorFlow通过图和会话的概念提供...

    python&nlp.pdf

    - 另一本推荐书籍是《Natural Language Processing with Python》(作者:Steven Bird等)。 - 所有教材均可在线免费获取。 - Python官方文档也是重要的参考资料之一。 **4. 作业与考核** - 需要完成三个必修的实践...

    我使用PGP电子签名和加密教程

    2. **配置Gpg4win**:设置公钥服务器、选择OpenPGP服务器并保存。 3. **配置公钥和私钥**:创建自己的公钥和私钥对,选择加密强度,并为自己的密钥设置密码。 4. **上传公钥到服务器**:将生成的公钥上传到服务器...

    2007年计算机一级photoshop练习(有步骤的).pdf

    - **保存文件**: 选择“文件”>“另存为”,选择文件格式为JPG,文件名为photo.jpg,保存路径为C:\ks。 --- #### B卷:湖光山色图片处理 **知识点9:复制图层** - **复制**: 选择“编辑”>“复制”,或右键图层...

    第一天计算机硬件组成及原理最终版.pdf

    其中,ECS精英的K7SEM主板是一款基于SIS 730S芯片组的主板,支持AMD Athlon/Duron/ThunderBird处理器,采用Socket A插槽,能够兼容多种类型的CPU。 该主板具备内建的AC'97规范音效芯片和SIS 300显示芯片,内置...

    MATLAB在计算机领域内的应用论文.pdf

    例如,`imread()`和`imwrite()`函数用于读取和保存图像,`imshow()`和`image()`显示图像,`imcrop()`用于裁剪,`imresize()`实现图像缩放,`imrotate()`则用于图像旋转。此外,MATLAB还提供了直方图均衡化、图像增强...

    Android功能点.pdf

    当手机屏幕旋转(横竖屏切换)时,系统默认会重新创建Activity实例,因此开发者需要知道如何在配置变更时正确处理生命周期,例如通过重写onSaveInstanceState(Bundle outState)来保存状态,并在onCreate(Bundle ...

    计算机的专业英语选择.pdf

    3. **电子邮件客户端**:基于客户端的电子邮件账户需要在用户的计算机上安装专门的邮件程序,如Outlook或Thunderbird。 4. **Facebook页面**:对共同兴趣的人群形成的社区,通常会在Facebook上创建页面(Pages),...

    C#批量转换邮件格式MSG-EML互转

    而EML格式是一种通用的邮件文件格式,被许多邮件客户端如Mozilla Thunderbird、Windows Live Mail等广泛支持,它以纯文本形式存储邮件的结构和内容。 在C#中进行MSG和EML的转换,我们通常会利用第三方库,比如...

    爱心视频.zip

    5. **转换MHT**:如果需要将MHT文件转换为其他格式,如HTML或PDF,可以使用在线转换工具或特定的软件。例如,使用Adobe Acrobat或某些文本编辑器可能可以实现这一目标。 6. **数据恢复**:在某些情况下,如果原始...

    基于matlab实现上下文意识的显著性检测,包含matlab代码和对应的CVPR2010论文.rar

    1. `bird.jpg` 和 `003.jpg`:这些可能是用于测试算法的示例图像,可能是自然场景,包含鸟或其他元素,供用户运行代码并观察结果。 2. `run_saliency.m`:这是一个MATLAB脚本,很可能是用来运行显著性检测算法的主...

    eml文件阅读器中文版绿色版.rar

    EML文件是电子邮件的标准格式之一,通常由许多电子邮件客户端(如早期版本的Microsoft Outlook Express、Windows Live Mail或 Thunderbird)保存。然而,随着电子邮件客户端的更新换代,如现代版的Microsoft Outlook...

    带有Sigfox和高音扬声器的IoT鸟嘴-项目开发

    而 "iot-bird-feeder-with-sigfox-and-tweeter-8d7fe6.pdf" 很可能是项目指南或详细文档,里面可能包含了项目的硬件组装说明、软件实现步骤以及如何利用Sigfox进行数据传输的教程。 总的来说,这个项目展示了物联网...

    Google的技术实现与使用技巧.ppt

    此外,还可以通过指定文件类型(如filetype:pdf)来检索特定格式的文档,或者使用"allintitle:"、"allintext:"、"allinurl:"和"allinanchor:"来限定搜索范围,如在网页标题、内容、URL或链接中查找特定文字。...

    Recuva 1.37.0.488汉化版

    - 增加的选择将设置保存到一个INI文件。 - 优化的错误日志。 - 改进的稀疏文件的恢复。 - 性能改善。 - 各种用户界面改动。 - 小改动和变化。 v1.09.194(2007年12月6日) - 固定的臭虫与分散的MFT表。 v1.09.190...

    opencv技术手册.zip

    提供的两个文档“OpenCV中文参考手册2010年.pdf”和“Opencv中文手册.pdf”是OpenCV的学习参考资料,涵盖了从基础到进阶的各类知识,包括API的详细解释、示例代码和实践案例。 总的来说,OpenCV是一个强大的工具,...

Global site tag (gtag.js) - Google Analytics