gpt4 book ai didi

java - 有没有一种有效的方法通过java程序裁剪PDF并另存为图像(.JPG)?

转载 作者:行者123 更新时间:2023-12-02 04:50:21 33 4
gpt4 key购买 nike

我目前正在使用 ICEPDF 渲染 PDF 文件并将其显示在我的 java Swing 应用程序中(在内部框架中)。现在我想向我的 Java 应用程序添加裁剪功能。例如,如果我单击一个按钮,我可以拖动 PDF 的所需部分并将其另存为本地存储中的图像。

有没有一种有效的方法通过java程序裁剪PDF并另存为图像(.JPG)?

最佳答案

Ghost4J 库 ( http://ghost4j.sourceforge.net ),是您的最佳选择:

3个简单步骤:

  1. 加载 PDF 文件:

    PDFDocument document = new PDFDocument();
    document.load(new File("test.pdf"));
  2. 创建渲染器:

    SimpleRenderer renderer = new SimpleRenderer();

    // set resolution (in DPI)
    renderer.setResolution(600);
  3. 渲染:

    List<Image> images = renderer.render(document);

然后您可以对图像对象执行您想要的操作,例如,您可以将它们写为 JPG,如下所示:

for (int i = 0; i < images.size(); i++) {
ImageIO.write((RenderedImage) images.get(i), "jpg", new File((i + 1) + ".jpg"));
}

Ghost4J 使用 native Ghostscript API,因此您需要安装 Ghostscript。

编辑:investigating a bit ,如果您将 PDF 转换为图像,则 crop them 不会有太大问题。 :

BufferedImage is a(n) Image, so the implicit cast that you're doing in the second line is able to be compiled directly. If you knew an Image was really a BufferedImage, you would have to cast it explicitly like so:

Image image = ImageIO.read(new File(file));
BufferedImage buffered = (BufferedImage) image;

然后你可以使用 BufferedImage::getSubimage 方法裁剪它:

private BufferedImage cropImage(BufferedImage src, Rectangle rect) {
BufferedImage dest = src.getSubimage(rect.x, rect.y, rect.width, rect.height);
return dest;
}

关于java - 有没有一种有效的方法通过java程序裁剪PDF并另存为图像(.JPG)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29297929/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com