เรามีความยินดีที่จะแจ้งการเปิดตัว GroupDocs.Parser for Java 26.10 ซึ่งพร้อมให้บริการตั้งแต่ ตุลาคม 2026. นี่เป็นการปล่อยรุ่นบำรุงรักษาที่มุ่งเน้นความถูกต้อง: การค้นหาข้อความทำงานได้อีกครั้งสำหรับทุกการโอเวอร์โหลด, การสกัดโครงสร้างเอกสารรองรับไฟล์ 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() มีค่า true เฉพาะสำหรับไฟล์ PDF ที่ถูกเข้ารหัส |
แก้ไข |
| — | สี่เหลี่ยมภาพ PDF วัดจากด้านบนของหน้าเช่นเดียวกับพื้นที่หน้าอื่น | แก้ไข |
| PARSERJAVA-154 | การจัดการลิขสิทธิ์ดำเนินการโดย GroupDocs.Foundation, แกนการจัดการลิขสิทธิ์ที่ใช้ร่วมกันโดยผลิตภัณฑ์ GroupDocs | อัปเดต |
| PARSERJAVA-512 | ส่วนประกอบ Aspose ที่รวมมาด้วยได้รับการอัปเดต | อัปเดต |
| PARSERJAVA-509 | POM ที่เผยแพร่: ชื่อผลิตภัณฑ์, คำอธิบายสั้น, <url>, <organization> และ <scm> |
อัปเดต |
การเปลี่ยนแปลงพฤติกรรมที่ควรตรวจสอบก่อนอัปเกรด
สองการเปลี่ยนแปลงส่งผลต่อสิ่งที่โค้ดเดิมสังเกตเห็น:
- พิกัดภาพ PDF. พิกัดด้านบนของสี่เหลี่ยมภาพ PDF ตอนนี้วัดจากด้านบนของหน้า. หากโค้ดของคุณแปลงจากด้านล่างของหน้า, ให้ลบการแปลงนั้นออก.
- XML โครงสร้างของไฟล์ Word. คำที่แยกด้วยอักขระการตัดคำของ 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 ที่ป้องกันด้วยรหัสผ่านได้: มันคืนขนาดเป็น 0 และ isEncrypted() เป็น false สำหรับ DOCX และ XLSX, และไม่มีประเภทไฟล์สำหรับ 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() ก่อนหน้านี้คืนค่า true สำหรับไฟล์ PDF ทุกไฟล์. ตอนนี้คืนค่า true เฉพาะสำหรับไฟล์ PDF ที่ถูกเข้ารหัสจริงๆ.
ตำแหน่งของภาพ PDF
สี่เหลี่ยมของภาพ PDF ที่คืนโดย Parser.getImages() ถูกวัดจากด้านล่างของหน้า, ในขณะที่ข้อความ, ตารางและพื้นที่หน้าอื่นๆ วัดจากด้านบน. ตอนนี้ภาพใช้พิกัดที่อ้างอิงจากด้านบนเช่นเดียวกัน, ดังนั้น 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
เพิ่มรีโพซิทอรีของ GroupDocs และการพึ่งพาไปยัง pom.xml ของคุณ:
<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>
ดาวน์โหลดโดยตรง
ดาวน์โหลด JAR จากหน้า หน้าดาวน์โหลด GroupDocs.Parser for Java 26.10.