PDF 파일에서 이미지를 추출하는 것은 문서‑처리 파이프라인을 구축할 때 흔히 요구되는 작업이며, 특히 썸네일, 보고서 또는 추가 분석을 위해 그래픽을 재사용해야 할 때 그렇습니다. GroupDocs.Parser Cloud SDK for Java은 몇 줄의 코드만으로 PDF에서 모든 삽입된 이미지를 가져올 수 있는 간단한 API를 제공합니다. 이 가이드는 SDK 구성, 전체 코드 예제 실행, 동일한 작업을 위한 cURL 사용 및 신뢰할 수 있는 PDF 이미지 추출을 보장하기 위한 모범 사례 적용 방법을 단계별로 안내합니다.
Java에서 PDF 문서에서 이미지를 추출하는 5단계
- API 자격 증명 구성:
Configuration객체를 생성하고 클라이언트 ID와 비밀을 설정합니다.
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
- Parser API 초기화: 구성을 사용하여
ApiClient를 빌드하고ParserApi를 인스턴스화합니다.
ApiClient apiClient = new ApiClient(config);
ParserApi parserApi = new ParserApi(apiClient);
- 이미지 추출 요청 만들기:
FileInfo를 사용하여 PDF 파일 경로를 지정하고ExtractImagesRequest를 생성합니다.
String inputFilePath = "input.pdf";
ExtractImagesRequest request = new ExtractImagesRequest()
.setFileInfo(new FileInfo().setFilePath(inputFilePath));
- 추출을 실행하고 이미지 가져오기:
extractImages를 호출하고Image객체 목록을 가져옵니다.
ImagesResult imagesResult = parserApi.extractImages(request);
List<Image> images = imagesResult.getImages();
- 각 이미지를 로컬 저장소에 저장: 컬렉션을 순회하면서 바이너리 데이터를 파일에 씁니다.
for (int i = 0; i < images.size(); i++) {
Image img = images.get(i);
String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
fos.write(img.getData());
}
System.out.println("Saved image: " + outputFileName);
}
각 클래스에 대한 자세한 내용은 공식 API 참조를 참조하십시오.
전체 코드 예제: Java를 사용하여 PDF 문서에서 이미지 추출하기 (GroupDocs.Parser 사용)
다음 예제는 자격 증명 설정부터 이미지 저장까지 전체 워크플로를 보여줍니다.
import com.groupdocs.parser.cloud.ApiClient;
import com.groupdocs.parser.cloud.Configuration;
import com.groupdocs.parser.cloud.api.ParserApi;
import com.groupdocs.parser.cloud.model.FileInfo;
import com.groupdocs.parser.cloud.model.Image;
import com.groupdocs.parser.cloud.model.ImagesResult;
import com.groupdocs.parser.cloud.model.requests.ExtractImagesRequest;
import java.io.FileOutputStream;
import java.util.List;
public class ExtractImagesFromPdf {
public static void main(String[] args) {
// Configure API credentials
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
// config.setBaseUrl("https://api.groupdocs.cloud"); // optional, if needed
// Initialize API client and Parser API
ApiClient apiClient = new ApiClient(config);
ParserApi parserApi = new ParserApi(apiClient);
// Path to the PDF file stored in GroupDocs Cloud storage
String inputFilePath = "input.pdf";
// Build request for image extraction
ExtractImagesRequest request = new ExtractImagesRequest()
.setFileInfo(new FileInfo().setFilePath(inputFilePath));
try {
// Perform extraction
ImagesResult imagesResult = parserApi.extractImages(request);
List<Image> images = imagesResult.getImages();
// Save each extracted image to local disk
for (int i = 0; i < images.size(); i++) {
Image img = images.get(i);
String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
fos.write(img.getData());
}
System.out.println("Saved image: " + outputFileName);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
참고: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에서 사용하기 전에 파일 경로와 구성 값을 실제 환경에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인하며, 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에 문의하십시오.
cURL 및 REST API를 통한 PDF 이미지 추출
Java 코드를 작성하지 않고 직접 GroupDocs.Parser Cloud REST 엔드포인트를 호출하면 동일한 결과를 얻을 수 있습니다.
- 액세스 토큰 얻기
curl -X POST "https://api.groupdocs.cloud/v2.0/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- PDF 파일 업로드
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/path/to/input.pdf"
- 이미지 추출 요청
curl -X POST "https://api.groupdocs.cloud/v2.0/parser/extractImages" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fileInfo": {"filePath": "input.pdf"}}'
- 추출된 이미지 다운로드 (응답에 base64 데이터가 포함되어 있습니다; 로컬에서 디코딩할 수 있습니다)
전체 매개변수 목록은 공식 API 문서를 참조하십시오.
GroupDocs.Parser Cloud SDK for Java 설치 및 구성
Maven 종속성을 pom.xml에 추가하세요 (또는 해당하는 Gradle 스니펫).
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser-cloud</artifactId>
<version>26.2</version>
</dependency>
SDK는 클라우드 라이브러리로 제공되며 로컬 바이너리가 필요하지 않습니다. 최신 패키지는 release page에서 다운로드하십시오. Java 8 이상과 유효한 GroupDocs Cloud 계정(클라이언트 ID 및 비밀)이 있는지 확인하십시오.
GroupDocs.Parser Cloud SDK for Java 이미지 검색을 가능하게 하는 기능
- 전체 PDF 이미지 추출 - 문서에 포함된 모든 래스터 및 벡터 이미지를 검색합니다.
- 각 이미지에 대한 메타데이터 - 파일 이름, 크기, 형식 및 페이지 번호를 반환합니다.
- 모든 일반 이미지 형식 지원 - PNG, JPG, BMP, GIF, TIFF, 등.
- 클라우드 스토리지 통합 - 파일을 먼저 다운로드하지 않고 GroupDocs Cloud에 저장된 파일을 직접 사용할 수 있습니다.
- 확장 가능한 REST‑based 처리 - 클라우드 API를 통해 대용량 PDF 및 고부하 작업을 처리합니다.
이미지 추출 설정 미세 조정
기본 요청은 바로 작동하지만, 다음과 같은 옵션을 조정할 수 있습니다:
- 비밀번호 보호 - 암호화된 PDF에 대해
FileInfo의password속성을 설정합니다. - 페이지 범위 - 요청 JSON에
pages배열을 추가하여 추출을 특정 페이지로 제한합니다. - 이미지 형식 변환 - 요청에서 원하는 출력 유형을 지정하여 다른 형식으로 변환을 요청합니다 (정확한 필드는 API reference를 참조하세요).
비밀번호 설정 예시 (주 코드에서 발췌):
FileInfo fileInfo = new FileInfo()
.setFilePath("protected.pdf")
.setPassword("mySecret");
효율적인 PDF 이미지 추출을 위한 실용적인 팁
- 파일 존재 여부 확인을 요청을 보내기 전에 수행하여 불필요한 API 호출을 방지합니다.
- 스트림에서 이미지 처리를 사용하여 대용량 파일을 다룰 때 메모리 사용량을 줄입니다.
- 페이지네이션 사용을 통해 특정 페이지의 이미지만 필요할 경우 응답 속도를 높일 수 있습니다.
- API 속도 제한 처리를 위해 HTTP 429 응답 시 지수 백오프를 구현합니다.
- 저장된 각 파일 이름을 기록하여 문제 해결 및 감사 추적을 간소화합니다.
결론
Java에서 PDF 문서의 이미지를 추출하는 작업은 GroupDocs.Parser Cloud SDK for Java의 강력한 기능을 활용하면 간단하고 신뢰할 수 있게 됩니다. SDK는 자격 증명 관리, 클라우드 스토리지 연동 및 이미지 디코딩을 처리하여 애플리케이션 로직에 집중할 수 있도록 합니다. 프로덕션 배포를 위해서는 가격 페이지에서 적절한 라이선스를 구매하거나 평가용 임시 라이선스를 획득하십시오. 이 문서의 코드 예제, cURL 가이드 및 모범 사례 권장 사항을 통해 Java 기반 솔루션에 PDF 이미지 추출을 손쉽게 통합할 수 있습니다.
자주 묻는 질문
PDF에서 추출할 수 있는 형식은 무엇인가요?
SDK는 PNG, JPG, BMP, GIF 및 TIFF와 같은 래스터 형식과 이미지로 저장된 경우 벡터 그래픽도 추출합니다.PDF에서 이미지를 추출하기 전에 다운로드해야 하나요?
아니요. SDK는 GroupDocs Cloud 스토리지에 저장된 파일을 직접 사용하므로 로컬 다운로드가 필요하지 않습니다.SDK가 큰 PDF 파일을 어떻게 처리합니까?
추출은 서버 측에서 수행되므로 사용자의 머신에서 메모리 사용량이 낮게 유지됩니다. 또한 특정 페이지로 추출을 제한하여 성능을 향상시킬 수 있습니다.코드를 작성하지 않고 추출을 테스트할 수 있는 방법이 있나요?
예, 위에 제공된 cURL 명령을 사용하거나 제품 페이지의 인터랙티브 API 콘솔을 시도해 볼 수 있습니다.
