java导入导出pdf文档实践

原创 2007年10月11日 17:59:00

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, 36363636);
            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, 36363636);
            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) ...{

        }

    }

}

 

 

PDF文件的书签批量自动导入和导出 PDFBookmark-Exchanger

PDF文件的书签导入和导出 PDFBookmark-Exchanger摘要    PDF电子书是最流行的格式,可以注释可以带书签目录方便阅读。本文介绍了这个软件用于PDF书签的导入、导出、交换。并提供...
  • yinqingwang
  • yinqingwang
  • 2017-12-06 23:26:48
  • 1919

PDF书签导入导出工具

  • 2017年05月23日 11:42
  • 983KB
  • 下载

java pdf 文件上传

action="clientCreditQueryOrder_importFile.do" id="form2" enctype="multipart/form-data" method="post"...
  • mxlgslcd
  • mxlgslcd
  • 2017-06-23 09:59:58
  • 705

java实现文件上传并预览效果

java实现文件上传并预览效果 先简单了解下该实现的原理:该项目实现 office文件在线预览,如doc,docx,ppt,pptx,xls,xlxs...
  • ShangFangZuoZhi
  • ShangFangZuoZhi
  • 2015-07-02 14:25:32
  • 4418

java读取pdf(怎么就上传不了呢)

  • 2011年07月26日 14:36
  • 3KB
  • 下载

java读取pdf文件内容

 java读取pdf文件内容         在java中要读取pdf文件内容,我们可以借助第三方软件实现。常用的是xpdf,本文就简单介绍在linux下如何安装xpdf,及在java中如何利用xpd...
  • hbcui1984
  • hbcui1984
  • 2007-06-01 15:31:00
  • 21810

java根据模板生成pdf文件并导出

首先你的制作一个pdf模板: 1.先用word做出模板界面 2.文件另存为pdf格式文件 3.通过Adobe Acrobat pro软件打开刚刚用word转换成的pdf文件(注:如果没有这个软件可...
  • TOP__ONE
  • TOP__ONE
  • 2017-03-23 13:18:29
  • 29747

java读取pdf总结

第三方软件 1、pdfbox PDFBox 0.7.3。PDFBox是一个开源的对pdf文件进行操作的库。 PDFBox-0.7.3.jar加入classpath。同时FontBox1.0.jar...
  • meifage
  • meifage
  • 2011-11-13 00:42:20
  • 46722

java解析PDF所需的基础jar包

  • 2015年11月09日 16:55
  • 3.81MB
  • 下载

java实现pdf文件下载

          实现点击超链接下载pdf文件,该pdf文件的内容又跟jsp页面的数据有关。实质就是一个打印吧。       若对此打印有一个pdf的template,要先加载template,即把...
  • yexuelian
  • yexuelian
  • 2007-07-04 17:59:00
  • 14984
收藏助手
不良信息举报
您举报文章:java导入导出pdf文档实践
举报原因:
原因补充:

(最多只允许输入30个字)