반응형
# 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();
}
}
}
반응형
'인프런 강의 학습 > Java TPC 실전' 카테고리의 다른 글
Java MQTT Client 만들기_Mosquitto MQTT broker 설치 및 서버구동 (0) | 2022.07.29 |
---|---|
Java iText API 활용 Excel에서 데이터 읽어서 PDF로 만들기 (0) | 2022.07.28 |
Java iText API 활용 PDF 에 Paragraph(단락, 문단, 절) 만들기 (0) | 2022.07.27 |
Java iText API 활용 PDF table 만들기 (0) | 2022.07.25 |
Naver Search API 활용 도서정보를 입력하여 검출 후 Excel에 저장하기 (0) | 2022.07.22 |