介绍:
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就都得到了
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就都得到了