Java-如何将PDF转换为图像(PNG,JPG,SVG,TIFF)
#java #pdf #image #convert

pdf 文件是文件共享的理想选择,并保证文档中的内容将在不进行更改的情况下正确显示跨设备。但是,有时候将PDF文档转换为单个图像文件是有利的。例如,将PDF转换为JPG 文件使您可以降低文档的整体大小。这意味着您更容易将文件传输给另一个人,将其上传到网站等。

在本文中,我将向您展示如何使用Spire.PDF for Java库中的将PDF转换为PNG,JPG,SVG和TIFF 。 >

添加spire.pdf.jar作为依赖关系

如果您正在从事Maven项目,则可以使用以下方式将依赖项包括在pom.xml文件中:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>8.11.0</version>
    </dependency>
</dependencies>

如果您不使用Maven,则可以从this location中的zip文件中找到所需的JAR文件。将所有JAR文件包括在应用程序LIB文件夹中以运行本教程中给出的示例代码。

将PDF转换为Java的PNG

PNG文件是保存在便携式网络图形(PNG)格式中的图像,通常用于存储具有透明背景的Web图形,数字照片和图像。以下是使用java的spire.pdf将PDF文档转换为多个PNG图像文件的步骤。

  • 创建 pdfdocument 对象。
  • 使用 pdfdocument.loadfromfile() methot。
  • 加载PDF文件。
  • 通过将0传递到 pdfdocument.getConvertOptions()。setpdftoimageOptions() methot。
  • 遍历文档中的页面,并使用 pdfdocument.saveasimage(pageIndex) methot。
  • 将特定页面保存为缓冲图像。
  • 使用 imageio.write()方法将图像数据写入PNG文件。
import com.spire.pdf.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class ConvertPdfToTransparentPng {

    public static void main(String[] args) throws  Exception{

        //Create a PdfDocument object
        PdfDocument doc = new PdfDocument();

        //Load a sample PDF document
        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //Make background transparent
        doc.getConvertOptions().setPdfToImageOptions(0);

        //Declare a BufferedImage variable
        BufferedImage image;

        //Loop through the pages
        for (int i = 0; i < doc.getPages().getCount(); i++) {

            //Save the current page as a buffered image
            image = doc.saveAsImage(i);

            //Write the image data as a .png file
            File file = new File("C:\\Users\\Administrator\\Desktop\\Output\\" + String.format("ToImage-%d.png", i));
            ImageIO.write(image, "png", file);
        }
        doc.close();
    }
}

PdfToPng

将PDF转换为JPG在Java中

JPG文件是一种以JPEG格式保存的栅格图像,通常用于存储由图像编辑软件创建的数字照片和图形。以下是使用java的spire.pdf将PDF文档转换为单个JPG文件的步骤。

  • 创建 pdfdocument 对象。
  • 使用 pdfdocument.loadfromfile() methot。
  • 加载PDF文件。
  • 遍历文档中的页面,并使用 pdfdocument.saveasimage(pageIndex) methot。
  • 将特定页面保存为缓冲图像。
  • 使用 imageio.write()方法将图像数据写入JPG文件。
import com.spire.pdf.PdfDocument;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class ConvertPdfToJpg {

    public static void main(String[] args) throws IOException {

        //Create a PdfDocument object
        PdfDocument doc = new PdfDocument();

        //Load a sample PDF document
        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //Declare a BufferedImage variable
        BufferedImage image;

        //Loop through the pages
        for (int i = 0; i < doc.getPages().getCount(); i++) {

            //Save the current page as a buffered image
            image = doc.saveAsImage(i);

            //Re-create a buffered image
            BufferedImage newImg = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
            newImg.getGraphics().drawImage(image, 0, 0, null);

            //Write the image data as a .jpg file
            File file = new File("C:\\Users\\Administrator\\Desktop\\Output\\" + String.format("ToImage-img-%d.jpg", i));
            ImageIO.write(newImg, "JPG", file);
        }
        doc.close();
    }
}

PdfToJpg

将PDF转换为Java中的SVG

SVG是可扩展的向量图形。这意味着可以将图形缩放到任何尺寸而不会失去质量。以下是使用java的spire.pdf将PDF文档转换为单个或几个单独的SVG文件的步骤。

  • 创建 pdfdocument 对象。
  • 使用 pdfdocument.loadfromfile() methot。
  • 加载PDF文件。
  • 使用 pdfdocument.savetofile()方法将每个页面保存为单个SVG文件。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;

public class ConvertPdfToSvg {

    public static void main(String[] args) {

        //Create a PdfDocument object
        PdfDocument doc = new PdfDocument();

        //Load a sample PDF document
        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //If you want the PDF document to be converted as a single SVG file, pass true to setOutputToOneSvg() method
        //doc.getConvertOptions().setOutputToOneSvg(true);

        //Save each page as an individual SVG file
        doc.saveToFile("C:\\Users\\Administrator\\Desktop\\Output\\ToSVG.svg", FileFormat.SVG);
        doc.close();
    }
}

PdfToSvg

将PDF转换为Java的TIFF

tiff是一种文件类型,最好用于需要编辑的高质量图像。 TIFF文件很大,因此它们不适合在线共享。从TIFF到PDF的转换仅需要3行代码,如下所示。

  • 创建 pdfdocument 对象。
  • 使用 pdfdocument.loadfromfile() methot。
  • 加载PDF文件。
  • 使用 pdfdocument.savetotiff()方法将PDF文件保存到TIFF。
import com.spire.pdf.PdfDocument;

public class ConvertPdfToTiff {

    public static void main(String[] args) {

        //Create a PdfDocument instance
        PdfDocument pdf = new PdfDocument();

        //Load a PDF document
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

        //Convert the entire PDF document to TIFF
        pdf.saveToTiff("C:\\Users\\Administrator\\Desktop\\Output\\PDFtoTiff.tiff");
    }
}

PdfToTiff