代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
使用pdfbox解析pdf文档信息(属性,内容,图片)
作者:
andrea
/ 发布于
2017/8/29
/
521
package parse; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocumentCatalog; import org.apache.pdfbox.pdmodel.PDDocumentInformation; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage; import org.apache.pdfbox.util.PDFTextStripper; /** * 使用 pdfbox 解析pdf 文档信息 * @author longhuiping * */ public class PDFParse { public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static void main(String[] args) throws Exception { PDFParse p = new PDFParse(); String pdfPath="E:\\上海项目测试\\文档\\35.pdf"; String imgSavePath="E:\\上海项目测试\\pdfImage\\"; pdfParse(pdfPath, imgSavePath); } /** * 解析pdf文档信息 * @param pdfPath pdf文档路径 * @throws Exception */ public static void pdfParse( String pdfPath, String imgSavePath ) throws Exception { InputStream input = null; File pdfFile = new File( pdfPath ); PDDocument document = null; try{ input = new FileInputStream( pdfFile ); //加载 pdf 文档 document = PDDocument.load( input ); /** 文档属性信息 **/ PDDocumentInformation info = document.getDocumentInformation(); System.out.println( "标题:" + info.getTitle() ); System.out.println( "主题:" + info.getSubject() ); System.out.println( "作者:" + info.getAuthor() ); System.out.println( "关键字:" + info.getKeywords() ); System.out.println( "应用程序:" + info.getCreator() ); System.out.println( "pdf 制作程序:" + info.getProducer() ); System.out.println( "作者:" + info.getTrapped() ); System.out.println( "创建时间:" + dateFormat( info.getCreationDate() )); System.out.println( "修改时间:" + dateFormat( info.getModificationDate())); //获取内容信息 PDFTextStripper pts = new PDFTextStripper(); String content = pts.getText( document ); System.out.println( "内容:" + content ); /** 文档页面信息 **/ PDDocumentCatalog cata = document.getDocumentCatalog(); List pages = cata.getAllPages(); int count = 1; for( int i = 0; i < pages.size(); i++ ) { PDPage page = ( PDPage ) pages.get( i ); if( null != page ) { PDResources res = page.findResources(); //获取页面图片信息 Map imgs = res.getImages(); if( null != imgs ) { Set keySet = imgs.keySet(); Iterator it = keySet.iterator(); while( it.hasNext() ) { Object obj = it.next(); PDXObjectImage img = ( PDXObjectImage ) imgs.get( obj ); img.write2file( imgSavePath + count ); count++; } } } } }catch( Exception e) { throw e; }finally{ if( null != input ) input.close(); if( null != document ) document.close(); } } /** * 获取格式化后的时间信息 * @param dar 时间信息 * @return * @throws Exception */ public static String dateFormat( Calendar calendar ) throws Exception { if( null == calendar ) return null; String date = null; try{ String pattern = DATE_FORMAT; SimpleDateFormat format = new SimpleDateFormat( pattern ); date = format.format( calendar.getTime() ); }catch( Exception e ) { throw e; } return date == null ? "" : date; } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
andrea
贡献的其它代码
(
8
)
.
使用pdfbox解析pdf文档信息(属性,内容,图片)
.
延迟删除临时文件
.
查看TOP SQL
.
截取中英文字符串无乱码
.
捕获,控制浏览器回退事件
.
取出字段中的大写字母
.
获取Set中第一个值
.
存储过程中传递动态Sql语句
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3