본문 바로가기
컴퓨터관련

JAVA를 이용하여 디렉토리에 있는 이미지를 PDF로 만들기

by 기록이답이다 2017. 1. 17.
반응형
이미지들을 캡쳐후 하나의 PDF 파일로 만들일이 생겼다.
Java의 PDFBox를 이용하여 처리하였음.
package org.apache.pdfbox.examples.util;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

public class MakePdf {
 public static void main(String[] args) throws IOException {
        String imagePath = "d:\\capture\\makedir\\";
        String pdfPath = "d:\\capture\\makedir.pdf";
        
        if (!pdfPath.endsWith(".pdf"))
        {
            System.err.println("Last argument must be the destination .pdf file");
            System.exit(1);
        }

        PDDocument doc = new PDDocument();
        try
        {

         File imgDir = new File(imagePath);
         File[] imgFiles = imgDir.listFiles();
         for(int i=1; i<=imgFiles.length; i++) {
            PDPage page = new PDPage();
            doc.addPage(page);
            
            // capture한 이미지 이름이 1.jpg, 2.jpg 이런식으로 되어있음.
            PDImageXObject pdImage = PDImageXObject.createFromFile(imagePath+i+".jpg", doc);
            
            PDPageContentStream contents = new PDPageContentStream(doc, page);
            
            contents.drawImage(pdImage, 0, 0, 612, 796);
            
            contents.close();
            doc.save(pdfPath);
            System.out.print(i+" ");
            if(i%50 == 0) System.out.println("");
         }
        }
        finally
        {
            doc.close();
            System.out.println("");
            System.out.println("fin");
        }
 }
}
반응형