DOCX 파일을 PDF 로 변환하는 것은 범용이며 인쇄 준비가 된 형식이 필요한 문서 워크플로를 구축할 때 자주 요구되는 작업입니다. GroupDocs.Conversion Cloud SDK for Java 은 Microsoft Office에 의존하지 않고 이 작업을 처리하는 강력한 API를 제공합니다. 이 튜토리얼에서는 라이브러리를 설정하고, 다중 스레드 변환을 실행하며, 스트림을 효율적으로 사용하고, 성능 모범 사례를 적용하는 방법을 보여줍니다. 마지막으로 Java 백엔드에 통합할 수 있는 즉시 사용 가능한 코드 샘플을 얻게 됩니다.

Java에서 DOCX를 PDF로 변환하는 단계

  1. Conversion API 클라이언트 초기화 - 클라이언트 ID와 비밀 키를 사용하여 ConversionApi 인스턴스를 생성합니다. 이 객체는 이후 모든 호출에 사용됩니다.
    ConversionApi api = new ConversionApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
    
  2. 소스 DOCX 업로드 - UploadApi를 사용하여 DOCX 파일을 GroupDocs 스토리지에 전송합니다. API는 이후에 참조할 파일 식별자를 반환합니다.
    UploadApi upload = new UploadApi(api);
    String fileId = upload.uploadFile("sample.docx");
    
  3. 변환 옵션 구성 - parallelism을 설정하여 멀티스레딩을 활성화하고, 임시 파일을 방지하기 위해 스트림 기반 출력을 선택합니다.
    ConvertOptions options = new ConvertOptions();
    options.setParallelism(4);               // Use 4 threads
    options.setOutputFormat("pdf");
    options.setUseStream(true);
    
  4. 변환 실행 - 파일 식별자와 옵션을 사용하여 convert 메서드를 호출합니다. 결과는 InputStream으로 반환됩니다.
    InputStream pdfStream = api.convert(fileId, options);
    
  5. PDF 저장 - InputStream을 원하는 위치에 기록하고 리소스를 닫습니다.
    Files.copy(pdfStream, Paths.get("output.pdf"), StandardCopyOption.REPLACE_EXISTING);
    pdfStream.close();
    

Java DOCX를 PDF로 변환 - 전체 코드 예제

다음 예제는 모든 단계를 하나의 컴파일 준비가 된 프로그램으로 결합합니다. 이 예제는 다중 스레드 변환, 스트림 처리 및 적절한 리소스 정리를 보여줍니다.

import com.groupdocs.conversion.cloud.api.ConversionApi;
import com.groupdocs.conversion.cloud.api.UploadApi;
import com.groupdocs.conversion.cloud.model.ConvertOptions;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

public class DocxToPdfDemo {
    public static void main(String[] args) {
        // Initialize the API client
        ConversionApi conversionApi = new ConversionApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
        UploadApi uploadApi = new UploadApi(conversionApi);

try {
            // 1. Upload DOCX file
            String fileId = uploadApi.uploadFile("sample.docx");

// 2. Set conversion options (multithreading + stream output)
            ConvertOptions options = new ConvertOptions();
            options.setParallelism(4);          // Number of threads
            options.setOutputFormat("pdf");
            options.setUseStream(true);

// 3. Perform conversion
            InputStream pdfStream = conversionApi.convert(fileId, options);

// 4. Save the resulting PDF
            Files.copy(pdfStream, Paths.get("sample_converted.pdf"), StandardCopyOption.REPLACE_EXISTING);
            pdfStream.close();

System.out.println("Conversion completed successfully.");
        } catch (Exception e) {
            System.err.println("Error during conversion: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

참고: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에 사용하기 전에 파일 경로(sample.docx, sample_converted.pdf)를 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 후, 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서 또는 지원 팀에 문의하십시오.

cURL을 사용한 REST API를 통한 DOCX 문서 PDF 변환

클라우드 서비스에서 제공하는 REST 엔드포인트를 사용하여 동일한 변환을 수행할 수 있습니다. 아래는 필요한 cURL 명령입니다.

  1. 액세스 토큰 얻기 - 클라이언트 자격 증명을 사용하여 인증합니다.
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
  1. DOCX 파일 업로드 - 이전 단계에서 받은 토큰을 사용합니다.
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@sample.docx"
  1. 변환 시작 - 멀티스레딩이 활성화된 PDF 출력을 요청합니다.
curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/convert" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "inputFilePath":"sample.docx",
           "outputFormat":"pdf",
           "options":{"parallelism":4}
         }'
  1. 변환된 PDF 다운로드 - output_file_id를 이전 응답에서 반환된 ID로 교체하십시오.
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/download/output_file_id.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o converted.pdf

엔드포인트 및 매개변수의 전체 목록은 공식 API 문서를 참조하십시오.

Java에서 설치 및 설정

  1. Add the Maven dependency - Include the SDK in your pom.xml.
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-conversion-cloud</artifactId>
    <version>2.0.0</version>
</dependency>
  1. Install the library - Run the Maven command to fetch the package.
mvn install com.groupdocs:groupdocs-conversion-cloud
  1. Download the latest release - You can also obtain the JAR directly from the download page.
  2. Apply a temporary license for testing - Register at the temporary license page and set the license file in your code if needed.
  3. Configure your credentials - Store client_id and client_secret securely, for example in environment variables.

Java와 GroupDocs.Conversion을 사용한 DOCX에서 PDF 변환 튜토리얼

GroupDocs.Conversion Cloud SDK는 형식 변환의 복잡성을 추상화하여 비즈니스 로직에 집중할 수 있게 합니다. API는 다양한 소스 및 대상 형식을 지원하고, 자동 글꼴 처리와 고품질 렌더링을 제공합니다. 서비스가 클라우드에서 실행되기 때문에 서버에 Office 구성 요소를 설치하는 오버헤드를 피할 수 있습니다.

GroupDocs.Conversion 이 작업에 중요한 기능

  • Stream‑based processing - InputStream/OutputStream를 사용하여 디스크 I/O를 최소화합니다.
  • Multithreaded conversion - parallelism 설정이 페이지 렌더링을 CPU 코어에 분산시켜 대용량 DOCX 파일의 변환 시간을 크게 단축합니다.
  • Preservation of layout and images - 모든 삽입된 이미지, 표 및 스타일이 결과 PDF에 그대로 유지됩니다.
  • Scalable cloud infrastructure - 추가 하드웨어 없이도 대용량 작업 부하를 처리할 수 있는 확장 가능한 클라우드 인프라를 제공합니다.

스트림 및 출력 옵션 작업

대용량 문서를 처리할 때는 메모리 사용량을 낮게 유지하기 위해 스트림을 사용하십시오:

InputStream input = new FileInputStream("large.docx");
ConvertOptions opts = new ConvertOptions();
opts.setUseStream(true);          // Enable streaming
opts.setParallelism(8);           // Increase thread count for big files
InputStream pdf = conversionApi.convert(input, opts);

SDK는 데이터를 자동으로 버퍼링하지만, 더 세밀한 제어가 필요할 경우 bufferSize 옵션을 통해 버퍼 크기를 미세 조정할 수 있습니다.

DOCX를 PDF 변환 성능 최적화

  • parallelism 조정 사용 가능한 CPU 코어 수에 따라; 4‑8 값은 대부분의 서버에서 잘 작동합니다.
  • ConversionApi 인스턴스 재사용 여러 변환에 걸쳐 반복적인 인증 오버헤드를 방지합니다.
  • 스트림 출력 선호 임시 파일보다 디스크 지연 시간을 줄입니다.
  • API 할당량 모니터링 - 클라우드 서비스는 요청 제한을 적용합니다; 가능한 경우 여러 파일을 배치 처리합니다.

DOCX를 PDF로 변환하기 위한 Java 모범 사례

  • 업로드하기 전에 입력 파일을 검증하여 잘못된 DOCX 오류를 방지합니다.
  • 클라이언트 컴퓨터에서 일관된 렌더링을 보장하기 위해 글꼴 포함을 활성화합니다.
  • 성능 저하 문제를 해결하기 위해 변환 타임스탬프와 스레드 수를 기록합니다.
  • 임시 라이선스는 개발 중에만 사용하고, 릴리스 전에 정식 라이선스를 획득합니다.

결론

이 가이드는 Java에서 GroupDocs.Conversion Cloud SDK for Java을 사용하여 DOCX를 PDF로 변환하는 방법을 보여주었습니다. 멀티스레드 구성, 스트림 작업 및 대용량 문서에 대한 성능 최적화 방법을 배웠습니다. 프로덕션 사용을 위해 적절한 라이선스를 확보해야 하며, 가격 세부 정보는 제품 페이지에서 확인할 수 있고, 임시 라이선스는 임시 라이선스 페이지에서 얻을 수 있습니다. 제공된 코드와 모범 사례 팁을 통해 이제 모든 Java 애플리케이션에 신뢰할 수 있는 문서 변환을 추가할 수 있습니다.

FAQs

메모리 부족 없이 큰 DOCX 파일을 어떻게 처리하나요?
스트림 기반 변환(setUseStream(true))을 사용하고 멀티스레딩을 활성화하십시오. 이렇게 하면 메모리에 작은 청크만 유지되고 작업 부하가 CPU 코어에 분산됩니다. 자세한 내용은 문서를 참조하십시오.

DOCX 파일에 사용자 정의 글꼴이 포함된 경우 변환이 가능한가요?
예. SDK는 누락된 글꼴을 PDF에 자동으로 포함합니다. 필요한 경우 fontsPath 옵션을 통해 추가 글꼴 파일을 제공할 수도 있습니다.

여러 DOCX 파일을 동시에 변환할 수 있나요?
물론입니다. 각 파일에 대해 별도의 변환 작업을 생성하고 이를 병렬 스레드 또는 실행자 서비스에서 실행하십시오. 클라우드 서비스는 각 요청을 독립적으로 처리합니다.

더 많은 샘플 프로젝트는 어디에서 찾을 수 있나요?
공식 GitHub 저장소에는 추가 예제가 포함되어 있습니다: https://github.com/groupdocs-conversion-cloud/groupdocs-conversion-cloud-java. 저장소에는 Maven 빌드 스크립트와 CI 구성도 포함되어 있습니다.

Read More