`
lihua-he
  • 浏览: 102003 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

pdf

阅读更多

<a id="pdfHref" href='/NetCafe/bizData/report/showPDF.jsp?dutyId=<c:out value="${dutyId}"/>&type=1'>

 

showPDF.jsp

 

<%@page language="java" contentType="application/x-msdownload"%>
<%@ page import="com.hintsoft.chain.report.PDFReportUtils"%>
<%
	response.reset();
    response.setContentType("application/x-download");
    response.addHeader("Content-Disposition", "attachment; filename=report.pdf");
	javax.servlet.ServletOutputStream ouputStream = null;
	try{
		byte[] bytes = PDFReportUtils.getIReportUtils().getReport(request,response);
		response.setContentLength(bytes.length);
		ouputStream = response.getOutputStream();
		ouputStream.write(bytes, 0, bytes.length);
		ouputStream.flush();
	}catch(Exception e){
		e.printStackTrace();
	}finally{
		if(ouputStream != null){
			ouputStream.close();
            ouputStream = null;
        }
	}	
%>

 

 

package com.hintsoft.chain.report;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import com.hintsoft.chain.common.query.web.PageResult;
import com.hintsoft.chain.membermng.form.MemStatisticForm;
import com.hintsoft.chain.systemsetting.service.ConfigStrategyService;

public class PDFReportUtils {
	private static Logger log = Logger
			.getLogger("com.hintsoft.chain.report.PDFReportUtils");

	private static PDFReportUtils pu = null;

	public static PDFReportUtils getIReportUtils() {
		if (pu == null) {
			pu = new PDFReportUtils();
		}
		return pu;
	}
	/**
	 * @explain 用来获取pdf报表的入口
	 * @param request
	 * @return
	 */
	public byte[] getReport(HttpServletRequest request,HttpServletResponse response) {
		byte[] result = null;
		String type = "2";
		List list = new ArrayList();
		String dateBeginDay = (String) request.getAttribute("dateBeginDay");
		String dateEndDate = (String) request.getAttribute("dateEndDate");
		String netUniqueid = (String) request.getAttribute("netUniqueid");
		String pageNow = (String) request.getAttribute("pageNow");
		String totalPage = (String) request.getAttribute("totalPage");//总条数
		String totalCount = (String) request.getAttribute("totalCount");  //总页数
		MemStatisticForm memForm = new MemStatisticForm();
		memForm.setDateBeginDay(dateBeginDay);
		memForm.setDateEndDate(dateEndDate);
		memForm.setPageNow(pageNow);
		memForm.setTotalPage(totalPage);
		memForm.setNetUniqueid(netUniqueid);
		if ("2".equals(type)) {
			PageResult pageResult = new PageResult();
			pageResult.setPageNo(Integer.parseInt(pageNow)); 
			list = ConfigStrategyService.getMemStatistic(memForm,pageResult,totalPage);
            result = PDFDay.getPDFDay().getDay(list,dateBeginDay,dateEndDate,totalCount,pageNow);
		} 
		return result;
	}
}

 

 

 

import java.awt.Color;
import java.io.ByteArrayOutputStream;
import java.util.List;

import org.apache.log4j.Logger;

import com.hintsoft.chain.common.CertificateTypeHelp;
import com.hintsoft.chain.membermng.po.MemStatisticPO;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfWriter;

public class PDFDay {
	private static Logger log = Logger
			.getLogger("com.hintsoft.pubwin.netcafe.local.bean.bizData.report.util.PDFDay");

	private static PDFDay pdfday = null;

	public static PDFDay getPDFDay() {
		if (pdfday == null) {
			pdfday = new PDFDay();
		}
		return pdfday;
	}

	/**
	 * @explain 获取日报表的pdf文件
	 * @param img
	 * @param clientMap
	 * @param monthBean
	 * @return
	 */
	public byte[] getDay(List list,String dateBeginDay,String dateEndDate,String totalCount,String pageNow) {
		byte[] temp = null;
		Document document = new Document(PageSize.A4);
		float cl1 = PageSize.A4.width()/8;
		float cl2 = PageSize.A4.height()/2;
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		long [] payment = {0l,0l,0l};
		try {
            //设置商品销售信息
            
			//定义中文字体
			Font font12 = PDFUtil.getChineseFont(12,0);
			Font font8 = PDFUtil.getChineseFont(7,1);
			Font font3 = PDFUtil.getChineseFont(5,0);
			Font ct8 = PDFUtil.getChineseFont(8,1);
            
			PdfWriter writer = PdfWriter.getInstance(document, bos);
			document.open();
			PdfPTable one = new PdfPTable(3);
			float[] width1 = {30f,30f,40f};
			one.setWidths(width1);
			one.setWidthPercentage(100);
			one.getDefaultCell().setBackgroundColor(new Color(0, 0, 128));
			one.getDefaultCell().setBorder(0);//表格主框架线条	
			one.getDefaultCell().setFixedHeight(12);
			one.addCell(new Phrase(""));
			one.addCell(new Phrase(""));
			one.addCell(new Phrase(""));
			document.add(one);
			
			// 增加到文档中2
			Paragraph p1 = PDFUtil.getChineseParagraph("  会员统计报表  ", PDFUtil.getChineseFont(13,1));
			p1.add(new Phrase("                                                "));
			p1.add(new Phrase("                                                "));
			p1.add(new Phrase("                        "));
			p1.add(PDFUtil.getChinesePhrase("  报告时间: ", font8));
			document.add(p1);
			document.add(new Phrase("______________________________________________________________________________"));
			String rq = "日期范围 ";
			if(rq.indexOf(":") == -1){
				rq = "日期范围 :"+dateBeginDay+"  "+dateEndDate;
			}
			document.add(PDFUtil.getChineseParagraph(rq, font8));
			PdfPTable two = new PdfPTable(9);
			two.setHorizontalAlignment(Element.ALIGN_CENTER);
			float[] width2 = {10f,8f,20f,10f,20f,10f,10f,10f,10f};
			two.setWidths(width2);
			two.setWidthPercentage(100);
			two.getDefaultCell().setBackgroundColor(new Color(240, 248, 255));
			two.getDefaultCell().setBorder(0);//表格主框架线条
			two.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);//默认单元格
			two.getDefaultCell().setVerticalAlignment(Element.ALIGN_LEFT);
			two.getDefaultCell().setFixedHeight(20);
			two.addCell(PDFUtil.getChinesePhrase("会员编号",font8));
			two.addCell(PDFUtil.getChinesePhrase("姓名",font8));
			two.addCell(PDFUtil.getChinesePhrase("创建时间",font8));
			two.addCell(PDFUtil.getChinesePhrase("证件类型",font8));
			two.addCell(PDFUtil.getChinesePhrase("证件编号",font8));
			two.addCell(PDFUtil.getChinesePhrase("会员等级",font8));
			two.addCell(PDFUtil.getChinesePhrase("累积积点",font8));
			two.addCell(PDFUtil.getChinesePhrase("循环剩余积点",font8));
			two.addCell(PDFUtil.getChinesePhrase("储值金额",font8));
			two.getDefaultCell().setBackgroundColor(new Color(255, 255, 255));
			
			for(int i=0;i<list.size();i++){
				MemStatisticPO memPo = (MemStatisticPO)list.get(i);
				two.addCell(PDFUtil.getChinesePhrase(memPo.getUniqueid(),font3));
				two.addCell(PDFUtil.getChinesePhrase(memPo.getRealname(),font3));
				two.addCell(PDFUtil.getChinesePhrase(memPo.getCreateTm().substring(0, 19),font3)); 
				two.addCell(PDFUtil.getChinesePhrase(CertificateTypeHelp.getCertificateName(memPo.getCertificateType()),font3));
				two.addCell(PDFUtil.getChinesePhrase(memPo.getCertificateid(),font3));
				two.addCell(PDFUtil.getChinesePhrase(memPo.getLevelname(),font3));
				two.addCell(PDFUtil.getChinesePhrase(memPo.getScore()+"",font3));
				two.addCell(PDFUtil.getChinesePhrase(memPo.getRemainscore()+"",font3));
				two.addCell(PDFUtil.getChinesePhrase("¥"+memPo.getLastremscorediscount()+".00",font3));
			}
			
			document.add(two);	
			document.add(new Paragraph("______________________________________________________________________________"));
			document.add(PDFUtil.getChineseParagraph("***[表格完毕]***                                                    第"+pageNow+"页,共"+totalCount+"页。",font8));
			
			PdfContentByte pcb = writer.getDirectContent();
			PdfTemplate tp = pcb.createTemplate(600, 500);
			pcb.addTemplate(tp, cl1,cl2);
		} catch (DocumentException e) {  
			if(log.isDebugEnabled()){
				log.debug(e);
			}
		} catch (Exception e2){
			if(log.isDebugEnabled()){
				log.debug(e2);
			}
		} finally{
			document.close();
		}
		temp = bos.toByteArray();//返回pdf文档二进制数组  totalCount,String pageNow
		return temp;
	}
}

 

分享到:
评论

相关推荐

    免费PDF控件Spire.PDF

    免费Spire.PDF for .NET 是一款由e-iceblue公司开发的专业性的PDF文档创建组件。它能够使用户在不用Adobe Acrobat和其他外部控件的情况下,运用.NET 应用程序阅读,编写和操纵PDF 文档。Spire.PDF for .NET不仅可以...

    java根据PDF模板自动生成PDF文件

    用途:根据PDF模板生成PDF文件,将数据库查询的数据插入到模板指定未知,然后生成新的PDF文件 原理: 代码说明:exprotPDF_Main 为主文件。调用了outpdf1的两个文件的方法。outpdf1里的方法,是通过outpdf2345678这...

    基于HTML的PDF展示 pdf.js 兼容旧版浏览器

    pdf.js 是一个技术原型主要用于在 HTML5 平台上展示...我们的目标是创建一个通用的,基于标准的网络平台解析和渲染PDF,并最终释放出的PDF阅读器的扩展。 示例地址: http://mozilla.github.com/pdf.js/web/viewer.html

    免费版 PDF Java组件_Free Spire.PDF for Java 1.1.0

    Free Spire.PDF for JAVA 是一个 100% 免费的 PDF API, 在 JAVA 应用程序上调用该组件即可读取,写入和保存 PDF 文档,无需安装 Adobe Acrobat。使用此 JAVA PDF 组件,开发人员可以在 JAVA 应用程序(J2SE 和 J2EE...

    PDF转换PPT - AnyBizSoft PDF to PowerPoint Converter绿色便携破解版

    PDF转换PPT - AnyBizSoft PDF to PowerPoint Converter绿色便携版 使用说明:直接运行PDFtoPowerPointPortable.exe即可打开PDF to PowerPoint Converter,当前版本PDF to PowerPoint Converter 2.5.0。 PDF to ...

    PDF文件 阅读控件 (VeryPDF PDFView OCX)

    PDF阅读控件示例(VeryPDF PDFView OCX) =================================== 推荐一个阅读PDF格式文件的控件最新版,带完美注册使用。打开PDF速度蛮快,支持中文。支持字符 串查找(好像还不支持中文搜索 :-&lt;)....

    免费版.NET PDF组件_Free Spire.PDF for .NET 4.3

    Free Spire.PDF for .NET 是 Spire.PDF for .NET 的免费版本,无需购买即可用于个人或商业用途。使用该组件,程序员可以 在.NET 程序中创建、读取、写入、编辑和操作 PDF 文档。这个控件能支持的功能十分全面,例如...

    JPG2PDF V2.6含注册码

     JPG转PDF转换器支持的转换有JPG转PDF,TIF转PDF,BMP转PDF,GIF转PDF,PNG转PDF,PSD转PDF等多达几十种图片格 式转PDF的转换。  拥有这款PDF转换器,您相当于有了JPG转PDF转换器,TIF转PDF转换器,BMP转PDF转换...

    Free Spire.PDF for JAVA

    Free Spire.PDF for JAVA可以支持许多功能,例如从PDF中提取文本,在PDF文档中绘制文本/图像/形状,创建和填充表单域,创建 PDF/A-1,添加和验证 PDF 数字签名。 此外,Free Spire.PDF for JAVA 支持将PDF 转换为...

    pdfbox 提取 pdf文件中的图片

    PDFBox是一个开源的可以操作PDF文档的Java PDF类库。它可以创建一个新PDF文档,操作现有PDF文档并提取文档中的内容。 它具有以下特性: 1.将一个PDF文档转换输出为一个文本文件。 2.可以从文本文件创建一个PDF文档。 ...

    福昕PDF套件 5.0.4破解版

    高性能 ——以超过其它PDF工具3倍的速度把200多种常用办公文件类型转换为PDF文件,并且还能一次选择多个文件进行PDF文件转换。 一键转换 ——一键点击,即刻把Microsoft(微软)办公软件中的Word,PowerPoint?和...

    PDF-XChange_Viewer4.195+注册码

    PDF-Xchange是一款全面兼容PDF格式的PDF文件制作和浏览软件。它分为两个部分:PDF-Xchange Pro和PDF-XChange Viewer Pro。前者是一个转换平台,只要添加各种类型的文件文件,就可以转化为PDF,支持Word、Excel、图片...

    PDF.js 解析PDF文件demo

    pdf.js 解析PDF文件DEMO 下载这个DEMO 轻松搞定在线解析PDF文件 支持翻页浏览 pdf.js 是一个技术原型主要用于在 HTML5 平台上展示 PDF 文档,无需任何本地技术支持 注意:只兼容支持HTML5的浏览器

    华为全套设计规范PDF文档

    01.华为的世界.pdf 02.华为内部C贵言培训资料.pdf 03.华为EMC资料.PDF 04.华为PCB的EMC设计指南.pdf 05.华为模电教程1.PDF 06.华为模电教程2.PDF 07.华为模拟电路设计全册.pdf 08.华为Hi3515(ARM9)之高速电路硬件...

    poi创建word、生成html、itext将html转换成pdf。pd4ml将jsp转成pdf

    1.用户导入word生成pdf -首先导入word的时候读取word里面的全部内容。调用(ReadAndWriteDoc)然后将内容 传送到createPdf里面生成pdf。导入的时候读取采用poi /生成的时候采用的是itext 2.通过读取数据库...

    C#打印PDF的类库 PdfPrintingNet 无水印破解版

    C#打印PDF的类库 PdfPrintingNet 无水印破解版 直接驱动打印机,打印速度快(响应速度 )。可以用作快递标签打印等 代码很简单。PdfPrint后面两个参数是用户名和注册码,原版如果注册码不正确会有水印。现在可以...

    微软面试100题系列之高清完整版PDF文档[带目录+标签]by_July

    闲不多说,眼下九月正是校招,各种笔试,面试进行火热的时节,希望此份微软面试100题系列的PDF文档能给正在找工作的朋友助一臂之力! 如果读者发现了本系列任何一题的答案有问题,错误,bug,恳请随时不吝指正,...

    单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf

    单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松...

    非常好用的PDF工具,PDF合并,自动生成PDF书签

    非常好用的PDF工具,合并PDF,自动生成PDF书签

Global site tag (gtag.js) - Google Analytics