JAVA和pdfbox

来源:互联网 发布:华润网络校园招聘2017 编辑:程序博客网 时间:2024/06/05 04:12
介绍:
PDFBox是一个开源的可以操作PDF文档的Java PDF类库。它可以创建一个新PDF文档,操作现有PDF文档并提取文档中的内容。
它具有以下特性:
1.将一个PDF文档转换输出为一个文本文件。 
2.可以从文本文件创建一个PDF文档。
3.加密/解密PDF文档。
4.向已有PDF文档中追加内容。
5.可以从PDF文档生成一张图片。
6.可以与Jakarta Lucene搜索引擎的整合。


      在src里有个package 名叫org.pdfbox.examples ,顾名思义,装的就是一些demo
本文列出个引子,浅浅的研究了一下,基本功能还能用的上,以下是对其应用的理解:
首先是基本对象与文件的对应情况:PDDocument            PDPage    PDPageContentStream   
                                                            pdf文件            文件中的页                 内容的数据流

PDDocument doc = new PDDocument(); //在内存中建立一个pdf的文档

PDPage page = new PDPage(); //在内存中建立一个页面

doc.addPage(page);//将页面加到文件中,页面依次后排



//以上就初始化了基本的pdf编辑环境,然后用doc.save("file.pdf");就能建立一个带空白页的文件了
//若要继续添加内容就是操作 contentStream了,可以往里面加图片,加文字等等。

PDPageContentStream contentStream = new PDPageContentStream(doc, page);//建立page的数据流对象
写文字:
    contentStream.beginText();
    contentStream.moveTextPositionByAmount(100,100);
    contentStream.drawString("CK!!");
    contentStream.endText();
画方块:
     contentStream.setNonStrokingColor( Color.CYAN );//设置颜色
     contentStream.fillRect( 10, 10, 100, 100 );//参数含义依次为:起始x坐标,起始y坐标,方块宽 度,                                                                         //方块高度
插入图片:
     PDXObjectImage ximage = new PDJpeg(doc, new FileInputStream( “ck.jpg”) );
     contentStream.drawImage( ximage, 20, 20 );//后面的为插入图片的左下角在页中的坐标

注意: 在保存文件是记得一定要先关闭数据流,方法:contentStream.close();


以下是修改PDF:
     
     打开PDF:
                   
PDDocument doc=PDDocument.load( “ck.pdf” ); //用PDDocument的静态方法load可以将一pdf文件导入内存

                    List allPages = doc.getDocumentCatalog().getAllPages();//得到文档的所有page
                   
                     PDPage page = (PDPage)allPages.get(0);//得到文档的第一个page
//如此以来,doc,page就都得到了
原创粉丝点击