אנו שמחים להודיע על השחרור של 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 download page.