كيفية تحويل ملف PDF إلى دفتر عمل Excel قابل للتحرير في Java

كيفية تحويل ملف PDF إلى دفتر عمل Excel قابل للتحرير في Java

يوضح هذا الدليل كيفية تحويل ملف PDF إلى دفتر يمكنك فعليًا تحريره، وليس مجرد تصدير مسطح. ستقوم بتحويل PDF إلى XLSX باستخدام ExcelSaveOptions، وتضبط التصدير بحيث تُوضع الجداول بشكل نظيف على عدد معقول من الأوراق، وتُعيد تحويل دفتر العمل المُعدَّل إلى PDF باستخدام ExcelLoadOptions.

تحويل ملف PDF إلى دفتر Excel أساسي

Document.save مع SaveFormat.Xlsx يؤدي إلى تحويل مباشر: يتم وضع نص كل صفحة ومحتواها الشبيه بالجداول على ورقة عمل منفصلة.

import org.aspose.pdf.Document;
import org.aspose.pdf.SaveFormat;

try (Document doc = new Document("report.pdf")) {
    doc.save("report.xlsx", SaveFormat.Xlsx); // SaveFormat.Excel is an alias
}

ضبط التصدير للحصول على جداول بيانات أنظف

غالبًا ما يكون تصدير ورقة واحدة لكل صفحة ليس ما يريده مستخدم جداول البيانات. ExcelSaveOptions يتحكم في دمج أوراق العمل، وتخطيط الأعمدة، وخوارزميات استعادة الجداول للملفات PDF التي لا تحتوي على بنية جدول مُعلمة:

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelSaveOptions;

try (Document doc = new Document("report.pdf")) {
    ExcelSaveOptions options = new ExcelSaveOptions();
    options.setFormat(ExcelSaveOptions.ExcelFormat.XLSX); // default
    options.setMinimizeTheNumberOfWorksheets(true);        // merge pages onto fewer sheets
    options.setInsertBlankColumnAtFirst(false);            // no leading spacer column
    options.setUniformWorksheets(false);                   // allow per-sheet column widths
    options.setStructuralHeuristics(true);                 // recover tables on untagged PDFs
    options.setSuppressRunningHeadersFooters(true);         // drop repeated page furniture
    doc.save("report.xlsx", options);
}

setMinimizeTheNumberOfWorksheets(true) هو الخيار الوحيد الذي يغيّر شكل المخرجات إلى أقصى حد: بدونّه، ينتج تقرير من 20 صفحة 20 ورقة عمل.

تحويل مصنف Excel إلى PDF مرة أخرى

بعد أن يقوم المراجع بتحرير المصنف، أعده إلى صيغة PDF بتحميله باستخدام ExcelLoadOptions وحفظ المستند الناتج:

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;

try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
    doc.save("book.pdf");
}

انظر أيضاً

 العربية