如何更改图像(jpeg,jpg)格式和裁剪的pdf文件

时间:2016-09-28 05:32:00

标签: java

如何将 pdf 文件转换为图像( jpg jpeg ..)格式以及如何裁剪图像。任何指针(可能是任何现有的API)?

import java.io.File;


 public class PDFtoJPGConverter {

             public static void main(String[] args)

                {

          try
              {
               PDFDocument doc = new PDFDocument();           
               doc.loadPDF("Sample.pdf");
               int pageCount = doc.getPageCount();
             for(int i = 0; i < pageCount; i++)
               {
                BufferedImage image = doc.toImage(i);
                ImageIO.write(image,"jpg", new File("output"+ i +".jpg"));
              }
                }
                catch (Exception e) {
                e.printStackTrace();
         }
        }
       } 

1 个答案:

答案 0 :(得分:0)

你可以试试pdf-renderer它是一个纯粹的java解决方案。

代码解决方案:

package com.pdf.pdfbox.examples;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

@SuppressWarnings("unchecked")
public class ConvertPDFPagesToImages {
public static void main(String[] args) {
    try {
    String sourceDir = "C:/Documents/04-Request-Headers.pdf"; // Pdf files are read from this folder
    String destinationDir = "C:/Documents/Converted_PdfFiles_to_Image/"; // converted images from pdf document are saved here

    File sourceFile = new File(sourceDir);
    File destinationFile = new File(destinationDir);
    if (!destinationFile.exists()) {
        destinationFile.mkdir();
        System.out.println("Folder Created -> "+ destinationFile.getAbsolutePath());
    }
    if (sourceFile.exists()) {
        System.out.println("Images copied to Folder: "+ destinationFile.getName());             
        PDDocument document = PDDocument.load(sourceDir);
        List<PDPage> list = document.getDocumentCatalog().getAllPages();
        System.out.println("Total files to be converted -> "+ list.size());

        String fileName = sourceFile.getName().replace(".pdf", "");             
        int pageNumber = 1;
        for (PDPage page : list) {
            BufferedImage image = page.convertToImage();
            File outputfile = new File(destinationDir + fileName +"_"+ pageNumber +".png");
            System.out.println("Image Created -> "+ outputfile.getName());
            ImageIO.write(image, "png", outputfile);
            pageNumber++;
        }
        document.close();
        System.out.println("Converted Images are saved at -> "+ destinationFile.getAbsolutePath());
    } else {
        System.err.println(sourceFile.getName() +" File not exists");
    }

    } catch (Exception e) {
        e.printStackTrace();
    }
  }
}
相关问题