(网上资料)
package **.**.**.action;
import java.awt.Color;
import java.io.FileOutputStream;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.easydone.util.ParamUtil;
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
/**
* <p>Title: 本程序演示一个 action 怎样操作PDF文档</p>
* <p>Description: 所用开源包:itext-1.4.jar,iTextAsian.jar</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: 聚能易成</p>
* @author dirboy
* @version 1.0
*/
public class PdfAction extends Action {
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//创建一个文档对象,设置文档的页面大小
Document document = null;
String pdfName = (new Random()).nextInt()+".pdf";
String pdf = ParamUtil.getStr((String)request.getParameter("pdf"));
String sysPath = request.getRealPath("/");
try {
Rectangle pSize=new Rectangle(650,500);
//Rectangle rectPageSize = new Rectangle(PageSize.A4);// 定义A4页面大小
//rectPageSize = rectPageSize.rotate();// 加上这句可以实现A4页面的横置
//文档的背景色
pSize.setBackgroundColor(Color.white);
//设置字体,需要包iTextAsian.jar
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
//创建一个文档对象,设置初始化大小和页边距
document = new Document(pSize,50,50,50,50);
//定义一个表格
PdfPTable table = new PdfPTable(3);
Paragraph tinfo = null;
for(int i=0;i<9;i++){
PdfPCell cell = new PdfPCell();
tinfo = new Paragraph("中文", FontChinese);
cell.addElement(tinfo);
table.addCell(cell);
}
//义一个图片
Image jpeg = Image.getInstance("C://aa.jpeg");
jpeg.setAlignment(Image.ALIGN_CENTER);
//定义输出位置并把文档对象装入输出对象中
String savePath = sysPath+"/pdf/"+pdfName;
PdfWriter.getInstance(document, new FileOutputStream(savePath));
//打开文档对象
document.open();
document.add(table);
document.add(jpeg);
//加入文档内容,中文处理
Paragraph t = new Paragraph(pdf, FontChinese);
document.add(t);
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("message","get Info Error"+e.getMessage());
return mapping.findForward("globalException");
}finally{
document.close();
}
request.setAttribute("message","下载地址:"+"<a href='/pdf/"+pdfName+"'>下载</a>");
return mapping.findForward("success");
}
}
分享到:
相关推荐
5. **IO流**:输入/输出操作,包括文件操作、字节流和字符流。 6. **多线程**:如何创建和管理线程,同步机制如synchronized关键字和wait/notify机制。 7. **网络编程**:Socket编程,创建客户端和服务端进行网络...
"java_ptf:testirovanie 260221"这个标题可能指的是一个Java项目,其中“ptf”可能是“Programming Test Framework”的缩写,意味着这是一个用于测试的Java程序框架。日期"260221"可能代表2021年2月26日,这可能是...
6. **输入/输出流**:Java的I/O系统允许程序进行文件操作和网络通信。书中例子会演示如何读写文件,以及如何使用BufferedReader和PrintWriter进行文本处理。 7. **网络编程**:Java提供了Socket编程接口,例子将...
《Java Web开发实战1200例》第二卷是一本深度探索Java Web开发技术的书籍,源码.zip文件包含了书中所有实例的完整源代码。这本书旨在通过大量的实践案例,帮助读者掌握Java Web开发的核心技能,从基础到进阶,全方位...
- **操作符与表达式**:如算术、比较、逻辑操作符,用于执行计算和控制流程。 - **预编译指令**:如`#include`,在编译前处理的指令,用于引入其他文件或定义宏。 - **结构,联合和枚举**:数据结构类型,结构...
在这里,"ptf"很可能是指"PDF"(Portable Document Format)的误拼,这是一种通用的文档格式,能够保持原文档的布局和格式,方便在不同设备和操作系统上阅读。严蔚敏版的《数据结构》PDF包含了教材的全部内容,读者...
全书共分11章,内容包括JSP简介、JSP语法、JSP内置对象、JSP与Javabean、Java Servlet、MVC模式、在JSP中使用数据库、文件操作、使用XML以及、交友信息发布网等内容。本书所有知识都结合具体实例进行介绍,力求详略...
- **透明性**:通过配置文件或注解来实现对象与数据库表的映射,无需编写SQL语句。 - **高效性**:提供二级缓存机制,减少对数据库的访问次数。 - **灵活性**:支持多种数据库,并可方便地切换数据库类型。 - **...
在ptf格式的文件中,可能包含了以上所有书籍的练习题解答,以文本形式呈现。使用合适的阅读器打开ptf文件,可以查看和学习其中的内容。为了充分利用这些资源,建议读者按照以下步骤操作: 1. 下载并安装支持ptf格式...
iTextPDF是一个开源的Java库,专门用于创建、修改和处理PDF文档。它提供了丰富的API,使得开发者能够方便地进行PDF操作。在本例中,我们关注的是如何在已有PDF的指定页面上插入图片,并控制图片的绝对位置。 首先,...
PTF(Portable Document Format)文件是一种常见的文档格式,能够保留原始文档的布局和格式,确保在不同的操作系统和设备上阅读时的一致性。因此,“ant中文帮助ptf格式下载”意味着我们可以获取到一份关于Ant的中文...
- 开发 Node.js 应用时,开发者可以直接在命令行通过 `node` 命令启动交互式开发模式,或编写 `.js` 文件运行脚本。 - 例如,打印 "Hello, World!" 的基本代码是 `console.log('Hello, World!')`。 Node.js 的...
魂斗罗java源码一系列惊人的渗透测试功能。 [渗透测试]()是对计算机系统及其物理基础设施发起授权和模拟攻击以暴露潜在的安全弱点和漏洞的做法。 在线资源 渗透测试功能 [Metasploit Unleashed] () - 免费的攻击性...
8. 编程语言基础知识:书籍涵盖了多种编程语言的基础知识,如C、C++、Java、Python等,旨在帮助读者熟悉编程语言和开发环境。 9. 信息学应用领域:书籍还介绍了信息学的应用领域,包括人工智能、数据挖掘、计算机...
提供的"深入性能测试LoadRunner性能测试,流程,监控,调优全程实战剖析.pdf"文档,将详细阐述以上内容,对于想要深入理解和掌握LoadRunner性能测试的人员来说,是一份宝贵的参考资料。 通过学习和实践,你可以有效地...
- **补丁程序(PTF)的检查**: 定期更新系统补丁。 **3.2 文件系统管理** - **创建 pv**: 创建物理卷(PV)是构建文件系统的第一步。 - **创建 VG**: 创建卷组(VG),将多个物理卷组合在一起。 - **创建 LV**: 在卷组上...
IDAA捕获重播该项目使IDAA用户可以捕获生产IDAAV5工作负载并在IDAAV7上运行这些工作负载。 理想情况下,这是在...先决条件IDAAV5加速器必须为V5 PTF8或更高版本。 包含xmlparser的Java编译器。 这些程序需要Linux命令
7. **额外框架组件**:除了开源部分,还有未公开的组件,如图形化的产品安装器和分发器、基于IBM PTF概念的版本控制工具、全面的性能调查工具、Java/SWING GUI性能增强器和调查员等。如果社区有足够兴趣,这些组件也...