java pdf工具类_iText—java导出PDF工具类

import java.awt.Color;

import java.awt.Point;

import java.io.ByteArrayOutputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.net.MalformedURLException;

import java.util.Date;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import com.lowagie.text.Anchor;

import com.lowagie.text.Annotation;

import com.lowagie.text.BadElementException;

import com.lowagie.text.Cell;

import com.lowagie.text.Chapter;

import com.lowagie.text.Chunk;

import com.lowagie.text.Document;

import com.lowagie.text.DocumentException;

import com.lowagie.text.Element;

import com.lowagie.text.Font;

import com.lowagie.text.HeaderFooter;

import com.lowagie.text.Image;

import com.lowagie.text.ListItem;

import com.lowagie.text.PageSize;

import com.lowagie.text.Paragraph;

import com.lowagie.text.Phrase;

import com.lowagie.text.Rectangle;

import com.lowagie.text.Section;

import com.lowagie.text.Table;

import com.lowagie.text.pdf.PdfWriter;

public class PdfUtil {

private static final Log log = LogFactory.getLog(PdfUtil.class);//

日志

public static void exportPdf(String content, String pdfPath) {

Document document =

null;

OutputStream out = null;

try {

//

1.建立com.lowagie.text.Document对象的实例

document =

new Document();

//

2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中

out = new

FileOutputStream(pdfPath);

PdfWriter.getInstance(document, out);

//

3.打开文档

document.open();

//

4.向文档中添加内容

document.add(new Paragraph(content)); // 会中文乱码

} catch (FileNotFoundException

e) {

e.printStackTrace();

} catch (DocumentException e)

{

e.printStackTrace();

} finally {

document.close();// 5.关闭文档

try {

out.close();

} catch

(IOException e) {

e.printStackTrace();

}

}

}

public static void exportPdf(Paragraph para, String pdfPath,

boolean

vertical) {

Document doc = null;

OutputStream out = null;

try {

//

1.建立com.lowagie.text.Document对象的实例

doc =

buildDoc(vertical);

//

2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中

out = new

FileOutputStream(pdfPath);

PdfWriter.getInstance(doc, out);

//

3.打开文档

doc.open();

//

4.向文档中添加内容

doc.add(para);

} catch (Exception e) {

e.printStackTrace();

log.debug("生成pdf出错");

} finally {

close(doc,

out);// 5.关闭

}

}

public static void exportPdf(Document doc, Element element, String

pdfPath) {

OutputStream out = null;

try {

//

2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中

out = new

FileOutputStream(pdfPath);

PdfWriter.getInstance(doc, out);

//

3.打开文档

doc.open();

//

4.向文档中添加内容

doc.add(element);

} catch (Exception e) {

e.printStackTrace();

log.debug("生成pdf出错");

} finally {

close(doc,

out);// 5.关闭

}

}

public static void exprotPdf(Document doc, PdfBean pdfBean) {

OutputStream out = null;

try {

//

2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中

out = new

FileOutputStream(pdfBean.getFileName());

PdfWriter

writer = gerPdfWriter(doc, out);

doc =

setPdfProperty(doc, pdfBean); // 设置属性

//

加密处理

if

(pdfBean.isEncryptFlag()) {

List permissionList = pdfBean.getPermissionList();

if (permissionList != null &&

permissionList.size() > 0) {

int allPermission = 0;

for (Iterator it = permissionList.iterator(); it.hasNext();)

{

int permission = (Integer) it.next();

allPermission = allPermission | permission; // 有或运算来累加权限

}

writer = encrypt(writer, pdfBean.getUserPsw(), pdfBean

.getOwnerPsw(), allPermission);

}

}

//

3.打开文档

doc.open();

//

4.向文档中添加内容

List

elementList = pdfBean.getElementList();

if(elementList != null &&

!elementList.isEmpty()){

for(Iterator it = elementList.iterator(); it.hasNext();){

Element element = (Element) it.next();

doc.add(element);

}

}

} catch (Exception e) {

e.printStackTrace();

log.debug("生成pdf出错");

} finally {

close(doc,

out);// 5.关闭

}

}

public static void exprotPdfToUrl(Document doc, PdfBean pdfBean,

HttpServletResponse response) {

ByteArrayOutputStream bao =

null;

ServletOutputStream out =

null;

try {

//

2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中

bao = new

ByteArrayOutputStream();

PdfWriter

writer = gerPdfWriter(doc, bao);

doc =

setPdfProperty(doc, pdfBean); // 设置属性

//

加密处理

if

(pdfBean.isEncryptFlag()) {

List permissionList = pdfBean.getPermissionList();

if (permissionList != null &&

permissionList.size() > 0) {

int allPermission = 0;

for (Iterator it = permissionList.iterator(); it.hasNext();)

{

int permission = (Integer) it.next();

allPermission = allPermission | permission; // 有或运算来累加权限

}

writer = encrypt(writer, pdfBean.getUserPsw(), pdfBean

.getOwnerPsw(), allPermission);

}

}

//

3.打开文档

doc.open();

//

4.向文档中添加内容

List

elementList = pdfBean.getElementList();

if(elementList != null &&

!elementList.isEmpty()){

for(Iterator it = elementList.iterator(); it.hasNext();){

Element element = (Element) it.next();

doc.add(element);

}

}

doc.close();

//关闭document

//response设置

response.setContentType("application/pdf");

// response.setHeader("Content-Disposition",

"attachment;filename=\"temp.pdf\""); // response.setHeader("Cache-Control", "must-revalidate, post-check=0,

pre-check=0"); // response.setHeader("Pragma",

"public"); // response.setDateHeader("Expires", (System.currentTimeMillis() +

1000)); response.setContentLength(bao.size());

out =

response.getOutputStream();

bao.writeTo(out);

out.flush(); } catch (Exception e) {

e.printStackTrace();

log.debug("页面输出pdf出错");

} finally {

try {

bao.close();

out.close();

} catch

(IOException e) {

e.printStackTrace();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值