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

שינויי התנהגות לבדיקה לפני עדכון

שני שינויי משפיעים על מה שהקוד הקיים רואה:

  1. קואורדינטות תמונות PDF. הקואורדינטה העליונה של ריבועי תמונות PDF נמדדת כעת מהחלק העליון של העמוד. אם הקוד שלך המיר זאת מהחלק התחתון של העמוד, יש להסיר המרה זו.
  2. 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.

משאבים