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

java导入导出pdf文档实践

2016-07-11 18:44 573 查看
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) {




        }


    }


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