우리는 GroupDocs.Parser for Java 26.10 버전이 2026년 10월에 출시되었음을 알려드립니다. 이번 유지보수 릴리스는 정확성에 중점을 두었습니다: 텍스트 검색이 모든 오버로드에서 다시 작동하고, 문서 구조 추출이 더 많은 Word 문서를 처리하며, 파일 정보가 암호화를 정확히 보고하고, PDF 이미지 좌표가 이제 API의 다른 부분과 일치합니다. 라이선스는 이제 GroupDocs.Foundation에서 처리되며, 번들된 Aspose 구성 요소가 업데이트되었습니다.
이번 릴리스의 새로운 기능
| 키 | 요약 | 카테고리 |
|---|---|---|
| PARSERJAVA-491 | Parser.search가 페이지에 범위가 지정되지 않은 검색 시 NullPointerException을 더 이상 발생시키지 않음 |
수정 |
| PARSERJAVA-513 | Parser.getStructure()가 헤더 또는 푸터 테이블이 있는 Word 문서에서도 작동하며 잘 형성된 XML을 반환함 |
수정 |
| — | Parser.getFileInfo(String)이 암호 보호된 DOCX, XLSX 및 PPTX 파일을 암호화된 것으로 보고함 |
수정 |
| — | FileInfo.isEncrypted()는 암호화된 PDF 문서에 대해서만 true를 반환함 |
수정 |
| — | PDF 이미지 사각형이 페이지 상단을 기준으로 측정되어 다른 페이지 영역과 동일함 | 수정 |
| PARSERJAVA-154 | 라이선스가 GroupDocs.Foundation에 의해 수행되며, 이는 GroupDocs 제품들이 공유하는 라이선스 코어임 | 업데이트 |
| PARSERJAVA-512 | 번들된 Aspose 구성 요소가 업데이트됨 | 업데이트 |
| PARSERJAVA-509 | 게시된 POM: 제품 이름, 짧은 설명, <url>, <organization> 및 <scm> |
업데이트 |
업그레이드 전에 확인할 동작 변경 사항
두 가지 변경 사항이 기존 코드의 동작에 영향을 줍니다:
- PDF 이미지 좌표. PDF 이미지 사각형의 상단 좌표가 이제 페이지 상단을 기준으로 측정됩니다. 코드에서 페이지 하단을 기준으로 변환하고 있었다면 해당 변환을 제거하십시오.
- Word 문서의 구조 XML. Word 구분 문자로 구분된 단어들이 이제 구조 XML에서 공백으로 구분됩니다.
수정 사항
페이지에 범위가 지정되지 않은 텍스트 검색
버전 25.5부터, 페이지에 범위가 지정되지 않은 모든 Parser.search 호출이 NullPointerException을 발생시켰습니다. 이는 search(String keyword) 오버로드, search(String keyword, SearchOptions options)에서 searchByPages가 false(기본값)로 설정된 경우, 그리고 하이라이트를 요청하는 검색에 영향을 주었습니다. searchByPages가 true로 설정된 검색은 영향을 받지 않았습니다.
26.10에서는 이러한 호출이 다시 검색 결과를 반환합니다:
try (Parser parser = new Parser("sample.pdf")) {
Iterable<SearchResult> results = parser.search("lorem");
if (results == null) {
return; // Search isn't supported for this document
}
for (SearchResult result : results) {
System.out.println(result.getPosition() + ": " + result.getText());
}
}
Word 문서의 구조
Parser.getStructure()는 헤더와 푸터에 테이블이 포함된 워드 프로세싱 문서에서 예외를 발생시키고, 문서 텍스트에 제어 문자가 포함될 경우 파싱되지 않는 XML을 반환할 수 있었습니다. 두 문제 모두 해결되었습니다:
- 헤더와 푸터의 테이블은 논리 그리드로 설명됩니다: 테이블의 행 인덱스, 행의 셀 인덱스 및 1의 스팬;
- Word 구분 문자(셀 끝, 수직 탭, 페이지 구분, 열 구분)는 공백으로 변환되어, 이들이 구분하던 단어가 더 이상 붙어 있지 않음;
- XML 1.0에서 허용되지 않는 문자는 삭제됨;
- 속성 값은 텍스트와 동일한 방식으로 이스케이프됨.
암호 보호 문서에 대한 파일 정보
Parser.getFileInfo(String filePath) 오버로드는 암호 보호된 DOCX, XLSX 및 PPTX 파일을 인식하지 못했습니다: DOCX와 XLSX에 대해 크기가 0이고 isEncrypted()가 false로 설정되었으며, PPTX는 파일 유형이 반환되지 않았습니다. 이제 InputStream 오버로드와 동일한 결과를 반환합니다: 실제 파일 크기, isEncrypted()가 true로 설정되고 FileType.Unknown(암호화된 문서의 형식은 비밀번호 없이는 읽을 수 없음).
이를 통해 보호된 파일을 쉽게 감지하고 비밀번호로 열 수 있습니다:
FileInfo info = Parser.getFileInfo("protected.docx");
if (info.isEncrypted()) {
LoadOptions options = new LoadOptions("password");
try (Parser parser = new Parser("protected.docx", options);
TextReader reader = parser.getText()) {
System.out.println(reader.readToEnd());
}
}
PDF 문서의 암호화
FileInfo.isEncrypted()는 이전에 모든 PDF 문서에 대해 true를 반환했습니다. 이제 실제로 암호화된 PDF 문서에 대해서만 true를 반환합니다.
PDF 이미지 위치
Parser.getImages()가 반환하는 PDF 이미지의 사각형은 페이지 하단을 기준으로 측정되었으며, 텍스트, 테이블 및 기타 페이지 영역은 상단을 기준으로 측정되었습니다. 이제 이미지는 동일한 상단 기준 좌표를 사용하므로 getImages(PageAreaOptions)가 지정된 사각형 내의 이미지를 찾습니다:
try (Parser parser = new Parser("images.pdf")) {
// Images in the top-left 400 x 400 points of each page
PageAreaOptions options = new PageAreaOptions(new Rectangle(new Point(0, 0), new Size(400, 400)));
for (PageImageArea image : parser.getImages(options)) {
System.out.println(image.getPage().getIndex() + ": " + image.getRectangle());
}
}
업데이트
GroupDocs.Foundation의 라이선스
라이선스 검증, 사용량 기반 라이선스 및 번들된 Aspose 구성 요소의 라이선스가 이제 GroupDocs.Foundation에 의해 수행됩니다. 이는 다른 GroupDocs 제품에서 사용되는 동일한 라이선스 코어입니다. 라이선스 API는 변경되지 않았으며: License.setLicense, Metered.setMeteredKey, Metered.getConsumptionQuantity 및 Metered.getConsumptionCredit이 이전과 동일하게 호출됩니다.
License license = new License();
license.setLicense("GroupDocs.Parser.Java.lic");
try (Parser parser = new Parser("document.docx");
TextReader reader = parser.getText()) {
System.out.println(reader.readToEnd());
}
번들된 Aspose 구성 요소
| 구성 요소 | 26.9 | 26.10 |
|---|---|---|
| Aspose.Cells | 26.3 | 26.9 |
| Aspose.Email | 26.1 | 26.8 |
| Aspose.PDF | 26.2 | 26.8.1 |
| Aspose.Slides | 26.2 | 26.9 |
| Aspose.Words | 26.3 | 26.8 |
| Aspose.BarCode | 26.4 | 26.6 |
| Aspose.Imaging | 25.12 | 25.12 |
| Aspose.ZIP | 25.10 | 25.10 |
| Aspose.Note | 23.3 | 23.3 |
이 제품은 여전히 Java 8에서 실행됩니다.
게시된 아티팩트 메타데이터
게시된 POM은 이제 이름 GroupDocs.Parser for Java, 라이브러리가 추출하는 내용과 지원하는 형식에 대한 짧은 설명, 제품 페이지를 <url>로 포함하고 <organization> 및 <scm>을 선언합니다. 이는 MVNRepository와 같은 의존성 인덱스가 표시하는 정보입니다. 코드, 동작 또는 API는 변경되지 않았습니다.
업데이트 받는 방법
Maven
pom.xml에 GroupDocs 저장소와 의존성을 추가하십시오:
<repositories>
<repository>
<id>groupdocs-artifacts-repository</id>
<name>GroupDocs Artifacts Repository</name>
<url>https://releases.groupdocs.com/java/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>26.10</version>
</dependency>
</dependencies>
직접 다운로드
다음 GroupDocs.Parser for Java 26.10 다운로드 페이지에서 JAR를 다운로드하십시오.