jar:iText-2.1.4.jar,iTextAsian.jar
package com.zjhcsoft.sim.util;
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.log4j.Logger;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
import com.zjhcsoft.sim.device.bean.DeviceItems;
import com.zjhcsoft.sim.si.bean.SiPollrpt;
/***
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Author:wangcheng </p>
*
* <p>Copyright: Copyright (c) 2013 </p>
*
* <p>Company: 浙江鸿程</p>
*
*/
public class PollRptPdf {
Logger logger = Logger.getLogger(PollRptPdf.class);
public void downPdf( HttpServletRequest request,
HttpServletResponse response,SiPollrpt siPollrpt,String filePath){
try {
List deviceList = siPollrpt.getDeviceItemList();
// 创建一个Document对象
com.lowagie.text.Document document = new com.lowagie.text.Document(PageSize.A4, 36, 36, 36, 36);
ByteArrayOutputStream ba = new ByteArrayOutputStream();
//设置宋体
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", true);
Font fontChinese =new Font(bfChinese,15,Font.BOLD,Color.BLACK);
Font normalfont =new Font(bfChinese,13,Font.NORMAL,Color.BLACK);
BaseFont bfChinese2 = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);//设置中文字体
Font headFont2 = new Font(bfChinese2, 13, Font.NORMAL);//设置字体大小
try {
//添加一些信息
document.addTitle("平台巡检报告");
PdfWriter writer = PdfWriter.getInstance(document, ba);
document.open();
Paragraph paragraphTitle1 = new Paragraph("平台巡检报告--("+siPollrpt.getAPPNAME()+")\n",fontChinese);
paragraphTitle1.setAlignment(1);//1.中间,2.右边
Paragraph paragraphTitle2 = new Paragraph("操作员:"+siPollrpt.getUSERNAME()+" ("+siPollrpt.getYEAR()+"年"+siPollrpt.getQUARTERNAME()+")\n",normalfont);
paragraphTitle2.setAlignment(2);//1.中间,2.右边
StringBuffer content1 = new StringBuffer("\n 1.设备运行情况检查总结");
content1.append("\n\t").append(siPollrpt.getRPTDESC());
StringBuffer content2 = new StringBuffer("\n 2.系统网络结构\n\t");
Image image = Image.getInstance(request.getRealPath("\\") + siPollrpt.getFILEPATH());
StringBuffer content3 = new StringBuffer("\n 3.设备具体检查情况");
Paragraph paragraphContent1 = new Paragraph(content1.toString(),normalfont);
Paragraph paragraphContent2 = new Paragraph(content2.toString(),normalfont);
Paragraph paragraphContent3 = new Paragraph(content3.toString(),normalfont);
document.add(paragraphTitle1);
document.add(paragraphTitle2);
document.add(paragraphContent1);
document.add(paragraphContent2);
document.add(image);
document.add(paragraphContent3);
DeviceItems items = null;
for(int i=0;i<deviceList.size();i++){
float[] widths = {70f, 180f, 500f};//设置表格的列宽
PdfPTable table = new PdfPTable(widths);
table.setTotalWidth(750);//设置表格的宽度
table.setSpacingBefore(40f);//设置表格上面空白宽度
items = (DeviceItems)deviceList.get(i);
PdfPCell cellHType = new PdfPCell(new Paragraph(items.getSERVERTYPENAME(),headFont2));
cellHType.setColspan(3);
table.addCell(cellHType);
PdfPCell cellH = new PdfPCell(new Paragraph("编号",headFont2));
cellH.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cellH);
cellH= new PdfPCell(new Paragraph("检查项目",headFont2));
cellH.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cellH);
cellH = new PdfPCell(new Paragraph("检查结果",headFont2));
cellH.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cellH);
PdfPCell cellContent = null;
for(int j=1;j<5;j++){
if(j==1){
cellContent = new PdfPCell(new Paragraph((i+1)+"."+j,headFont2));
table.addCell(cellContent);
cellContent = new PdfPCell(new Paragraph("CPU占用率检查",headFont2));
table.addCell(cellContent);
cellContent = new PdfPCell(new Paragraph(items.getCPU(),headFont2));
table.addCell(cellContent);
}else if(j==2){
cellContent = new PdfPCell(new Paragraph((i+1)+"."+j,headFont2));
table.addCell(cellContent);
cellContent = new PdfPCell(new Paragraph("内存检查",headFont2));
table.addCell(cellContent);
cellContent = new PdfPCell(new Paragraph(items.getMEM(),headFont2));
table.addCell(cellContent);
}else if(j==3){
cellContent = new PdfPCell(new Paragraph((i+1)+"."+j,headFont2));
table.addCell(cellContent);
cellContent = new PdfPCell(new Paragraph("本地硬盘容量检查",headFont2));
table.addCell(cellContent);
cellContent = new PdfPCell(new Paragraph(items.getDISK(),headFont2));
table.addCell(cellContent);
}else if(j==4){
cellContent = new PdfPCell(new Paragraph((i+1)+"."+j,headFont2));
table.addCell(cellContent);
cellContent = new PdfPCell(new Paragraph("进程检查",headFont2));
table.addCell(cellContent);
cellContent = new PdfPCell(new Paragraph(items.getPROCESS(),headFont2));
table.addCell(cellContent);
}
}
document.add(table);
}
} catch (DocumentException de) {
de.printStackTrace();
}
document.close();
response.setHeader("Content-disposition", "attachment; filename=" + new String(filePath.getBytes("GBK"), "iso8859-1"));
response.setContentType("application/pdf");
response.setContentLength(ba.size());
ServletOutputStream out = response.getOutputStream();
ba.writeTo(out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
如有疑问,欢迎加入群:283948248 找群主
分享到:
相关推荐
在IT行业中,生成PDF文件是一项常见的任务,特别是在文档制作、报表导出以及数据展示等领域。iText是一个流行的Java库,专门用于创建和编辑PDF文档。本文将深入探讨iText如何生成包含表格的PDF文件,同时结合提供的...
在Java编程中,生成PDF文件是一项常见的任务,特别是在需要创建报告、发票或任何其他类型的数据文档时。PDF(Portable Document Format)是一种通用的文件格式,能够保持文档的原始布局和样式,便于分享和打印。本篇...
本主题聚焦于使用Java编程语言,结合特定的库或框架,根据预定义的模板来动态生成PDF文件。以下是关于这个主题的详细知识讲解。 一、Java与PDF生成 Java作为一门广泛使用的后端开发语言,提供了丰富的库来处理PDF...
用途:根据PDF模板生成PDF文件,将数据库查询的数据插入到模板指定未知,然后生成新的PDF文件 原理: 代码说明:exprotPDF_Main 为主文件。...支持各种java调用数据库数据,生成PDF文件。多个版本供参考。
Java中的iText库是一个强大的...总的来说,使用Java的iText库生成PDF文件是一项强大的技术,尤其在处理复杂格式和多语言内容时。通过学习和熟练掌握iText的API,开发者可以轻松创建出专业、美观且功能丰富的PDF文档。
### Java后端生成PDF模板合并单元格表格案例详解 #### 概述 本文将详细介绍一个Java后端生成PDF模板,并在此基础上实现单元格合并功能的案例。案例的主要目的是展示如何在Java环境中创建复杂的表格结构,并将其导出...
总的来说,Java 生成 PDF 文件主要涉及创建 `Document`,实例化 `PdfWriter`,打开和关闭文档,以及向文档中添加内容和元数据。`iText` 库提供了丰富的功能,包括表格、列表、图片、链接等,使得创建复杂的 PDF 文档...
本篇文章将深入探讨如何使用Java代码生成PDF报表,并关注如何根据自己的需求绘制表格。 首先,我们需要一个库来帮助我们处理PDF文档。Apache PDFBox是一个非常流行的开源Java库,它可以方便地创建、修改和显示PDF...
在Java编程环境中,生成PDF文件是一项常见的需求,用于创建报告、文档或发票等。本教程将探讨两种主要方法:基于模板的方法和纯代码渲染方法。这两种方法都可以利用Java的强大功能来生成高质量的PDF文档。 首先,让...
在Java编程环境中,生成PDF...总的来说,Java生成PDF文件涉及到多个层次的技术,包括文档结构、内容呈现、I/O操作以及安全性等。通过学习和熟练掌握iText库,开发者可以构建功能强大的PDF生成工具,满足各种业务需求。
Java生成PDF文件是一种常见的需求,特别是在企业级应用中,用于生成报告、发票、合同等文档。iText是一个广泛使用的开源库,专为Java和.NET设计,用于创建和修改PDF文档。在Java中生成PDF文件,iText库是首选工具之...
在Java编程环境中,生成PDF文件是一项常见的需求,特别是在需要创建报告、发票或任何类型的文档时。iText是一个流行的开源库,专门用于处理PDF文档。在这个主题中,我们将深入探讨如何使用iText在Java中生成PDF文件...
首先,我们关注的是"JAVA生成PDF文件"。Java中常用的PDF库有iText、Apache PDFBox、 Flying Saucer等。这里提到了iText,它是一个强大的开源库,可以方便地创建、修改和操作PDF文档。使用iText,你可以添加文本、...
在IT行业中,生成PDF文档是一项常见的任务,尤其在企业级应用和报告自动化中。Java作为广泛应用的编程语言,提供了多种库来实现动态生成PDF。本文将深入探讨如何使用Java源码来实现这一功能。 首先,我们需要了解...
不太推荐需要在代码内部编写PDF格式,如果要使用,建议写个基类,将同一版本 或者同一类型的公共方法写入,差异化的抽象,一个模板一个子类,子类使用@Component命名,使用反射的方式获取模板子类。 2. ...
2. Java生成PDF: - **iText**:这是一个强大的开源库,用于创建和修改PDF文档。使用iText,你可以添加文本、图像、表格、链接等元素到PDF中。 - **基本步骤**:创建一个`Document`对象,然后使用`Document.open()...
PDF文件添加图片是Java开发中常见的一项任务,特别是在生成报告、文档或证书等场景下,可能需要将图像插入到PDF中以增强可视化效果。这里我们将深入探讨如何使用iTextPDF库来实现在PDF中添加图片的功能。 iTextPDF...
在Java开发中,生成PDF文档是一项常见的需求,特别是在企业级应用中,如报表、发票、合同等需要打印或电子化存储的文档。iText是一个强大的Java库,专门用于创建和编辑PDF文档。本文将深入探讨如何使用iText库在Java...
在本篇内容中,我们将聚焦于"Aspose-17.8 Java 生成PDF工具类",了解如何利用Aspose库在Java环境中创建PDF文件。 首先,`aspose.pdf-17.8.jar`是Aspose.Pdf组件的核心库,它允许开发者在Java应用中创建、操作和转换...