프로그래밍 방식으로 OneNote 페이지를 이미지 파일로 변환하는 것은 미리보기 생성기나 모바일 뷰어를 구축할 때 흔히 필요한 작업입니다. The Conholdate.Total for Java SDK를 사용하면 서버에 Microsoft Office가 없어도 Java에서 OneNote를 이미지로 쉽게 변환할 수 있습니다. 이 가이드에서는 완전하고 thread‑safe 구현, PNGJPEG 출력 옵션, 그리고 in‑memory 처리에 대한 팁을 확인할 수 있습니다.

Java에서 Onenote를 이미지로 변환하기 - 단계별 가이드

  1. 변환 워크플로우 초기화: OneNote 파일을 InputStream에 로드하고 Converter 인스턴스를 생성합니다 - Java 워크플로우에서 OneNote를 이미지로 변환하는 핵심입니다.

    InputStream fileStream = new BufferedInputStream(new FileInputStream("sample.one"));
    Converter converter = new Converter(fileStream);
    
  2. 변환이 필요한 페이지 수 확인: Converter에서 전체 페이지 수를 가져옵니다.

    int pageCount = converter.getPageCount();
    
  3. 각 페이지에 대한 이미지 옵션 구성: ImageConvertOptions를 사용하여 출력 형식, 품질 및 0부터 시작하는 페이지 인덱스를 설정합니다.

ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageSaveOptions.ImageFormat.PNG);
options.setQuality(90);
options.setPageNumber(pageIndex);
  1. 페이지를 병렬로 변환: ExecutorService를 사용하여 변환을 동시에 실행하고, 각 페이지를 별도의 PNG 파일로 기록합니다.

    ExecutorService executor = Executors.newFixedThreadPool(
            Runtime.getRuntime().availableProcessors());
    executor.submit(() -> {
        // conversion logic per page
    });
    
  2. 옵션 메모리 변환: 이미지 바이트를 직접 필요로 하는 시나리오(예: 네트워크를 통해 전송)에서는 첫 번째 페이지를 ByteArrayOutputStream으로 변환합니다.

    ImageConvertOptions memOptions = new ImageConvertOptions();
    memOptions.setFormat(ImageSaveOptions.ImageFormat.JPEG);
    memOptions.setPageNumber(0);
    ByteArrayOutputStream memoryStream = new ByteArrayOutputStream();
    converter.convert(memoryStream, memOptions);
    

Converter 클래스와 해당 메서드에 대한 자세한 내용은 공식 API 참조를 참조하십시오.

Java에서 OneNote를 이미지로 변환하는 전체 작업 예제 - 병렬 페이지 처리

다음 코드는 Conholdate.Total을 사용하여 Java에서 Onenote를 이미지로 변환하는 전체 구현을 보여줍니다.

import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.ImageConvertOptions;
import com.groupdocs.conversion.options.convert.ImageSaveOptions;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class ConvertOneNoteToImage {
    public static void main(String[] args) {
        String inputPath = "sample.one";
        String outputPattern = "output_page_%d.png";
        int imageQuality = 90; // 0-100

// Thread pool for parallel page conversion
        ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());

try (InputStream fileStream = new BufferedInputStream(new FileInputStream(inputPath));
             Converter converter = new Converter(fileStream)) {

int pageCount = converter.getPageCount();

for (int i = 0; i < pageCount; i++) {
                final int pageIndex = i;
                executor.submit(() -> {
                    ImageConvertOptions options = new ImageConvertOptions();
                    options.setFormat(ImageSaveOptions.ImageFormat.PNG);
                    options.setQuality(imageQuality);
                    options.setPageNumber(pageIndex); // zero‑based page index

String outputPath = String.format(outputPattern, pageIndex + 1);
                    try (OutputStream outStream = new BufferedOutputStream(new FileOutputStream(outputPath))) {
                        converter.convert(outStream, options);
                        System.out.println("Page " + (pageIndex + 1) + " saved to " + outputPath);
                    } catch (Exception e) {
                        System.err.println("Failed to convert page " + (pageIndex + 1) + ": " + e.getMessage());
                    }
                });
            }

// Example of in‑memory conversion for the first page
            ImageConvertOptions memOptions = new ImageConvertOptions();
            memOptions.setFormat(ImageSaveOptions.ImageFormat.JPEG);
            memOptions.setQuality(imageQuality);
            memOptions.setPageNumber(0);
            try (ByteArrayOutputStream memoryStream = new ByteArrayOutputStream()) {
                converter.convert(memoryStream, memOptions);
                byte[] imageBytes = memoryStream.toByteArray();
                System.out.println("In‑memory conversion produced " + imageBytes.length + " bytes for page 1.");
                // imageBytes can now be sent over network, stored in DB, etc.
            } catch (Exception e) {
                System.err.println("In‑memory conversion error: " + e.getMessage());
            }

} catch (IOException e) {
            System.err.println("File access error: " + e.getMessage());
        } catch (Exception e) {
            System.err.println("Conversion initialization error: " + e.getMessage());
        } finally {
            executor.shutdown();
            try {
                if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
                    executor.shutdownNow();
                }
            } catch (InterruptedException ie) {
                executor.shutdownNow();
                Thread.currentThread().interrupt();
            }
        }
    }
}

Note: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에서 사용하기 전에 파일 경로(sample.one, output_page_%d.png 등)를 실제 파일 위치에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 뒤 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에게 문의하세요.

설치 및 구성 Conholdate.Total for Java

Conholdate Maven 저장소와 SDK 종속성을 pom.xml에 추가하십시오:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

최신 바이너리 패키지를 다운로드 페이지에서 다운로드하십시오. SDK는 Java 8 이상이 필요하며 표준 JVM에서 실행됩니다. 프로덕션 사용을 위해서는 가격 페이지에서 라이선스를 구매하고, 임시 라이선스 페이지에서 임시 키로 활성화하십시오.

결론

이 가이드를 따라 하면 이제 Conholdate.Total for Java를 사용하여 Java에서 OneNote를 이미지로 변환하기 위한 탄탄한 기반을 갖추게 됩니다. 예제는 페이지별 PNG 출력, 속도를 위한 병렬 처리, 그리고 유연한 통합을 위한 메모리 내 옵션을 보여줍니다. ImageConvertOptions를 설정하여 필요한 이미지 형식과 품질에 맞추고, 예시와 같이 try‑with‑resources 블록으로 리소스를 처리하는 것을 기억하세요. 상업용 프로젝트의 경우, 가격 페이지를 통해 적절한 라이선스를 확보하고 실제 OneNote 파일로 변환을 테스트하여 모든 콘텐츠가 올바르게 렌더링되는지 확인하십시오. SDK의 방대한 API와 문서는 이 솔루션을 배치 처리나 클라우드 기반 서비스로 확장하는 것을 쉽게 만들어 줍니다.

자주 묻는 질문

  • Java에서 Microsoft Office를 설치하지 않고 Onenote를 이미지로 변환할 수 있나요?
    예. Conholdate.Total SDK는 모든 렌더링을 내부에서 수행하므로 서버에 Office를 설치할 필요가 없습니다.

  • 변환이 지원하는 이미지 형식은 무엇인가요?
    ImageSaveOptions.ImageFormat 속성을 설정하여 PNG, JPEG, BMP, GIF, 및 TIFF 형식으로 내보낼 수 있습니다.

  • 대형 노트북의 성능을 어떻게 향상시킬 수 있나요?
    예시와 같이 내장된 스레드 풀을 사용하고, 이미지 바이트만 필요할 때는 디스크 I/O를 피하기 위해 메모리 내 변환을 선호하십시오.

  • 더 많은 예제와 API 세부 정보를 어디서 찾을 수 있나요?
    공식 문서는 포괄적인 가이드를 제공하고, API 참조는 모든 클래스와 메서드를 나열합니다.

더 읽기