利用itext操作pdf从数据库导出大量数据--创建PDF相关(二)

利用itext操作pdf从数据库导出大量数据–创建PDF相关(二)

相关代码以及jar包说明文件:http://download.csdn.net/detail/baby_soga/7105763
Java代码   收藏代码
  1. package com.fruitking.testpdf.util;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileOutputStream;  
  6. import java.io.IOException;  
  7. import java.io.OutputStream;  
  8.   
  9. import com.lowagie.text.Document;  
  10. import com.lowagie.text.DocumentException;  
  11. import com.lowagie.text.Font;  
  12. import com.lowagie.text.Paragraph;  
  13. import com.lowagie.text.pdf.BaseFont;  
  14. import com.lowagie.text.pdf.PdfWriter;  
  15.   
  16. public class PDFCreate1File {  
  17.       
  18.       
  19.     /** 
  20.      * 创建一份PDF文档 
  21.      * @param fullFilePath 
  22.      */  
  23.     public boolean createPDFFile(String fullFilePath){  
  24.         Document pdfDocument = new Document();  
  25.         try {  
  26.             //构建一个PDF文档输出流程  
  27.             OutputStream pdfFileOutputStream = new FileOutputStream(new File(fullFilePath));  
  28.             PdfWriter.getInstance(pdfDocument,pdfFileOutputStream);  
  29.             //设置中文字体和字体样式  
  30.             BaseFont bfChinese = BaseFont.createFont(”STSong-Light”“UniGB-UCS2-H”, BaseFont.NOT_EMBEDDED);    
  31.             Font f2 = new Font(bfChinese, 2, Font.NORMAL);  
  32.             Font f6 = new Font(bfChinese, 6, Font.NORMAL);  
  33.             Font f10 = new Font(bfChinese, 10, Font.NORMAL);  
  34.             Font f12 = new Font(bfChinese, 12, Font.BOLD);  
  35.             //打开PDF文件流  
  36.             pdfDocument.open();  
  37.             //设置PDF文件正文内容  
  38.             pdfDocument.add(new Paragraph(“中国程序员周报”, f12));   
  39.             //换行  
  40.             pdfDocument.add(new Paragraph(“ ”,f6));   
  41.             //换行  
  42.             pdfDocument.add(new Paragraph(“中国程序员工作时间调查报告”, f10));   
  43.             //换行  
  44.             pdfDocument.add(new Paragraph(“ ”, f2));  
  45.             return true;  
  46.         }catch(FileNotFoundException de) {  
  47.             de.printStackTrace();  
  48.             System.err.println(”pdf file: ” + de.getMessage());  
  49.             return false;  
  50.         }catch(DocumentException de) {  
  51.             de.printStackTrace();  
  52.             System.err.println(”document: ” + de.getMessage());  
  53.             return false;  
  54.         }catch(IOException de) {  
  55.             de.printStackTrace();  
  56.             System.err.println(”pdf font: ” + de.getMessage());  
  57.             return false;  
  58.         }finally{  
  59.             //关闭PDF文档流,OutputStream文件输出流也将在PDF文档流关闭方法内部关闭  
  60.             if(pdfDocument!=null){  
  61.                 pdfDocument.close();  
  62.             }  
  63.         }          
  64.     }  
  65.       
  66.     /** 
  67.      * 创建一份PDF文档,且标注作者等信息 
  68.      * @param fullFilePath 
  69.      */  
  70.     public boolean createPDFFileWithCreatorInfo(String fullFilePath){  
  71.         Document pdfDocument = new Document();  
  72.         try {  
  73.             //构建一个PDF文档输出流程  
  74.             OutputStream pdfFileOutputStream = new FileOutputStream(new File(fullFilePath));  
  75.             PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument,pdfFileOutputStream);  
  76.             //PDF版本(默认1.4)  
  77.             pdfWriter.setPdfVersion(PdfWriter.PDF_VERSION_1_4);  
  78.             //文档属性  
  79.             pdfDocument.addTitle(”水果大王信息技术有限公司数据安全产品”);  
  80.             pdfDocument.addAuthor(”杭州水果大王信息技术有限公司”);  
  81.             pdfDocument.addSubject(”文件导出的信息安全管控”);  
  82.             pdfDocument.addKeywords(”文件导出,信息安全”);//文档关键字信息  
  83.             pdfDocument.addCreator(”水果大王文件取数系统”);//应用程序名称  
  84.             //设置中文字体和字体样式  
  85.             BaseFont bfChinese = BaseFont.createFont(”STSong-Light”“UniGB-UCS2-H”, BaseFont.NOT_EMBEDDED);    
  86.             Font f2 = new Font(bfChinese, 2, Font.NORMAL);  
  87.             Font f6 = new Font(bfChinese, 6, Font.NORMAL);  
  88.             Font f10 = new Font(bfChinese, 10, Font.NORMAL);  
  89.             Font f12 = new Font(bfChinese, 12, Font.BOLD);  
  90.             //打开PDF文件流  
  91.             pdfDocument.open();  
  92.             //设置PDF文件正文内容  
  93.             pdfDocument.add(new Paragraph(“中国程序员周报”, f12));   
  94.             //换行  
  95.             pdfDocument.add(new Paragraph(“ ”,f6));   
  96.             //换行  
  97.             pdfDocument.add(new Paragraph(“中国程序员工作时间调查报告”, f10));   
  98.             //换行  
  99.             pdfDocument.add(new Paragraph(“ ”, f2));  
  100.             return true;  
  101.         }catch(FileNotFoundException de) {  
  102.             de.printStackTrace();  
  103.             System.err.println(”pdf file: ” + de.getMessage());  
  104.             return false;  
  105.         }catch(DocumentException de) {  
  106.             de.printStackTrace();  
  107.             System.err.println(”document: ” + de.getMessage());  
  108.             return false;  
  109.         }catch(IOException de) {  
  110.             de.printStackTrace();  
  111.             System.err.println(”pdf font: ” + de.getMessage());  
  112.             return false;  
  113.         }finally{  
  114.             //关闭PDF文档流,OutputStream文件输出流也将在PDF文档流关闭方法内部关闭  
  115.             if(pdfDocument!=null){  
  116.                 pdfDocument.close();  
  117.             }  
  118.         }          
  119.     }  
  120.       
  121.     /** 
  122.      * 创建一份PDF文档,并把该文档设置成只读权限 
  123.      * @param fullFilePath 
  124.      */  
  125.     public boolean createReadOnlyPDFFile(String fullFilePath){  
  126.         Document pdfDocument = new Document();  
  127.         try {  
  128.             //构建一个PDF文档输出流程  
  129.             OutputStream pdfFileOutputStream = new FileOutputStream(new File(fullFilePath));  
  130.             PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument,pdfFileOutputStream);  
  131.             pdfWriter.setEncryption(nullnull,PdfWriter.ALLOW_PRINTING, PdfWriter.STANDARD_ENCRYPTION_128);  
  132.             //设置中文字体和字体样式  
  133.             BaseFont bfChinese = BaseFont.createFont(”STSong-Light”“UniGB-UCS2-H”, BaseFont.NOT_EMBEDDED);    
  134.             Font f2 = new Font(bfChinese, 2, Font.NORMAL);  
  135.             Font f6 = new Font(bfChinese, 6, Font.NORMAL);  
  136.             Font f10 = new Font(bfChinese, 10, Font.NORMAL);  
  137.             Font f12 = new Font(bfChinese, 12, Font.BOLD);  
  138.             //打开PDF文件流  
  139.             pdfDocument.open();  
  140.             //设置PDF文件正文内容  
  141.             pdfDocument.add(new Paragraph(“中国程序员周报”, f12));   
  142.             //换行  
  143.             pdfDocument.add(new Paragraph(“ ”,f6));   
  144.             //换行  
  145.             pdfDocument.add(new Paragraph(“中国程序员工作时间调查报告”, f10));   
  146.             //换行  
  147.             pdfDocument.add(new Paragraph(“ ”, f2));  
  148.             return true;  
  149.         }catch(FileNotFoundException de) {  
  150.             de.printStackTrace();  
  151.             System.err.println(”pdf file: ” + de.getMessage());  
  152.             return false;  
  153.         }catch(DocumentException de) {  
  154.             de.printStackTrace();  
  155.             System.err.println(”document: ” + de.getMessage());  
  156.             return false;  
  157.         }catch(IOException de) {  
  158.             de.printStackTrace();  
  159.             System.err.println(”pdf font: ” + de.getMessage());  
  160.             return false;  
  161.         }finally{  
  162.             //关闭PDF文档流,OutputStream文件输出流也将在PDF文档流关闭方法内部关闭  
  163.             if(pdfDocument!=null){  
  164.                 pdfDocument.close();  
  165.             }  
  166.         }          
  167.     }  
  168.       
  169.     /** 
  170.      * 创建一份PDF文档,并把该文档设置成只读权限,且标注文档作者信息 
  171.      * @param fullFilePath 
  172.      */  
  173.     public boolean createReadOnlyPDFFileWithCreatorInfo(String fullFilePath){  
  174.         Document pdfDocument = new Document();  
  175.         try {  
  176.             //构建一个PDF文档输出流程  
  177.             OutputStream pdfFileOutputStream = new FileOutputStream(new File(fullFilePath));  
  178.             PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument,pdfFileOutputStream);  
  179.             //PDF版本(默认1.4)  
  180.             pdfWriter.setPdfVersion(PdfWriter.PDF_VERSION_1_4);  
  181.             //文档属性  
  182.             pdfDocument.addTitle(”水果大王信息技术有限公司数据安全产品”);  
  183.             pdfDocument.addAuthor(”杭州水果大王信息技术有限公司”);  
  184.             pdfDocument.addSubject(”文件导出的信息安全管控”);  
  185.             pdfDocument.addKeywords(”文件导出,信息安全”);//文档关键字信息  
  186.             pdfDocument.addCreator(”水果大王文件取数系统”);//应用程序名称  
  187.             pdfWriter.setEncryption(nullnull,PdfWriter.ALLOW_PRINTING, PdfWriter.STANDARD_ENCRYPTION_128);  
  188.             //设置中文字体和字体样式  
  189.             BaseFont bfChinese = BaseFont.createFont(”STSong-Light”“UniGB-UCS2-H”, BaseFont.NOT_EMBEDDED);    
  190.             Font f2 = new Font(bfChinese, 2, Font.NORMAL);  
  191.             Font f6 = new Font(bfChinese, 6, Font.NORMAL);  
  192.             Font f10 = new Font(bfChinese, 10, Font.NORMAL);  
  193.             Font f12 = new Font(bfChinese, 12, Font.BOLD);  
  194.             //打开PDF文件流  
  195.             pdfDocument.open();  
  196.             //设置PDF文件正文内容  
  197.             pdfDocument.add(new Paragraph(“中国程序员周报”, f12));   
  198.             //换行  
  199.             pdfDocument.add(new Paragraph(“ ”,f6));   
  200.             //换行  
  201.             pdfDocument.add(new Paragraph(“中国程序员工作时间调查报告”, f10));   
  202.             //换行  
  203.             pdfDocument.add(new Paragraph(“ ”, f2));  
  204.             return true;  
  205.         }catch(FileNotFoundException de) {  
  206.             de.printStackTrace();  
  207.             System.err.println(”pdf file: ” + de.getMessage());  
  208.             return false;  
  209.         }catch(DocumentException de) {  
  210.             de.printStackTrace();  
  211.             System.err.println(”document: ” + de.getMessage());  
  212.             return false;  
  213.         }catch(IOException de) {  
  214.             de.printStackTrace();  
  215.             System.err.println(”pdf font: ” + de.getMessage());  
  216.             return false;  
  217.         }finally{  
  218.             //关闭PDF文档流,OutputStream文件输出流也将在PDF文档流关闭方法内部关闭  
  219.             if(pdfDocument!=null){  
  220.                 pdfDocument.close();  
  221.             }  
  222.         }          
  223.     }  
  224.       
  225.     /** 
  226.      * 创建一份PDF文档,并把该文档设置成只读权限,且标注文档作者信息,并需要作者指定密码才能打开的文件 
  227.      * @param fullFilePath 
  228.      */  
  229.     public boolean createReadOnlyPDFFileWithCreatorPassword(String fullFilePath,String openPassword,String creatorPassword){  
  230.         Document pdfDocument = new Document();  
  231.         try {  
  232.             //构建一个PDF文档输出流程  
  233.             OutputStream pdfFileOutputStream = new FileOutputStream(new File(fullFilePath));  
  234.             PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument,pdfFileOutputStream);  
  235.             //PDF版本(默认1.4)  
  236.             pdfWriter.setPdfVersion(PdfWriter.PDF_VERSION_1_4);  
  237.             //文档属性  
  238.             pdfDocument.addTitle(”水果大王信息技术有限公司数据安全产品”);  
  239.             pdfDocument.addAuthor(”杭州水果大王信息技术有限公司”);  
  240.             pdfDocument.addSubject(”文件导出的信息安全管控”);  
  241.             pdfDocument.addKeywords(”文件导出,信息安全”);//文档关键字信息  
  242.             pdfDocument.addCreator(”水果大王文件取数系统”);//应用程序名称  
  243.             pdfWriter.setEncryption(openPassword.getBytes(), creatorPassword.getBytes(),PdfWriter.ALLOW_PRINTING, PdfWriter.STANDARD_ENCRYPTION_128);  
  244.             //设置中文字体和字体样式  
  245.             BaseFont bfChinese = BaseFont.createFont(”STSong-Light”“UniGB-UCS2-H”, BaseFont.NOT_EMBEDDED);    
  246.             Font f2 = new Font(bfChinese, 2, Font.NORMAL);  
  247.             Font f6 = new Font(bfChinese, 6, Font.NORMAL);  
  248.             Font f10 = new Font(bfChinese, 10, Font.NORMAL);  
  249.             Font f12 = new Font(bfChinese, 12, Font.BOLD);  
  250.             //打开PDF文件流  
  251.             pdfDocument.open();  
  252.             //设置PDF文件正文内容  
  253.             pdfDocument.add(new Paragraph(“中国程序员周报”, f12));   
  254.             //换行  
  255.             pdfDocument.add(new Paragraph(“ ”,f6));   
  256.             //换行  
  257.             pdfDocument.add(new Paragraph(“中国程序员工作时间调查报告”, f10));   
  258.             //换行  
  259.             pdfDocument.add(new Paragraph(“ ”, f2));  
  260.             return true;  
  261.         }catch(FileNotFoundException de) {  
  262.             de.printStackTrace();  
  263.             System.err.println(”pdf file: ” + de.getMessage());  
  264.             return false;  
  265.         }catch(DocumentException de) {  
  266.             de.printStackTrace();  
  267.             System.err.println(”document: ” + de.getMessage());  
  268.             return false;  
  269.         }catch(IOException de) {  
  270.             de.printStackTrace();  
  271.             System.err.println(”pdf font: ” + de.getMessage());  
  272.             return false;  
  273.         }finally{  
  274.             //关闭PDF文档流,OutputStream文件输出流也将在PDF文档流关闭方法内部关闭  
  275.             if(pdfDocument!=null){  
  276.                 pdfDocument.close();  
  277.             }  
  278.         }          
  279.     }  
  280.   
  281.     /** 
  282.      * @param args 
  283.      */  
  284.     public static void main(String[] args) {  
  285.         PDFCreate1File pdfCreate1File = new PDFCreate1File();  
  286.         long startTime1 = System.currentTimeMillis();  
  287.         boolean result1 = pdfCreate1File.createPDFFile(“D:/temp/pdftest/11helloword你好.pdf”);  
  288.         long endTime1 = System.currentTimeMillis();  
  289.         System.out.println(”pdf文档创建结果:” + result1+“。总计花费时间:”+((endTime1-startTime1)/1000)+“秒”);  
  290.         System.out.println(”————————————————————————–”);  
  291.         long startTime2 = System.currentTimeMillis();  
  292.         boolean result2 = pdfCreate1File.createPDFFileWithCreatorInfo(“D:/temp/pdftest/12数据安全管控产品白皮书.pdf”);  
  293.         long endTime2 = System.currentTimeMillis();  
  294.         System.out.println(”数据安全管控产品白皮书的pdf文档创建结果:” + result2+“。总计花费时间:”+((endTime2-startTime2)/1000)+“秒”);  
  295.         System.out.println(”————————————————————————–”);  
  296.         long startTime3 = System.currentTimeMillis();  
  297.         boolean result3 = pdfCreate1File.createReadOnlyPDFFile(“D:/temp/pdftest/13只读权限PDF文档.pdf”);  
  298.         long endTime3 = System.currentTimeMillis();  
  299.         System.out.println(”只读权限的pdf文档创建结果:” + result3+“。总计花费时间:”+((endTime3-startTime3)/1000)+“秒”);  
  300.         System.out.println(”————————————————————————–”);  
  301.         long startTime4 = System.currentTimeMillis();  
  302.         boolean result4 = pdfCreate1File.createReadOnlyPDFFileWithCreatorInfo(“D:/temp/pdftest/14只读权限并标注作者信息文档.pdf”);  
  303.         long endTime4 = System.currentTimeMillis();  
  304.         System.out.println(”只读权限并标注作者信息的pdf文档创建结果:” + result4+“。总计花费时间:”+((endTime4-startTime4)/1000)+“秒”);  
  305.         System.out.println(”————————————————————————–”);  
  306.         long startTime5 = System.currentTimeMillis();  
  307.         boolean result5 = pdfCreate1File.createReadOnlyPDFFileWithCreatorPassword(“D:/temp/pdftest/15只读权限并标注作者信息加密文档.pdf”,“123456”,“xuguo123”);  
  308.         long endTime5 = System.currentTimeMillis();  
  309.         System.out.println(”只读权限并标注作者信息的加密pdf文档创建结果:” + result5+“。总计花费时间:”+((endTime5-startTime5)/1000)+“秒”);  
  310.     }  
  311. }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值