您的位置:首页 > 编程语言 > Java开发

java导入导出pdf文档实践

2007-10-11 17:59 507 查看
1:mysql数据库存储pdf流字段为:filed name: filestream type: MEDIUMBLOB

2:导入pdf文件到mysql 数据库




private void doWrite() ...{




try ...{






if (new File("D:/Sun.pdf").exists()) ...{


FileInputStream fis = new FileInputStream(new File(


"D:/Sun.pdf"));


PreparedStatement pstmt = cnn


.prepareStatement("insert into tb(filestream) values(?) ");


pstmt.setBinaryStream(1, fis, 1024);


pstmt.execute();


}




} catch (Exception e) ...{


e.printStackTrace();


}


}

3:从mysql数据库读取pdf流到网页客户端显示




private void doRead(HttpServletRequest request, HttpServletResponse response) ...{




try ...{


ByteArrayOutputStream ba = new ByteArrayOutputStream();


Statement stmt = cnn.createStatement();


ResultSet rs = stmt.executeQuery("select filestream from tb where id=1");


rs.next();


InputStream is = rs.getBinaryStream(1);


int c;


while ((c = is.read()) != -1)


ba.write(c);


Document document = new Document(PageSize.A4, 36, 36, 36, 36);


PdfWriter writer = PdfWriter.getInstance(document, ba);


// document.close();


response.setContentType("application/pdf");


response.setContentLength(ba.size());


ServletOutputStream out = response.getOutputStream();


ba.writeTo(out);


out.flush();




} catch (Exception e) ...{


e.printStackTrace();


}


}

4:下载jar包:itext-2.0.6.jar iTextAsian.jar(此包是解决中文乱码用)

5:完整源码


import java.io.BufferedInputStream;


import java.io.ByteArrayOutputStream;


import java.io.File;


import java.io.FileInputStream;


import java.io.IOException;


import java.io.InputStream;


import java.sql.Connection;


import java.sql.DriverManager;


import java.sql.PreparedStatement;


import java.sql.ResultSet;


import java.sql.Statement;




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.lowagie.text.Document;


import com.lowagie.text.DocumentException;


import com.lowagie.text.PageSize;


import com.lowagie.text.Paragraph;


import com.lowagie.text.pdf.PdfWriter;






public class PDFGenerateServlet extends HttpServlet ...{


private Connection cnn = null;




public void doGet(HttpServletRequest request, HttpServletResponse response)




throws IOException, ServletException ...{






try ...{


InitConnection();


String s = request.getParameter("method");




if (s.equals("w")) ...{


doWrite();


}




if (s.equals("r")) ...{


doRead(request, response);


}




/**//*


* Statement stmt = cnn.createStatement(); ResultSet rs =


* stmt.executeQuery(""); InputStream is = rs.getBinaryStream("");


* int c; while ((c = is.read()) != 1) ba.write(c); // ba=new


* ByteArrayOutputStream(rs.getBlob("")); PdfWriter writer =


* PdfWriter.getInstance(document, ba); document.open();


* document.add(new Paragraph("Hello World"));


*/






} catch (Exception e) ...{




}




}




public void doPost(HttpServletRequest request, HttpServletResponse response)




throws IOException, ServletException ...{


doGet(request, response);


}






private void doWrite() ...{




try ...{






if (new File("D:/Sun.pdf").exists()) ...{


FileInputStream fis = new FileInputStream(new File(


"D:/Sun.pdf"));


PreparedStatement pstmt = cnn


.prepareStatement("insert into tb(filestream) values(?) ");


pstmt.setBinaryStream(1, fis, 1024);


pstmt.execute();


}




} catch (Exception e) ...{


e.printStackTrace();


}


}






private void doRead(HttpServletRequest request, HttpServletResponse response) ...{




try ...{


ByteArrayOutputStream ba = new ByteArrayOutputStream();


Statement stmt = cnn.createStatement();


ResultSet rs = stmt.executeQuery("select filestream from tb where id=1");


rs.next();


InputStream is = rs.getBinaryStream(1);


int c;


while ((c = is.read()) != -1)


ba.write(c);


Document document = new Document(PageSize.A4, 36, 36, 36, 36);


PdfWriter writer = PdfWriter.getInstance(document, ba);


// document.close();


response.setContentType("application/pdf");


response.setContentLength(ba.size());


ServletOutputStream out = response.getOutputStream();


ba.writeTo(out);


out.flush();




} catch (Exception e) ...{


e.printStackTrace();


}


}






private void InitConnection() ...{




try ...{


Class.forName("com.mysql.jdbc.Driver");


cnn = DriverManager.getConnection(


"jdbc:mysql://localhost:3306/jms", "root", "aastocks");






} catch (Exception e) ...{




}


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: