GroupDocs.Parser Java를 사용한 DOCX를 Markdown으로 변환
현대 웹 및 콘텐츠 관리 시나리오에서는 풍부한 텍스트 문서를 가볍고, 휴대 가능하며, 쉽게 렌더링할 수 있도록 docx를 markdown으로 변환해야 하는 경우가 많습니다. 이 튜토리얼에서는 GroupDocs.Parser for Java를 사용하여 변환을 수행하고, 페이지 수를 가져오며, 각 페이지에서 markdown을 추출하는 방법을 단계별로 보여줍니다. 마지막까지 따라하면 모든 Java 서비스에 적용할 수 있는 프로덕션 준비된 솔루션을 얻게 됩니다.
빠른 답변
FormattedTextMode.Markdown는 파서에게 콘텐츠를 Markdown 형식으로 출력하도록 지시하는 열거형 값입니다.
- GroupDocs.Parser가 DOCX를 Markdown으로 변환할 수 있나요? 예 –
FormattedTextMode.Markdown와 함께parser.getFormattedText를 호출합니다. - 형식화된 텍스트 지원을 어떻게 확인하나요?
parser.getFeatures().isFormattedText()를 사용합니다. - 페이지 수를 반환하는 메서드는 무엇인가요?
parser.getDocumentInfo().getPageCount(). - 프로덕션에 라이선스가 필요합니까? 유효한 GroupDocs.Parser 라이선스를 사용하면 평가 제한이 해제됩니다.
- 의존성 관리를 간소화하는 빌드 도구는 무엇인가요? Maven이 Java 프로젝트에 권장되는 접근 방식입니다.
“convert docx to markdown”란 무엇인가요?
Convert docx to markdown는 Microsoft Word의 스타일, 헤딩, 리스트, 테이블 및 이미지를 Markdown 구문으로 변환하는 것을 의미합니다. 결과는 정적 사이트 생성기, Git 저장소 및 하위 프로세서가 무거운 포맷팅 부담 없이 사용할 수 있는 순수 텍스트 마크업입니다.
이 변환에 GroupDocs.Parser를 사용하는 이유는 무엇인가요?
GroupDocs.Parser는 70개 이상의 입력 및 출력 형식을 지원합니다—DOCX, PDF, PPTX, XLSX 등을 포함하며—전체 파일을 메모리에 로드하지 않고 2 GB까지의 문서를 처리할 수 있습니다. 스트리밍 API는 메모리 사용량을 낮게 유지하면서 고품질 markdown을 제공하므로 대규모 배치 작업에 이상적입니다.
필수 조건
- **Java Development Kit (JDK) 8+**가 설치되어 있어야 합니다.
- IDE(IntelliJ IDEA, Eclipse, VS Code 등).
- Maven(또는 수동 JAR 다운로드)으로 의존성을 관리합니다.
- GroupDocs.Parser 라이선스(무료 체험 또는 구매).
GroupDocs.Parser for Java 설정
설치
pom.xml에 GroupDocs 리포지토리와 의존성을 추가합니다:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/parser/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>25.5</version>
</dependency>
</dependencies>
직접 다운로드
Maven을 사용하고 싶지 않다면, 최신 JAR 파일을 GroupDocs.Parser for Java releases에서 다운로드할 수 있습니다.
라이선스 획득
평가 제한을 해제하려면:
- 무료 체험: GroupDocs 웹사이트에서 체험 라이선스를 다운로드합니다.
- 임시 라이선스: GroupDocs 웹사이트를 통해 요청합니다.
- 정식 구매: 배포 요구에 맞는 프로덕션 라이선스를 구매합니다.
기본 초기화 및 설정
Parser 클래스는 문서를 나타내고 콘텐츠와 메타데이터에 접근할 수 있는 GroupDocs.Parser의 주요 진입점입니다. DOCX 파일을 가리키는 Parser 인스턴스를 생성합니다:
import com.groupdocs.parser.Parser;
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
// Code for text extraction or document info retrieval goes here
}
이 한 줄로 문서를 열고 이후 작업을 위한 준비를 마칩니다.
구현 가이드
아래에서는 프로세스를 세 가지 실용적인 기능으로 나눕니다: 지원 여부 확인, 페이지 수 가져오기, Markdown 추출.
기능 1: 문서에서 형식화된 텍스트 추출 확인
왜 중요한가: 모든 형식이 풍부한 텍스트 추출을 지원하는 것은 아니며, 잘못된 API를 호출하면 예외가 발생할 수 있습니다.
Step 1.1 – 지원 확인
isFormattedText는 현재 문서 유형을 Markdown과 같은 형식화된 마크업으로 변환할 수 있는지 여부를 나타냅니다.
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.IDocumentInfo;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
if (!parser.getFeatures().isFormattedText()) {
System.out.println("Document isn't supported for formatted text extraction.");
}
}
기능 2: 문서 페이지 수 가져오기
왜 중요한가: 페이지 수를 알면 전체 파일을 처리할지 특정 페이지만 처리할지 결정할 수 있습니다.
Step 2.1 – 페이지 수 가져오기
getPageCount는 열려 있는 문서의 전체 페이지 수를 반환하여 페이지네이션 로직을 가능하게 합니다.
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.IDocumentInfo;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
IDocumentInfo documentInfo = parser.getDocumentInfo();
if (documentInfo.getPageCount() == 0) {
System.out.println("Document hasn't any pages.");
} else {
System.out.println("Page count: " + documentInfo.getPageCount());
}
}
기능 3: 문서 페이지에서 형식화된 텍스트(Markdown) 추출
목표: 각 페이지의 내용을 Markdown으로 변환하고, 이를 연결하거나 개별적으로 저장할 수 있습니다.
Step 3.1 – 페이지를 순회하며 Markdown 추출
FormattedTextOptions는 출력 모드를 설정하고, TextReader.readToEnd()는 현재 페이지에 대한 전체 Markdown 문자열을 반환합니다.
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.IDocumentInfo;
import com.groupdocs.parser.options.FormattedTextOptions;
import com.groupdocs.parser.options.FormattedTextMode;
import com.groupdocs.parser.data.TextReader;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
IDocumentInfo documentInfo = parser.getDocumentInfo();
for (int p = 0; p < documentInfo.getPageCount(); p++) {
try (TextReader reader = parser.getFormattedText(p, new FormattedTextOptions(FormattedTextMode.Markdown))) {
System.out.println(reader.readToEnd());
}
}
}
핵심 클래스 설명:
FormattedTextOptions는 출력 모드(Markdown등)를 지정할 수 있게 해줍니다.TextReader.readToEnd()는 선택한 페이지의 전체 형식화된 콘텐츠를 읽습니다.
실용적인 적용 사례
| 사용 사례 | docx를 markdown으로 변환하면 도움이 되는 점 |
|---|---|
| 콘텐츠 관리 시스템 | 빠른 렌더링 및 버전 관리를 위해 원시 Markdown을 저장합니다. |
| 데이터 분석 도구 | 분석을 위해 헤딩, 테이블, 리스트를 프로그래밍 방식으로 파싱합니다. |
| 문서 변환 서비스 | PDF의 경량 대안으로 DOCX → Markdown을 제공합니다. |
| 정적 사이트 생성기 | Markdown을 Jekyll, Hugo, Gatsby 파이프라인에 직접 전달합니다. |
성능 고려 사항
- 메모리 관리: 충분한 힙(
-Xmx2g큰 파일용)을 할당하여OutOfMemoryError를 방지합니다. - 병렬 처리: 대량 변환 시 파일을 별도 스레드에서 처리하거나 executor 서비스를 사용합니다.
- 배치 처리: 파일을 배치로 묶어 I/O 오버헤드를 줄입니다.
결론
이제 GroupDocs.Parser Java를 사용하여 docx를 markdown으로 변환하고, 문서 페이지 수를 가져오는 방법 및 각 페이지에서 안전하게 Markdown을 추출하는 완전한 프로덕션 준비 가이드를 갖추었습니다. 이러한 코드를 서비스에 통합하고, 대량 변환을 자동화하거나 Markdown을 직접 다루는 맞춤형 편집기를 구축하십시오.
FAQ 섹션
1. Maven 없이 GroupDocs.Parser를 사용할 수 있나요?
예 – GroupDocs releases page에서 JAR 파일을 다운로드하여 프로젝트 클래스패스에 추가합니다.
2. 지원되지 않는 문서는 어떻게 처리하나요?
추출 전에 항상 parser.getFeatures().isFormattedText()를 호출합니다. false를 반환하면 파일을 건너뛰거나 사용자에게 알립니다.
3. DOCX 외에 GroupDocs.Parser가 추출할 수 있는 다른 형식은 무엇인가요?
GroupDocs.Parser는 PDF, PPTX, XLSX 및 기타 많은 파일 형식을 지원합니다. 전체 목록은 공식 문서를 확인하십시오.
자주 묻는 질문
Q: Markdown 출력이 GitHub Flavored Markdown과 완전히 호환되나요?
A: 생성된 Markdown은 CommonMark 사양을 따르며, GitHub Flavored Markdown이 이를 확장하므로 대부분의 GitHub 환경에서 잘 작동합니다.
Q: DOCX 파일의 특정 섹션만 추출할 수 있나요?
A: 예 – getFormattedText 호출에 페이지 범위를 결합하거나 추출 후 TextReader를 사용해 내용을 필터링합니다.
Q: 라이브러리가 비밀번호로 보호된 DOCX 파일을 지원하나요?
A: Parser 생성자에 비밀번호를 제공하면 GroupDocs.Parser가 비밀번호 보호된 문서를 열 수 있습니다.
Q: 수천 개 파일의 추출 속도를 어떻게 향상시킬 수 있나요?
A: 스레드 풀을 사용해 파일을 동시에 처리하고 파일당 Parser 인스턴스를 재사용하여 오버헤드를 줄입니다.
Q: 더 많은 예제를 어디서 찾을 수 있나요?
A: 공식 GroupDocs.Parser GitHub 저장소와 문서 사이트에 추가 코드 샘플 및 사용 사례 가이드가 포함되어 있습니다.
마지막 업데이트: 2026-07-02
테스트 환경: GroupDocs.Parser 25.5 for Java
작성자: GroupDocs