خوشحالیم که انتشار GroupDocs.Parser for Java 26.10 را اعلام می‌کنیم که از اکتبر 2026 در دسترس است. این یک نسخه نگهداری است که بر صحت تمرکز دارد: جستجوی متن دوباره برای تمام overloadها کار می‌کند، استخراج ساختار سند تعداد بیشتری از اسناد 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> به‌روزرسانی

تغییرات رفتار که قبل از ارتقا باید بررسی شوند

دو تغییر بر آنچه کد موجود مشاهده می‌کند تأثیر می‌گذارند:

  1. مختصات تصویر PDF. مختصات بالایی مستطیل‌های تصویر PDF اکنون از بالای صفحه اندازه‌گیری می‌شود. اگر کد شما این مقدار را از پایین صفحه تبدیل می‌کرد، آن تبدیل را حذف کنید.
  2. XML ساختار اسناد Word. کلماتی که با کاراکتر شکست Word جدا شده بودند، اکنون در XML ساختار با یک فاصله جدا می‌شوند.

رفع اشکالات

جستجوی متن بدون محدوده صفحه

از نسخه ۲۵.۵، هر فراخوانی Parser.search که بدون محدوده صفحه بود، با NullPointerException شکست می‌خورد. این بر overload search(String keyword)، search(String keyword, SearchOptions options) که searchByPages روی false تنظیم شده (پیش‌فرض) و جستجوهایی که برجسته‌سازی می‌خواستند، تأثیر داشت. جستجوهایی که searchByPages روی true تنظیم شده بودند، تحت تأثیر قرار نگرفتند.

در نسخه ۲۶.۱۰ این فراخوانی‌ها دوباره نتایج جستجو را برمی‌گردانند:

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ی برگرداند که هنگام وجود کاراکترهای کنترلی در متن سند قابل تجزیه نبود. هر دو مشکل رفع شده‌اند:

  • جداول در سرصفحه و پاورقی با شبکه منطقی خود توصیف می‌شوند: اندیس ردیف در جدول، اندیس سلول در ردیف و گسترش‌های ۱؛
  • کاراکترهای شکست Word (پایان سلول، تب عمودی، شکست صفحه، شکست ستون) به یک فاصله تبدیل می‌شوند، به‌طوری که کلماتی که جدا می‌کردند دیگر به‌هم چسبیده نیستند؛
  • کاراکترهایی که XML 1.0 اجازه نمی‌دهد حذف می‌شوند؛
  • مقادیر ویژگی‌ها به همان شیوه متن‌ها Escape می‌شوند.

اطلاعات فایل برای اسناد محافظت‌شده با رمز عبور

overload Parser.getFileInfo(String filePath) فایل‌های DOCX، XLSX و PPTX محافظت‌شده با رمز عبور را تشخیص نمی‌داد: برای DOCX و XLSX اندازه ۰ و isEncrypted() برابر false برمی‌گرداند و برای PPTX نوع فایلی برنمی‌گرداند. اکنون همان نتیجه‌ای که overload 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

مستطیل‌های تصاویر 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 بسته‌بندی‌شده

مؤلفه ۲۶.۹ ۲۶.۱۰
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 دانلود کنید.

منابع