如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx

上传人:b****2 文档编号:11792521 上传时间:2023-06-02 格式:DOCX 页数:17 大小:1.25MB
下载 相关 举报
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第1页
第1页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第2页
第2页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第3页
第3页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第4页
第4页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第5页
第5页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第6页
第6页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第7页
第7页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第8页
第8页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第9页
第9页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第10页
第10页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第11页
第11页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第12页
第12页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第13页
第13页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第14页
第14页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第15页
第15页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第16页
第16页 / 共17页
如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx

《如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx》由会员分享,可在线阅读,更多相关《如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx(17页珍藏版)》请在冰点文库上搜索。

如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例.docx

如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例

1.1如何应用ICEpdf系统实现将PDF文档转换为PNG格式图片的应用示例

1.1.1应用ICEpdf系统实现将PDF文档转换为PNG图片的应用示例

1、构建示例测试Java应用程序项目

(1)在MyEclipse开发工具中创建一个项目名称为JavaPDFApp的Java应用程序项目

(2)设置项目名称为JavaPDFApp

(3)项目结果

2、将ICEpdf系统文件加入到项目的编译环境中

(1)启动项目的属性菜单

(2)切换到JavaBuildPath页中的Libraries选项页

(3)将下载的ICEpdf系统文件加入到项目的编译环境中

3、在MyEclipse开发工具中创建示例程序类

(1)示例程序类名称为PDFToPNGImagePictureByICEpd,程序包名称为com.bluedream.icepdf

(2)将创建出PDFToPNGImagePictureByICEpd程序类的初始代码

4、编程PDFToPNGImagePictureByICEpd程序类的功能实现代码

(1)编程PDFToPNGImagePictureByICEpd程序类中的功能方法

本示例实现将PDF文档转换为JPEG格式的图片,而JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式。

它允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:

1到40:

1之间,压缩比越大,品质就越低。

相反地,压缩比越小,品质就越好,当然也可以在图像质量和文件尺寸之间找到平衡点。

JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。

(2)在MyEclipse开发工具中编程本示例的程序代码,需要引入两个系统程序包:

importcom.sun.image.codec.jpeg.JPEGCodec;

importcom.sun.image.codec.jpeg.JPEGImageEncoder;

由于它们都是Sun公司的内部功能类及方法,并没有在JavaAPI中公开过,所以使用这些类及方法是不安全的,将来随时可能会从中去除。

另外在正常的编译时会如下的编译报错:

Accessrestriction:

ThetypeJPEGImageEncoderisnotaccessibleduetorestrictiononrequiredlibraryxxxx.jar

错误产生的主要原因是:

MyEclipse默认把这些受访问限制的API设成了ERROR。

此时解决办法:

只要把Windows-Preferences-Java-Complicer-Errors/Warnings里面的DeprecatedandrestrictedAPI中的Forbiddenreferences(accessrules)选为Warning就可以编译通过。

(3)PDFToPNGImagePictureByICEpd程序类的完整代码示例

packagecom.bluedream.icepdf;

importjava.awt.image.BufferedImage;

importjava.awt.image.RenderedImage;

importjava.io.File;

importjava.io.IOException;

importjava.util.ArrayList;

importjava.util.List;

importjava.util.UUID;

importjavax.imageio.ImageIO;

importorg.icepdf.core.pobjects.Document;

importorg.icepdf.core.pobjects.Page;

importorg.icepdf.core.util.GraphicsRenderingHints;

publicclassPDFToPNGImagePictureByICEpd{

/**

*存储转换结果的各个图片的文件路径和文件名称信息

*/

privateListresultImagesFileNameList=null;

publicPDFToPNGImagePictureByICEpd(){

super();

}

publicListgetResultImagesFileNameList(){

returnresultImagesFileNameList;

}

/**

*

*@paramorignalPDTFileName转换前的原始的PDF文件绝对路径和文件名称,比如StringorignalPDTFileName="D:

\\软件项目程序\\Demo1\\demo1.pdf";

*@paramresultImagePathName转换后的图片存储的目录路径名称(绝对路径),比如StringresultImagePathName="D:

\\软件项目程序\\Demo1\\result\\";

*@paramexePandParameters为PDF的放大参数,也就转换后的图片的尺寸为原始的PDF页尺寸的倍数,默认为1.0(与原始的PDF文件页尺寸相同);<1.0为缩小,>1.0为放大

*@paramisPDFFileDeleted转换后是否要删除原始的PDF文件,=true删除原始的PDF文件,=false不删除原始的PDF文件

*/

publicbooleandoTransferPdfFileToPNGPicture(StringorignalPDTFileName,

StringresultImagePathName,floatscaleFactors,

booleanisPDFFileDeleted){

/**

*最终转换是否成功的返回状态标志,=false表示转换不成功,=true表示转换成功

*/

booleanisTransferOK=false;

/**

*转动的角度

*/

floatrotation=0f;

BufferedImageoneBufferedImage=null;

DocumentcurrentPDFDocument=null;

/**

*创建一个PDF文档对象

*/

currentPDFDocument=newDocument();

try{

/**

*将所创建出的PDF文档对象与待转换的PDF文档文件相互关联。

*/

try{

currentPDFDocument.setFile(orignalPDTFileName);

}

catch(ExceptiononeException){

oneException.printStackTrace();

}

/**

*获得PDF文档中的总页数

*/

inttotalPagesInPDFDocument=currentPDFDocument.getNumberOfPages();

/**

*创建存储转换后的各个图片的文件名称列表信息的集合对象,在上层的调用方法中可以获得,从而可以在界面中显示出各个结果图片。

*/

resultImagesFileNameList=newArrayList();

/**

*对所获得的PDF文档中的每一页的内容进行转换

*/

for(intcurrentPageNumberIndex=0;currentPageNumberIndex

/**

*获得PDF文档中的某一页的内容,并转换为对应的Java内存图片对象

*/

oneBufferedImage=

(BufferedImage)currentPDFDocument.getPageImage(currentPageNumberIndex,

GraphicsRenderingHints.SCREEN,Page.BOUNDARY_TRIMBOX,

rotation,scaleFactors);

/**

*构建出转换后的每页图片的文件路径和文件名称

*/

StringsomeOneImageFileName=resultImagePathName+

currentPageNumberIndex+"_"+UUID.randomUUID().toString()+".png";

Filefile=newFile(someOneImageFileName);

resultImagesFileNameList.add(someOneImageFileName);

try{

file.createNewFile();

}

catch(IOExceptione){

e.printStackTrace();

}

try{

ImageIO.write(oneBufferedImage,"png",file);

}

catch(IOExceptione){

e.printStackTrace();

}

oneBufferedImage.flush();

}

}

finally{

/**

*释放所创建出的PDF文档对象所占用的系统空间

*/

currentPDFDocument.dispose();

}

isTransferOK=true;

returnisTransferOK;

}

publicstaticvoidmain(String[]args){

/**

*转换前的原始的PDF文件绝对路径和文件名称

*/

StringorignalPDTFileName="E:

\\pdf\\testPDFFile.pdf";

/**

*转换后的图片存储的目录路径名称(绝对路径),抓换后的结果图片为*.jpg格式,这样的文件容量比较小,而如果抓换为*.png格式,则图片文件容量比较大,不利于界面中的显示。

*/

StringresultImagePathName="E:

\\pdf\\result\\";

/**

*转动的角度(旋转度数),=0不旋转

*/

floatrotationAngle=0.0f;

/**

*为PDF的放大参数(转成成图片以后对图片的放大倍数),也就转换后的图片的尺寸为原始的PDF页尺寸的倍数,默认为1.0(与原始的PDF文件页尺寸相同);<1.0为缩小,>1.0为放大。

*它影响抓换后的图片中的字体清晰度。

但是这个参数不能太大,如文件特别大的时候就会内存溢出,建议在1~2之间。

*/

floatscaleFactors=1f;

/**

*转换后是否要删除原始的PDF文件,=true删除原始的PDF文件,=false不删除原始的PDF文件

*/

booleanisPDFFileDeleted=false;

PDFToPNGImagePictureByICEpdonePDFToPNGImagePictureByICEpd=

newPDFToPNGImagePictureByICEpd();

/**

*调用转换的目标方法,并获得最终转换是否成功的返回状态标志,=false表示转换不成功,=true表示转换成功

*/

booleanisTransferOK=

onePDFToPNGImagePictureByICEpd.doTransferPdfFileToPNGPicture(

orignalPDTFileName,resultImagePathName,scaleFactors,isPDFFileDeleted);

/**

*识别本次转换是否成功,如果转换成功,则获得转换后的各个图片的文件名称列表信息,从而可以在界面中显示出各个结果图片

*/

if(isTransferOK){

/**

*存储转换结果的各个图片的文件路径和文件名称信息

*/

ListresultImagesFileNameList=null;

/**

*转换成功,则获得转换后的各个图片的文件名称列表信息,从而可以在界面中显示出各个结果图片

*/

resultImagesFileNameList=

onePDFToPNGImagePictureByICEpd.getResultImagesFileNameList();

}

}

}

5、执行PDFToPNGImagePictureByICEpd程序类

(1)给定测试用的PDF文档文件及转换后的图片文件的存放目录

本示例的测试用的PDF文档文件存放在E盘中的pdf目录中,测试用的PDF文档文件的文件名称为testPDFFile.pdf

转换后的图片文件的存放目录为E:

\pdf\resultImg。

(2)执行PDFToPNGImagePictureByICEpd程序类

开始执行PDFToPNGImagePictureByICEpd程序类,如下为程序执行后的输出提示信息的局部截图:

(3)PDFToPNGImagePictureByICEpd程序类的执行结果

(4)浏览转换后的图片文件的内容与原始的PDF文档中对应的内容完全保持一致性

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2