문서가 있고 해당 문서 안의 이미지를 다른 문서에서 사용하려는 경우 여기에 솔루션 중 하나가 있습니다. 이 기사에서는 Java를 사용하여 PDF, Excel, PowerPoint 및 Word 문서에서 프로그래밍 방식으로 이미지를 추출하는 방법을 배웁니다.
이미지 추출 자바 API
이미지 추출을 위해 GroupDocs.Parser for Java를 사용합니다. 이 Java API는 워드 프로세싱 문서, 스프레드시트, 프레젠테이션, 아카이브에서 문서 구문 분석 및 이미지, 텍스트 및 메타데이터 추출을 지원합니다. , 및 이메일 문서. 다음은 이미지 추출을 위해 Java API에서 지원하는 문서 형식입니다.
문서 유형 | 파일 형식 |
---|---|
워드 프로세싱 문서 | DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF |
스프레드시트 | XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS |
프레젠테이션 | PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP |
휴대용 문서 | |
이메일 | EML, EMLX, MSG |
기록 보관소 | ZIP |
아래 예제를 시작하기 전에 다운로드 섹션에서 최신 버전의 문서 구문 분석 Java API를 다운로드하여 환경을 설정하거나 **maven 기반*에서 다음 구성을 설정할 수 있습니다. * 자바 애플리케이션:
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>20.8</version>
</dependency>
Java의 PDF 문서에서 이미지 추출
다음의 간단한 단계에 따라 PDF 문서에서 모든 이미지를 가져옵니다.
- Parser 클래스 개체를 인스턴스화합니다.
- Parser 클래스의 getImages 메서드를 호출하여 모든 이미지를 가져옵니다.
- **PageImageArea**을 사용하여 이미지를 반복합니다.
- PageImageArea의 저장 메소드를 사용하여 이미지를 저장합니다.
끝났다. 아래의 전체 코드를 참조하십시오. 추출된 이미지는 BMP, GIF, JPEG, PNG, WebP 형식으로 저장할 수 있습니다.
// GroupDocs.Parser for Java를 사용하여 프로그래밍 방식으로 Word, Excel, PowerPoint, PDF 문서에서 이미지 추출
try (Parser parser = new Parser("path/document.pdf")) {
// 이미지 추출
Iterable<PageImageArea> images = parser.getImages();
// 이미지를 PNG 형식으로 저장하는 옵션 만들기
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// 이미지 반복 및 저장
for (PageImageArea image : images) {
// 페이지 인덱스, 직사각형 및 이미지 파일 유형을 인쇄하십시오.
System.out.println(String.format("Page: %d, R: %s, Type: %s", image.getPage().getIndex(),
image.getRectangle(), image.getFileType()));
image.save(String.format("filesPath/image_%d.png", imageNumber), options);
imageNumber++;
}
}
위의 코드를 사용하여 PDF 문서에서 검색한 이미지입니다.
Java의 Word, Excel, PowerPoint 파일에서 이미지 추출
마찬가지로 모든 이미지는 변경되지 않은 코드 기반으로 워드 프로세서 파일, 스프레드시트, 프레젠테이션에서 가져올 수 있습니다. 당신은 무엇을 변경해야합니까? 소스 문서 경로와 올바른 파일 확장자만 있으면 됩니다.
Parser parser = new Parser("path/document.docx") // Word Document
// Parser parser = new Parser("path/document.xlsx") // Excel Spreadsheet
// Parser parser = new Parser("path/document.pptx") // PowerPoint Presentation
// Parser parser = new Parser("path/document.pdf") // PDF Document
Java의 특정 문서 페이지에서 이미지 추출
전체 문서에서 모든 이미지를 추출하지 않고 일부 특정 페이지에서 추출하려는 경우. 아래 코드는 Java 문서의 특정 페이지에서 이미지를 추출하는 방법을 보여줍니다.
// GroupDocs.Parser를 사용하여 Java의 Word, Excel, PowerPoint, PDF의 특정 페이지에서 이미지 추출
try (Parser parser = new Parser("path/document.pdf"")) {
// 문서 정보 얻기
IDocumentInfo documentInfo = parser.getDocumentInfo();
// 이미지를 PNG 형식으로 저장하는 옵션 만들기
ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
int imageNumber = 0;
// 페이지 반복
for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
// 페이지 번호 인쇄
System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));
// 이미지 반복 - 예제에서 NULL 검사 무시
for (PageImageArea image : parser.getImages(pageIndex)) {
// 이미지 정보 인쇄 및 파일 저장
System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
imageNumber++;
}
}
}
결론
오늘 우리는 전체 문서에서 이미지를 추출하는 방법과 Java에서 워드 프로세서 문서, 스프레드시트, 프레젠테이션 및 PDF의 특정 페이지를 추출하는 방법을 배웠습니다. 다른 파일 형식의 파일에서 이미지를 추출해야 하는 경우 코드에 차이가 없습니다. 올바른 경로와 이름만 전달하면 됩니다. 그게 다야