【精选】Java 您所在的位置:网站首页 提取pdf一页为图片 【精选】Java

【精选】Java

2023-10-27 20:36| 来源: 网络整理| 查看: 265

目录

Apache PDFBox是一个开源Java库,支持PDF文档的开发和转换。

引入依赖

业务代码

读取网络中的PDF文件与文件类型转换

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。

Apache PDFBox是一个开源Java库,支持PDF文档的开发和转换。

有以下中有功能 -

Extract Text - 使用PDFBox,您可以从PDF文件中提取Unicode文本。

Split & Merge - 使用PDFBox,您可以将单个PDF文件分成多个文件,并将它们合并为一个文件。

Fill Forms - 使用PDFBox,您可以在文档中填写表单数据。

Print - 使用PDFBox,您可以使用标准Java打印API打印PDF文件。

Save as Image - 使用PDFBox,您可以将PDF保存为图像文件,如PNG或JPEG。

Create PDFs - 使用PDFBox,您可以通过创建Java程序创建新的PDF文件,还可以包含图像和字体。

Signing - 使用PDFBox,您可以将数字签名添加到PDF文件。

 有一个教程对PDFBox的介绍很详细,这里不再多说。

PDFBox - 快速指南_学习PDFbox|WIKI教程此方法接受文件对象作为参数,因为这是一个静态方法,您可以使用类名调用它,如下所示。. 此方法接受文件对象作为参数,因为这是一个静态方法,您可以使用类名调用它,如下所示。. 此方法接受文件对象作为参数,因为这是一个静态方法,您可以使用类名调用它,如下所示。. 此方法接受文件对象作为参数,因为这是一个静态方法,您可以使用类名调用它,如下所示。. 此方法接受文件对象作为参数,因为这是一个静态方法,您可以使用类名调用它,如下所示。https://iowiki.com/pdfbox/pdfbox_quick_guide.html

引入依赖 org.apache.pdfbox pdfbox 2.0.20 业务代码 /** * 截取PDF中的某一页作为缩略图,并上传(保存) * @param pdfFileName * @return */ public String PDFFramer(String pdfFileName){ //将网络中的PDF文件转换成file File file = URLToFile(pdfFileName); //new File() 只能访问本地文件 //将本地文件转换成file //File file = new File("C:\\Users\\Administrator\\Downloads\\(重要必看).pdf"); String pdfUrl=""; try { // 打开来源 pdf log.info("开始截取PDF:"); //PDDocument类的load()方法用于加载现有PDF文档 PDDocument pdfDocument = PDDocument.load(file); //PDFRenderer的类将PDF文档呈现为AWT BufferedImage PDFRenderer pdfRenderer = new PDFRenderer(pdfDocument); // 提取的页码 int pageNumber = 0; // 以300 dpi 读取存入 BufferedImage 对象 int dpi = 300; //Renderer类的renderImage()方法在特定页面中渲染图像 BufferedImage buffImage = pdfRenderer.renderImageWithDPI(pageNumber, dpi, ImageType.RGB); // 文件类型转换 MultipartFile multipartFile = fileCase(buffImage); log.info("PDF开始上传:"); pdfUrl = fileLoad(multipartFile); log.info("PDF上传成功:{}",pdfUrl); // 关闭文档 pdfDocument.close(); //删除临时文件 String s = threadLocal.get(); log.info("临时文件的目录:"+s); File f=new File(s); boolean delete = f.delete(); log.info("文件是否删除"+delete); } catch (InvalidPasswordException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return pdfUrl; } 读取网络中的PDF文件与文件类型转换 /** * 读取网络中的PDF文件 * @param url * @return */ public File URLToFile(String url){ log.info("读取FastDFS上的PDF"); //保存临时文件--jar包的相对位置 File file1 = new File("Temporary.pdf"); try { URL url1 = new URL(url); FileUtils.copyURLToFile(url1,file1); } catch (IOException e) { e.printStackTrace(); } File absoluteFile = file1.getAbsoluteFile(); threadLocal.set(absoluteFile.toString()); log.info("ppt已经存储到本地"+absoluteFile.toString()); return file1; } /** * 文件转换将BufferedImage转换成MultipartFile:为了文件上传 * @param image * @return */ public static MultipartFile fileCase(BufferedImage image){ //得到BufferedImage对象 // BufferedImage bufferedImage = JoinTwoImage.testEncode(200, 200, url); MultipartFile multipartFile= null; try { //创建一个ByteArrayOutputStream ByteArrayOutputStream os = new ByteArrayOutputStream(); //把BufferedImage写入ByteArrayOutputStream ImageIO.write(image, "jpg", os); //ByteArrayOutputStream转成InputStream InputStream input = new ByteArrayInputStream(os.toByteArray()); //InputStream转成MultipartFile multipartFile =new MockMultipartFile("file", "file.jpg", "text/plain", input); } catch (IOException e) { e.printStackTrace(); } return multipartFile; } 如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有