Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 기록으로 실력을 쌓자
- 정보처리기사 실기
- minikube
- 코틀린 코루틴의 정석
- PETERICA
- APM
- Java
- CKA
- 공부
- AWS EKS
- Pinpoint
- 정보처리기사실기 기출문제
- kotlin spring
- 정보처리기사 실기 기출문제
- 오블완
- 티스토리챌린지
- kotlin querydsl
- aws
- CloudWatch
- IntelliJ
- Kubernetes
- Linux
- mysql 튜닝
- kotlin coroutine
- kotlin
- CKA 기출문제
- Elasticsearch
- AI
- MySQL
- Spring
Archives
- Today
- Total
피터의 개발이야기
[Spring] PDF을 이미지 파일로 변환하기 본문
반응형
프로젝트 진행 중 PDF를 등록하면 첫장을 섬네일로 보여달라는 요청이 있었습니다.
기술 검토를 해야하는 부분이라 퇴근하고 집에서 공부할 겸 테스트한 내용 글로 남깁니다.
Gradle 추가
compile group: ‘org.apache.pdfbox’, name: ‘pdfbox’, version: ‘2.0.13’
compile group: ‘org.apache.pdfbox’, name: ‘pdfbox-tools’, version: ‘2.0.13’
소스
@Test
void contextLoads() {
try{
String filePath = "pdf_test.pdf";
File file = new File(filePath);
ClassPathResource classPathResource = new ClassPathResource(filePath);
InputStream is = new BufferedInputStream(classPathResource.getInputStream());
conversionPdf2Img(is,"peter");
} catch (IOException e) {
e.printStackTrace();
}
}
private List<String> conversionPdf2Img(InputStream is, String uniqueId) {
List<String> savedImgList = new ArrayList<>(); //저장된 이미지 경로 list
try {
PDDocument pdfDoc = PDDocument.load(is); //Document 생성
PDFRenderer pdfRenderer = new PDFRenderer(pdfDoc);
String resultImgPath = "/Users/peterseo/study/temp/"; //이미지가 저장될 경로
Files.createDirectories(Paths.get(resultImgPath)); // 폴더 생성
// PDF페이지 루프
for (int i=0; i<pdfDoc.getPages().getCount(); i++) {
String imgFileName = resultImgPath + "/" + i + ".png";
//DPI 설정
BufferedImage bim = pdfRenderer.renderImageWithDPI(i, 72, ImageType.RGB);
// 이미지로 만든다.
ImageIOUtil.writeImage(bim, imgFileName , 72);
//저장 완료된 이미지 경로를 list에 추가
savedImgList.add(imgFileName);
}
pdfDoc.close(); //모두 사용한 PDF 문서는 닫는다.
}catch (FileNotFoundException e) {
}catch (IOException e) {
}
return savedImgList;
}
내 소스는 여기
이분꺼 그대로 복사해서 사용하였습니다.
감사합니다.
복붙한 곳
반응형
'Programming > Spring' 카테고리의 다른 글
[Spring] SpringBoot를 kill 하는 3가지 방법 (0) | 2020.12.26 |
---|---|
[Spring] PDF의 첫장 섬네일 만들기 (0) | 2020.12.24 |
[TDD] assertThat 사용법 (0) | 2020.12.19 |
[Spring] War 배포와 Jar 배포 시 resource 참조 문제 (0) | 2020.12.14 |
Spring Profiles (0) | 2020.12.12 |
Comments