ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:813.29KB ,
资源ID:2771445      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2771445.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(如何应用PDFRenderer系统实现将PDF文档转换为图片的应用示例.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、如何应用PDFRenderer系统实现将PDF文档转换为图片的应用示例1.1 如何应用PDFRenderer系统实现将PDF文档转换为图片的应用示例1.1.1 应用PDFRenderer系统实现将PDF文档转换为图片的应用示例1、构建示例测试Java应用程序项目(1)在MyEclipse开发工具中创建一个项目名称为JavaPDFApp的Java应用程序项目(2)设置项目名称为JavaPDFApp(3)项目结果2、将PDFRenderer系统文件加入到项目的编译环境中(1)启动项目的属性菜单(2)切换到Java Build Path页中的Libraries选项页(3)将下载的PDFRendere

2、r系统文件加入到项目的编译环境中3、在MyEclipse开发工具中创建示例程序类(1)示例程序类名称为PDFToImagePictureByPDFRenderer,程序包名称为com.bluedream.pdfrenderer(2)将创建出PDFToImagePictureByPDFRenderer程序类的初始代码4、编程PDFToImagePictureByPDFRenderer程序类的功能实现代码(1)编程PDFToImagePictureByPDFRenderer程序类中的功能方法(2)PDFToImagePictureByPDFRenderer程序类的完整代码示例package com

3、.bluedream.pdfrenderer;import java.awt.Image;import java.awt.Rectangle;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.RandomAccessFile;import java.lang.reflect.Method;import java.n

4、io.MappedByteBuffer;import java.nio.channels.FileChannel;import java.security.AccessController;import java.security.PrivilegedAction;import java.util.UUID;import com.sun.image.codec.jpeg.ImageFormatException;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGEncodeParam;im

5、port com.sun.image.codec.jpeg.JPEGImageEncoder;import com.sun.pdfview.PDFFile;import com.sun.pdfview.PDFPage;public class PDFToImagePictureByPDFRenderer public PDFToImagePictureByPDFRenderer() super(); /* * * param orignalPDTFileName 转换前的原始的PDF文件绝对路径和文件名称,比如String orignalPDTFileName =D:软件项目程序Demo1de

6、mo1.pdf; * param resultImagePathName 转换后的图片存储的目录路径名称(绝对路径),比如String resultImagePathName =D:软件项目程序Demo1result; * param exePandParameters 图片清晰度(n0.0且n7.0),为PDF的放大参数,也就转换后的图片的尺寸为原始的PDF页尺寸的倍数,默认为1.0(与原始的PDF文件页尺寸相同);1.0为放大 * param isPDFFileDeleted 转换后是否要删除原始的PDF文件, =true 删除原始的PDF文件, =false 不删除原始的PDF文件 */

7、 public boolean doTransferPdfFileToPicture(String orignalPDTFileName, String resultImagePathName, float exePandParameters, boolean isPDFFileDeleted) RandomAccessFile oneRandomAccessFile =null; MappedByteBuffer oneMappedByteBuffer =null; PDFFile onePDFFile =null; FileOutputStream oneFileOutputStream

8、=null; File orignalPDTFile =null; JPEGImageEncoder oneJPEGImageEncoder = null; JPEGEncodeParam oneJPEGEncodeParam = null; FileChannel oneFileChannel = null; /* * 最终转换是否成功的返回状态标志, =false 表示转换不成功, =true 表示转换成功 */ boolean isTransferOK =false; orignalPDTFile = new File(orignalPDTFileName); try try /* *

9、以随机方式读取原始的PDF文档,并创建出RandomAccessFile类的对象实例 */ oneRandomAccessFile = new RandomAccessFile(orignalPDTFile, r); catch (FileNotFoundException e) /* * e.printStackTrace()是在标准错误输出流上打印整个Exception轨迹栈(会把从头到尾的方法都列出来,比较好查找错误),而System.out.print(e)只是打印了e.toString()方法返回的结果。e.printStackTrace()的信息更丰富,更完整。 * e.print

10、StackTrace()相当于System.out.print(e.getStackTrace().toString() */ e.printStackTrace(); /* * FileChannel 是一个 读、写、映射和操作文件的通道,文件通道有可以被查询和修改的一个当前位置。getChannel方法返回的文件通道是被连接到相同的底层文件。 * 但通过FileInputStream的getChannel方法获取的文件通道是只读的,而通过FileOutputStream的getChannel的方法获取的文件通道是可写的, * 通过RandomAccessFile的getChannel的方法

11、获取的文件通道,在创建时如果传递的参数是“r,则为只读,否则为”读写“或者“写”。 */ oneFileChannel = oneRandomAccessFile.getChannel(); try /* * 在FileChannel上调用map()方法会创建一个由磁盘文件支持的虚拟内存映射(virtual memory mapping)并在那块虚拟内存空间外部封装一个MappedByteBuffer对象。由map()方法返回的MappedByteBuffer对象的行为在多数方面类似一个基于内存的缓冲区,只不过该对象的数据元素存储在磁盘上的一个文件中。map()方法有mode、position

12、和size三个参数。映射文件的范围不应超过文件的实际大小,如果您请求一个超出文件大小的映射,文件会被增大以匹配映射的大小。假如您给size参数传递的值是Integer.MAX_VALUE,文件大小的值会膨胀到超过2.1GB。 */ oneMappedByteBuffer = oneFileChannel.map(FileChannel.MapMode.READ_ONLY, 0, oneFileChannel.size(); /* * 通过内存映射机制来访问一个文件会比使用常规方法读写高效得多,甚至比使用通道的效率都高。因为不需要做明确的系统调用,那会很消耗时间。 * 更重要的是,操作系统的虚拟

13、内存可以自动缓存内存页(memory page)。这些页是用系统内存来缓存的,所以不会消耗Java虚拟机内存堆(memory heap)。 * 文件映射可以是可写的或只读的。前两种映射模式MapMode.READ_ONLY和MapMode.READ_WRITE意义是很明显的, * 它们表示您希望获取的映射只读还是允许修改映射的文件。请求的映射模式将受被调用map()方法的FileChannel对象的访问权限所限制。 * 如果通道是以只读的权限打开的而您却请求MapMode.READ_WRITE模式,那么map()方法会抛出一个NonWritableChannelException异常; * 如

14、果您在一个没有读权限的通道上请求MapMode.READ_ONLY映射模式,那么将产生NonReadableChannelException异常。 * 不过在以read/write权限打开的通道上请求一个MapMode.READ_ONLY映射却是允许的。 */ catch (IOException e) e.printStackTrace(); /* * 将PDF文件转换为PDFFile对象,从而可以进行处理 */ try onePDFFile = new PDFFile(oneMappedByteBuffer); catch (IOException e) e.printStackTrace(); /* * 获得待转换的PDF文件中的总页数 */ int totalPageNumbers=onePDFFile.getNumPages(); /* * 对待转换的PDF文件中的每一页进行转换处理 */ for (int currentPageNumber = 1; currentPageNumber = totalPageNumbers; currentPageNumber+) /* * 获得指定页数的PDF页对象,它代表PDF文档文件中的某一页的内容 */ PDFPage onePDFPage = onePDFFile.getPage(currentPageNu

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1