반응형

# Java iText API 활용 PDF 에 image 삽입 및 크기조절 하기

  • Java iText API 활용하여 PDF에 image 를 삽입 및 이미지의 크기를 조절할 수 있다.

## 활용 방법

파일에서 이미지 생성

import java.io.*;

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfWriter;

public class Project04_C {
	public static void main(String[] args) {
		Document doc = new Document();

		try {
			PdfWriter.getInstance(doc, new FileOutputStream("ImageDemo.pdf"));
			doc.open();
			
			// 파일에서 이미지 생성
			String filename = "test_image.jpg";
			Image image = Image.getInstance(filename);
			doc.add(image);
            
			System.out.println("PDF 생성 완료.");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			doc.close();
		}
	}
}

URL에서 이미지 생성

import java.io.*;

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfWriter;

public class Project04_C {
	public static void main(String[] args) {
		Document doc = new Document();

		try {
			PdfWriter.getInstance(doc, new FileOutputStream("ImageDemo.pdf"));
			doc.open();
	
			// URL로 부터 이미지 생성
			String url = "https://cdn.inflearn.com/public/main_sliders/90eee9de-869d-4906-aa7a-88998858dc6d/%5B%E1%84%8B%E1%85%B5%E1%84%87%E1%85%A6%E1%86%AB%E1%84%90%E1%85%B3%5D%E1%84%8B%E1%85%B5%E1%86%AB%E1%84%91%E1%85%B3%E1%84%8F%E1%85%A9%E1%86%AB_main_521.png";
			Image urlImage = Image.getInstance(url);
			doc.add(urlImage);

			System.out.println("PDF 생성 완료.");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			doc.close();
		}
	}
}

## 생성 결과

  • 아래와 같이 파일, URL 을 이용 이미지를 추가하여 PDF 생성. (이미지 크기 때문에 2페이지에 걸쳐서 출력)

## 작업 소스

import java.io.*;

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfWriter;

public class Project04_C {
	public static void main(String[] args) {
		Document doc = new Document();

		try {
			PdfWriter.getInstance(doc, new FileOutputStream("ImageDemo.pdf"));
			doc.open();
			
			// 파일에서 이미지 생성
			String filename = "test_image.jpg";
			Image image = Image.getInstance(filename);
			doc.add(image);
			
			// URL로 부터 이미지 생성
			String url = "https://cdn.inflearn.com/public/main_sliders/90eee9de-869d-4906-aa7a-88998858dc6d/%5B%E1%84%8B%E1%85%B5%E1%84%87%E1%85%A6%E1%86%AB%E1%84%90%E1%85%B3%5D%E1%84%8B%E1%85%B5%E1%86%AB%E1%84%91%E1%85%B3%E1%84%8F%E1%85%A9%E1%86%AB_main_521.png";
			Image urlImage = Image.getInstance(url);
			doc.add(urlImage);

			System.out.println("PDF 생성 완료.");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			doc.close();
		}
	}
}

 

# Java iText API 활용 PDF 에  삽입한 image 크기조절 하기

  • 위에서 이미지를 추가하여 PDF 생성 시 크기 조절 문제 발생. 이를 해결하기 위해 추가 작업 진행.
  • scaleAbsolute, scalePercent, scaleToFit

## 활용방법

이미지 크기조절 방법 1_scaleAbsolute

Document doc = new Document();

try {
    PdfWriter.getInstance(doc, new FileOutputStream("ImageDemo.pdf"));
    doc.open();

    // 파일에서 이미지 생성
    String filename = "test_image.jpg";
    Image image = Image.getInstance(filename);
    image.scaleAbsolute(200f, 200f);	// 이미지 크기 조절
    doc.add(image);

    System.out.println("PDF 생성 완료.");
} catch (Exception e) {
    e.printStackTrace();
} finally {
    doc.close();
}

이미지 크기조절 방법 2_scalePercent

Document doc = new Document();

try {
    PdfWriter.getInstance(doc, new FileOutputStream("ImageDemo.pdf"));
    doc.open();

    // URL로 부터 이미지 생성
    String url = "https://cdn.inflearn.com/public/main_sliders/90eee9de-869d-4906-aa7a-88998858dc6d/%5B%E1%84%8B%E1%85%B5%E1%84%87%E1%85%A6%E1%86%AB%E1%84%90%E1%85%B3%5D%E1%84%8B%E1%85%B5%E1%86%AB%E1%84%91%E1%85%B3%E1%84%8F%E1%85%A9%E1%86%AB_main_521.png";
    Image urlImage = Image.getInstance(url);
    urlImage.scalePercent(200f);	// 이미지 크기 조절 (%)
    doc.add(urlImage);

    System.out.println("PDF 생성 완료.");
} catch (Exception e) {
    e.printStackTrace();
} finally {
    doc.close();
}

이미지 크기조절 방법 3_scaleToFit

Document doc = new Document();

try {
    PdfWriter.getInstance(doc, new FileOutputStream("ImageDemo.pdf"));
    doc.open();

    // 파일에서 이미지 생성
    String filename = "test_image.jpg";
    Image image = Image.getInstance(filename);
    image.scaleToFit(100f, 200f);	// 이미지 크기 조절 (정한 사이즈에 맞게)
    doc.add(image);

    System.out.println("PDF 생성 완료.");
} catch (Exception e) {
    e.printStackTrace();
} finally {
    doc.close();
}

## 실행 결과

## 작업 소스

import java.io.*;

import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfWriter;

public class Project04_D {
	public static void main(String[] args) {
		Document doc = new Document();

		try {
			PdfWriter.getInstance(doc, new FileOutputStream("ImageScalingDemo.pdf"));
			doc.open();
			
			// 1. scaleAbsolute 사용 이미지 크기 조절
			String filename1 = "test_image.jpg";
			Image image1 = Image.getInstance(filename1);
			image1.scaleAbsolute(200f, 200f);
			doc.add(image1);
			
			// 2. scalePercent 사용 이미지 크기 조절
			String filename2 = "test_image.jpg";
			Image image2 = Image.getInstance(filename2);
			image2.scalePercent(100f);
			doc.add(image2);
			
			// 3. scaleAbsolute 사용 이미지 크기 조절
			String filename3 = "test_image.jpg";
			Image image3 = Image.getInstance(filename3);
			image3.scaleToFit(100f, 200f);
			doc.add(image3);

			System.out.println("PDF 생성 완료. (이미지 크기 조절)");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			doc.close();
		}
	}
}
반응형

+ Recent posts