JAVA导出pdf实例
一、直接导出成PDF
Java代码
1. import java.io.FileNotFoundException;
2. import java.io.FileOutputStream;
3.
4. import com.itextpdf.text.Document;
5. import com.itextpdf.text.DocumentException;
6. import com.itextpdf.text.Paragraph;
7. import com.itextpdf.text.pdf.PdfWriter;
8.
9. public class ItextProduce {
10.
11. public static void main(String[] args) {
12. Document doc = null;
13. try {
14. doc = new Document();
15. PdfWriter.getInstance(doc, new FileOutputStream("C:\\itext.pdf"));
16. doc.open();
17. doc.add(new Paragraph("Hello World"));
18. } catch (FileNotFoundException e) {
19. e.printStackTrace();
20. } catch (DocumentException e) {
21. e.printStackTrace();
22. } finally {
23. doc.close();
24. }
25. }
26.
27. }
二、由Servlet导出PDF
Java代码
package com.lwf.eus.servlet;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
public class ListRocarsReportServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public ListRocarsReportServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
Document doc = new Document();
ByteArrayOutputStream ba = new ByteArrayOutputStream();
try {
PdfWriter writer = PdfWriter.getInstance(doc, ba);
doc.open();
doc.add(new Paragraph("Hello World"));
} catch (DocumentException e) {
e.printStackTrace();
}
doc.close();
response.setContentType("application/pdf");
response.setContentLength(ba.size());
ServletOutputStream out = response.getOutputStream();
ba.writeTo(out);
out.flush();
}
}
三、由JSP导出成PDF
Java代码
1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
2. pageEncoding="ISO-8859-1"%>
3. <%@ page
4. import="java.io.ByteArrayOutputStream,
5. com.itextpdf.text.Document,
6. java.io.DataOutput,java.io.DataOutputStream,
7. com.itextpdf.text.Paragraph,
8. com.itextpdf.text.DocumentException,
9. com.itextpdf.text.Document.*,
10. com.itextpdf.text.pdf.*"%>
14. <%
15. response.setContentType("application/pdf");
16. Document doc = new Document();
17. ByteArrayOutputStream ba = new ByteArrayOutputStream();
19. PdfWriter writer = PdfWriter.getInstance(doc, ba);
20. doc.open();
21. doc.add(new Paragraph("Hello World"));
2. doc.close();
24. DataOutput output = new DataOutputStream(response.getOutputStream());
25. byte[] bytes = ba.toByteArray();
26. response.setContentLength(bytes.length);
27. for (int i = 0; i < bytes.length; i++) {
28. output.writeByte(bytes[i]);
29. }
30. %>
Java导出pdf文档实例
package com.helloweenvsfei.itext; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; public class FirstPDF {
public static void main(String[] args) { // 创建文档对象,A4纸大小
Document document = new Document(PageSize.A4); try {
// 输出为E:\itext.pdf文件
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("E:\\itext.pdf ")); // 打开文档 document.open(); // 在pdf文件中写入文字
document.add(new Paragraph("Hello World, Hello iText")); // 关闭文档
document.close(); } catch (Exception e) { e.printStackTrace(); } } }
该程序运行后,将在E盘的根目录下生成一个itext.pdf文件,该pdf文件打开后,效果如图40.2所示。
(点击查看大图)图40.2 iText生成的pdf文件
通过以上的程序,总结出使用iText生成一个pdf的步骤如下: (1)创建Document对象。
Document document = new Document(); 其中,Document有3个构造方法,如下: public Document();
public Document(Rectangle pageSize);
public Document(Rectangle pageSize,int marginLeft,int marginRight,int marginTop,int marginBottom)。
pageSize是纸张类型的大小,通常可以使用PageSize中的常量来表示,例如PageSize.A4表示A4纸张。marginLeft、marginRight、marginTop和marginBottom分别是正文距离页边的左、右、上、下的补白大小。
(2)创建书写器(Writer)与document对象关联,通过书写器可以将文档写入磁盘中。
PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream ("E:\\itext.pdf ")); (3)打开文档。 document.open(); (4)写入文档内容。
document.add(new Paragraph("Hello iText"));
写入的文档内容可以是多种类型,这里是带格式的文本Paragraph,还可以是Phrase、Paragraph、Table、Graphic对象等。 (5)关闭文档。 document.close();
通过以上5个步骤,就可以生成pdf文档了。
JAVA导出pdf实例的更多相关文章
- java导出pdf功能记录
这几天已在做处理导出pdf文件的功能,摸索了几天总算可以了.记录下这几天遇到的问题. 1.网上基本都是基于Itext5和Itext7来处理的.我最终是在Itext5上成功了,itext7应该是模板出问 ...
- Java导出Pdf格式表单
前言 作为开发人员,工作中难免会遇到复杂表单的导出,接下来介绍一种通过Java利用模板便捷导出Pdf表单的方式 模拟需求 需求:按照下面格式导出pdf格式的学生成绩单 准备工作 Excel软件 ...
- Java导出pdf文件数据
提示:导出pdf文件,需要3个jar包iText-2.1.5.jar,iTextAsian.jar,iText-rtf-2.1.4.jar. public boolean outputPdfJhsy( ...
- java导出pdf
//导出 public void ScoringAnnouncementdownLoad() throws MalformedURLException, IOException, D ...
- 一次java导出pdf的经历
近期由于工作需要,需要将html代码导入到pdf中,经过了几种pdf的方案对比后发现IText是最简单和便捷的一种方式,于是乎采用了Itext. PDF生成 第一步:导入Maven依赖 <!-- ...
- java根据模板导出PDF详细教程
原文:https://blog.csdn.net/pengyufight/article/details/75305128 题记:由于业务的需要,需要根据模板定制pdf文档,经测试根据模板导出word ...
- java根据模板导出pdf
在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模板,有的只是随便把数据放里面生成文件,完全不考虑数据怎样放置的以及以后的维护性,想想还是自己总结一个完全版的导出 ...
- java利用itext导出pdf
项目中有一功能是导出历史记录,可以导出pdf和excel,这里先说导出pdf.在网上查可以用那些方式导出pdf,用itext比较多广泛. 导出pdf可以使用两种方式,一是可以根据已有的pdf模板,进行 ...
- java根据模板文件导出pdf
原文:https://www.cnblogs.com/wangpeng00700/p/8418594.html 在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模 ...
随机推荐
- jQuery源码-dom操作之jQuery.fn.html
写在前面 前面陆陆续续写了jQuery源码的一些分析,尽可能地想要cover里面的源码细节,结果导致进度有些缓慢.jQuery的源码本来就比较晦涩,里面还有很多为了解决兼容问题很引入的神代码,如果不g ...
- 【JavaScript】JS_Object跟Function的区别
JS_Object和Function的区别 我们本次的解释,主要通过下图 粗看该图,估计你不一定能看明白.不过接下来让我逐行向你解释. 最左侧:意思是,有两个对象f1和f2,他们是通过new Foo( ...
- JUnit之持续集成(CI,Continuous Integration)
序,测试驱动开发告诉我们,要尽早测试,经常测试.如果我们进行一点小改动时,都把所有的单元测试.集成测试和功能测试执行一遍,这就会非常浪费时间.为了避免这一点,在开发期间我们只执行单元测试,那么集成测试 ...
- GATK软件介绍
背景介绍 GATK全称是The Genome Analysis Toolkit,是Broad Institute(The Broad Institute, formerly the Broad Ins ...
- SGU 495. Kids and Prizes
水概率....SGU里难得的水题.... 495. Kids and Prizes Time limit per test: 0.5 second(s)Memory limit: 262144 kil ...
- 【转】(笔记)CANopen协议【CANFestival】移植方法
一.背景 CAN组网就必须得要应用层协议,原因就在于 * 便于网络管理与控制 * 确认数据的收发 * 发送大于8个字节的数据块(CAN每帧数据传输大小为8字节) * 为不同节点分配不同的报文标识符 * ...
- Hadoop 之MongoDB
NoSql 简介: COUCH DB REDIS MONGODB NEO4J HBASE BIGTABLE 存储非结构化数据 索引多:单键,多键,数组,全文,2D. MonggoDB数据类型: nul ...
- Ubuntu 14 安装 “宋体,微软雅黑,WPS Office的symbol、wingdings、wingdings 2、wingdings 3、webding字体,Consolas雅黑混合版编程字体” 等 Windows 7 下的字体
Windows平台下,“宋体”.“微软雅黑”.“Courier New(编程字体)”用的比较多,看的也习惯了.那如何在 Ubuntu下也安装这些字体呢? 操作步骤如下: 第一步:从 Windows 7 ...
- Redis学习笔记六:独立功能之 Lua 脚本
Redis 2.6 开始支持 Lua 脚本,通过在服务器环境嵌入 Lua 环境,Redis 客户端中可以原子地执行多个 Redis 命令. 使用 eval 命令可以直接对输入的脚本求值: 127.0. ...
- 淘宝(阿里百川)手机客户端开发日记第十篇 阿里百川服务器环境介绍之API文档的快速链接(四)
个人感觉比较重要的快速链接: http://open.taobao.com/doc/detail.htm?id=102513 http://open.taobao.com/doc/detail.htm ...