`

导PDF

    博客分类:
  • J2EE
阅读更多
package com.book.web;

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

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.book.entity.Shop;
import com.book.util.BaseDao;
import com.book.util.DateFormatHelper;
import com.lowagie.text.Cell;
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.Phrase;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;

/**导出pdf
 * @author liuluogen 2011-01-20
 *
 */
public class PDFAction extends DispatchAction
{

	private BaseDao baseDao;

	@SuppressWarnings("unchecked")
	public ActionForward outPDF(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception
	{
		try {
			Document document = new Document();
			ByteArrayOutputStream ba = new ByteArrayOutputStream();
			PdfWriter p = PdfWriter.getInstance(document, ba);
			
			document.open();
			BaseFont bfChinese = BaseFont.createFont("STSong-Light",
					"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
			Font fontChinese = new Font(bfChinese, 8, Font.NORMAL);
			Font fontHead = new Font(bfChinese, 10, Font.BOLD);

			Table datatable = new Table(4); // 新生成一个表,参数表示列
			float[] headerwidths = { 30, 30, 24, 60 };// 设置每一列的宽度
			
			
			datatable.setWidths(headerwidths);
			datatable.setPadding(3);
			datatable.setBorder(1);

			datatable.addCell(new Phrase("用户详细信息", fontHead));
			Cell cell = new Cell("");
			cell.setColspan(3);
			datatable.addCell(cell);

			datatable.addCell(new Phrase("客户编号", fontChinese));
			datatable.addCell(new Phrase("HZ00000001", fontChinese));
			datatable.addCell(new Phrase("联系人", fontChinese));
			datatable.addCell(new Phrase(" Contact Name ", fontChinese));
			// DefaultHorizontalAlignment
			// datatable.addColumns(2);
			datatable.addCell(new Phrase("客户名称(中文)", fontChinese));
			datatable.addCell(new Phrase("HZ-CSPC", fontChinese));
			datatable.addCell(new Phrase("联系电话(传真)", fontChinese));
			datatable.addCell(new Phrase("  0752-9999999(0752-0000000) ",
					fontChinese));
			//       
			// datatable.addColumns(3);
			datatable.addCell(new Phrase("客户名称(英文", fontChinese));
			datatable.addCell(new Phrase("惠州-CSPC", fontChinese));
			datatable.addCell(new Phrase("电子信箱", fontChinese));
			datatable.addCell(new Phrase("  Contact@Mail.com   ", fontChinese));

			// datatable.addColumns(4);
			datatable.addCell(new Phrase("客户类型", fontChinese));
			datatable.addCell(new Phrase("钻石客", fontChinese));
			datatable.addCell(new Phrase("站点URL", fontChinese));
			datatable.addCell(new Phrase("  www.cspc.com  ", fontChinese));

			// datatable.addColumns(5);
			datatable.addCell(new Phrase("  地址   ", fontChinese));
			datatable.addCell(new Phrase("  惠州-中海壳  ", fontChinese));
			cell = new Cell("");
			cell.setColspan(2);
			datatable.addCell(cell);
			
			document.add(datatable);
			document.close();
			
			
			response.setContentType("application/pdf");
			response.setContentLength(ba.size());
			ServletOutputStream out = response.getOutputStream();
			ba.writeTo(out);
			out.flush();
		}
		catch (Exception e){
			e.printStackTrace();
		}

		return null;
	}
	
	@SuppressWarnings("unchecked")
	public ActionForward outPDFShop(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception
	{

		try{
			Document document = new Document();
			ByteArrayOutputStream ba = new ByteArrayOutputStream();
			PdfWriter p = PdfWriter.getInstance(document, ba);
			
			document.open();
			BaseFont bfChinese = BaseFont.createFont("STSong-Light",
					"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
			Font fontChinese = new Font(bfChinese, 8, Font.NORMAL);
			Font fontHead = new Font(bfChinese, 10, Font.BOLD);

			Table datatable = new Table(4); // 新生成一个表,参数表示列
			float[] headerwidths = { 10, 30, 24, 60 };// 设置每一列的宽度
			
			datatable.setWidths(headerwidths);
			datatable.setPadding(3);
			datatable.setBorder(1);
		 
			datatable.addCell(new Phrase("序号", fontHead));
			datatable.addCell(new Phrase("书城编号", fontHead));
			datatable.addCell(new Phrase("书城名称", fontHead));
			datatable.addCell(new Phrase("创建时间", fontHead));
			
			//添加书城列表
			List<Shop> shop = baseDao.findAll(Shop.class);
			int i=1;
			for (Shop shop2 : shop){
				datatable.addCell(new Phrase( String.valueOf(i++), fontChinese));
				datatable.addCell(new Phrase(shop2.getWh(), fontChinese));
				datatable.addCell(new Phrase(shop2.getShopName(), fontChinese));
				datatable.addCell(new Phrase(DateFormatHelper.getStringDate(shop2.getCreateTime()), fontChinese));
			}
			document.add(datatable);
			document.close();
			response.setContentType("application/pdf");
			response.setContentLength(ba.size());
			ServletOutputStream out = response.getOutputStream();
			ba.writeTo(out);
			out.flush();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

		return null;
	}

	public void setBaseDao(BaseDao baseDao)
	{
		this.baseDao = baseDao;
	}

}

  • pdf.rar (3.5 MB)
  • 下载次数: 10
分享到:
评论

相关推荐

    html导pdf入门

    这个压缩包“html导pdf入门”提供了一个简单的示例,帮助初学者理解如何将HTML页面转化为PDF格式。通过解压并运行“demo.html”,你可以直观地看到转换的效果。 在Web开发中,HTML是一种标记语言,用于构建网页结构...

    Struts2 + JasperReport应用一:导PDF,Excel,HTML显示

    在“Struts2 + JasperReport应用一:导PDF,Excel,HTML显示”这篇博文中,作者将介绍如何结合这两个工具来实现动态报表的生成和导出。 首先,我们需要了解Struts2的基础知识。Struts2框架是Apache软件基金会的一个...

    pb 数据窗口 导出 pdf

    在本场景中,我们关注的是如何将数据窗口对象导出为PDF格式。这通常用于创建可打印、可分享的报告或文档。在PB9版本中,由于对高版本的Aladdin Ghostscript(一个开源的PostScript和PDF处理工具)不兼容,所以需要...

    GENESIS2000中将GERBER转换为PDF文件视频教材

    本教程将详细介绍如何在GENESIS2000环境下,利用WINXP操作系统将GERBER图形转换成便于查看和打印的PDF文件。 首先,理解GERBER文件格式至关重要。GERBER文件是二进制或ASCII文本格式,用于描述电路板的各个层,如铜...

    IReport使用Javabean做为数据源导PDF

    ### IReport 使用 JavaBean 作为数据源导出 PDF #### 概述 本文档将详细介绍如何使用 IReport 工具,结合 JavaBean 集合作为数据源来创建和导出 PDF 报表。相比于传统的 JDBC 数据源,使用 JavaBean 作为数据源具有...

    广联达软件报错及解决办法.pdf

    ### 广联达软件常见错误及其解决方法 #### 一、引言 广联达软件是国内知名的建筑行业软件之一,广泛应用于建筑工程造价管理和施工管理等领域。然而,在使用过程中,用户可能会遇到各种各样的错误提示,这不仅会影响...

    Solidedge工程图批量转换为PDF软件

    在工程图制作过程中,有时我们需要将Solidedge创建的工程图导出为PDF格式,以便于分发、查看或打印。这款“Solidedge工程图批量转换为PDF软件”正是为了解决这一需求而设计的。 首先,让我们深入了解一下Solidedge...

    中文版的数论导PDF版

    这本书中有学习数论的基础知识以及提高,适合初学者.

    网页导出 pdf 内容被截断的终极解决方案

    html2canvas 与 jspdf 相结合生成 pdf 内容被截断的终极解决方案,设置背景色为白色,然后转成图片后,获取截断处图片像素点,从截断处往上一行行扫描像素点颜色,碰到这一行颜色都是全白的,代表是从这里开始截断,...

    word to pdf嵌入字体的问题

    ### Word to PDF嵌入字体问题详解 #### 一、引言 在进行文档转换时,尤其是在将Word文档转换为PDF格式的过程中,确保字体正确嵌入是非常重要的一步。正确的字体嵌入不仅能确保文档的一致性和可读性,还能提高文档...

    flying sauser生成PDF所需jar包

    flying sauser,基于iText自身的问题,让我们开始寻求可以真正意义上模版技术,那么flying sauser就是为了这个问题出现的产品,能解析HTML和CSS,而且能输出成image,PDF等格式。具体使用,请访问:...

    《简历模板》--在线简历生成模板(超高兼容可导PDF).zip

    个人花大量时间整理出的简历模板,内容丰富,无论是应届生,还是职场老手,都有相应的模板,节约自身时间,提升效率。 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源,包含简历模板、PPT模板、...

    虚拟打印机(打印机将内容转换成PDF文件)Adobe_PDF_Printer7.zip

    虚拟打印机是一种特殊的软件工具,它并不像传统的物理打印机那样将文档打印在纸上,而是将打印内容转换成电子格式,如PDF(Portable Document Format)文件。Adobe PDF Printer 7是Adobe公司提供的一款虚拟打印机...

    战图全自动识别图框大小(含加长图框)批量打印PDFV2.2.rar

    这款软件的核心功能在于其强大的自动化能力,能够精准地识别图纸中的图框大小,包括加长图框,从而实现批量打印PDF文档,极大地提高了工作效率。 在描述中提到的“战图批量打印V2.2.12版”,这表明该软件已经经过了...

    奈末office批量转PDF助手 v8.7.zip

    奈末office批量转PDF助手是一款是一款简单好用的格式转换软件。软件无需打开文件,就能实现将多个Word,Excel,PowerPoint文档批量转换成PDF文件,软件界面美观简洁、简单全面、实用方便,可快速上手,轻轻松松完成...

    水晶报表转成PDF

    "水晶报表转成PDF" 本文档主要介绍如何使用 Crystal Reports 将报表导出为 PDF 文件。Crystal Reports 是一款功能强大且流行的报表生成工具,它能够生成各种格式的报表,包括 PDF、Excel、Word 等。 首先,需要在...

    最新公路同望预算软件操作教程.pdf

    最新公路同望预算软件操作教程.pdf

    Allegro导出的PDF档

    Allegro导出的PDF档工程装配图如何实现索取功能

Global site tag (gtag.js) - Google Analytics