java实现截取PDF指定页并进行图片格式转换

1、引入依赖

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.16</version>
</dependency>
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>fontbox</artifactId>
    <version>2.0.16</version>
</dependency>
jar包下载地址:
https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox
https://mvnrepository.com/artifact/org.apache.pdfbox/fontbox
 
2、实现DEMO
package com.dddpeter.app;

import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;

import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.List;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java实现截取指定区域的图形并复制到剪切板,可以使用Java AWT和Java Swing提供的类和方法,具体步骤如下: 1. 创建一个Robot对象,用于获取屏幕上的图像。 ```java Robot robot = new Robot(); ``` 2. 使用Robot对象的createScreenCapture方法截取指定区域的图形。该方法的参数是一个Rectangle对象,表示要截取的区域。 ```java Rectangle rectangle = new Rectangle(x, y, width, height); BufferedImage image = robot.createScreenCapture(rectangle); ``` 3. 将截取的图形复制到剪切板中。可以使用Java Swing提供的类和方法,将图像封装到一个ImageSelection对象中,再将该对象复制到剪切板中。 ```java ImageSelection imageSelection = new ImageSelection(image); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(imageSelection, null); ``` 完整的代码示例: ```java import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.IOException; import javax.imageio.ImageIO; import java.io.File; public class ScreenCapture { public static void main(String[] args) throws Exception { int x = 100; int y = 100; int width = 200; int height = 200; // 创建Robot对象,用于获取屏幕上的图像 Robot robot = new Robot(); // 使用Robot对象的createScreenCapture方法截取指定区域的图形 Rectangle rectangle = new Rectangle(x, y, width, height); BufferedImage image = robot.createScreenCapture(rectangle); // 将截取的图形复制到剪切板中 ImageSelection imageSelection = new ImageSelection(image); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(imageSelection, null); // 将剪切板中的内容输出到控制台 Transferable contents = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); if (contents != null && contents.isDataFlavorSupported(DataFlavor.stringFlavor)) { String text = (String) contents.getTransferData(DataFlavor.stringFlavor); System.out.println(text); } } private static class ImageSelection implements Transferable { private Image image; public ImageSelection(Image image) { this.image = image; } public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[] { DataFlavor.imageFlavor }; } public boolean isDataFlavorSupported(DataFlavor flavor) { return DataFlavor.imageFlavor.equals(flavor); } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if (!DataFlavor.imageFlavor.equals(flavor)) { throw new UnsupportedFlavorException(flavor); } return image; } } } ``` 注意,在使用Robot对象时,可能会抛出AWTException异常,需要进行异常处理。此外,在将图像复制到剪切板时,可能需要使用系统剪切板的API,而不是Java AWT和Java Swing提供的API,具体取决于操作系统的实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值