جافا ZIP إلى PDF

تُستخدم ملفات ZIP بشكل شائع لضغط ملفات متعددة وتجميعها في أرشيف واحد. يمكن أن يكون تحويل هذه الملفات إلى تنسيق PDF مفيدًا لأغراض متعددة مثل إنشاء التقارير أو أرشفة المستندات أو مشاركة المعلومات بتنسيق موحد. في هذا البرنامج التعليمي، سنستكشف كيفية تحويل ملف ZIP إلى مستند PDF باستخدام Java.

لماذا تحويل ZIP إلى PDF؟

قد تحتاج إلى تحويل ملفات ZIP إلى تنسيق PDF لحالات استخدام مختلفة. سنناقش هنا بعض أسباب التحويل:

إنشاء التقارير: إنشاء تقارير PDF عن طريق استخراج البيانات من ملفات ZIP وتقديمها في مستند منسق.

أرشفة المستندات: قم بتحويل المستندات أو الملفات المتعددة المخزنة في أرشيف ZIP إلى ملف PDF واحد لسهولة الأرشفة والاسترجاع.

توحيد المستندات: قم بتحويل تنسيقات الملفات المتنوعة داخل أرشيف ZIP إلى تنسيق PDF موحد لتسهيل المشاركة والعرض.

ZIP to PDF Converter - تكوين بيئة جافا

يجب عليك تكوين بيئة التطوير وتشغيل كود Java وتضمين الميزة في نظامك.

  • تأكد من تثبيت Java Development Kit (JDK) على نظامك.
  • تأكد من أن لديك بيئة تطوير متكاملة (IDE) مثل IntelliJ IDEA وApache NetBeans لتطوير Java.
  • علاوة على ذلك، قم بتنزيل ملف JAR الخاص بـ Conholdate.Total for Java أو استخدم تكوينات Maven التالية:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.2</version>
<type>pom</type>
</dependency>

تحويل ZIP إلى PDF في جافا

توضح الخطوات أدناه كيفية تحويل ZIP إلى PDF في Java:

  • قم بتهيئة كائن ZipInputStream باستخدام ملف ZIP للإدخال.
  • حدد دليل الإخراج حيث سيتم حفظ الملفات المستخرجة.
  • قم بالتكرار خلال كل ملف في ملف ZIP للإدخال واستخرجه إلى دليل الإخراج.
  • احتفظ بقائمة مؤقتة لتخزين أسماء الملفات المستخرجة من المجلد الذي تم فك ضغطه.
  • احصل على قائمة بجميع الملفات (بما في ذلك مساراتها الكاملة) من المجلد الذي تم فك ضغطه.
  • قم بالتكرار خلال كل ملف مستخرج وتحويله إلى تنسيق PDF.
  • دمج ملفات PDF المحولة.
  • قم بإنشاء مثيل لفئة Merger مع أول مستند PDF مُدخل من القائمة المؤقتة.
  • قم بالمراجعة عبر قائمة مستندات PDF المحولة، بدءًا من الملف الثاني.
  • قم باستدعاء طريقة الحفظ لمثيل فئة Merger لحفظ مستند PDF المدمج.

يوضح نموذج التعليمات البرمجية التالي كيفية تحويل ZIP إلى PDF في Java:

// تنسيقات الملفات المدعومة: https://docs.groupdocs.com/conversion/java/supported-document-formats/
// يعمل مع OpenJDK 17

package com.mycompany.asposejavatest;

import java.io.*;
import java.util.ArrayList;
import org.apache.commons.compress.archivers.*;
import org.apache.commons.compress.compressors.*;
import com.groupdocs.conversion.*;
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
import com.groupdocs.conversion.contracts.PossibleConversions;
import com.groupdocs.conversion.options.convert.ConvertOptions;
import com.groupdocs.merger.*;
import com.groupdocs.merger.Merger;

public class AsposeJavaTest {

    public static void main(String[] args) {

        try {
            InputStream inputfile = new BufferedInputStream(new FileInputStream("input.zip"));

            // لتلك التنسيقات التي يتم أرشفتها وضغطها بشكل منفصل. مثل tar.gz tar.bz tar.xz استخدم
            // CompressorInputStream ثم استخدم ArchiveInputStream لتحميل ملف الإدخال.
            //CompressorInputStream cis = new CompressorStreamFactory().createCompressorInputStream(inputfile);
            //ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(cis);

            // للتنسيقات التي تحتوي على دعم مدمج للضغط. مثل Zip RAR JAR 7zip
            // ArchiveInputStream لتحميل ملف الإدخال بدون CompressorInputStream
            //ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(inputfile);

            ArchiveEntry entry = ais.getNextEntry();

            File outputDir = new File("/tmp/output");
            if (!outputDir.exists()) {
                outputDir.mkdirs();
            }

            while (entry != null) {
                String filePath = outputDir.getAbsolutePath() + File.separator + entry.getName();
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
                byte[] bytesIn = new byte[1024];
                int read;

                while ((read = ais.read(bytesIn)) != -1) {
                    bos.write(bytesIn, 0, read);
                }

                ais.close();
                bos.close();
                entry = ais.getNextEntry();
            }

            // قائمة مؤقتة لحفظ أسماء الملفات المستخرجة من المجلد غير المضغوط
            ArrayList<String> filesList = new ArrayList<>();

            // احصل على قائمة بجميع الملفات (مع المسارات الكاملة) من المجلد غير المضغوط
            File[] files = outputDir.listFiles();

            // قم بالمراجعة خلال كل ملف تم فك ضغطه وقم بتحويل كل ملف إلى PDF
           for (File file : files) {
                // قم بتحميل الملف المستخرج
                Converter converter = new Converter(file.getAbsolutePath());
                // اضبط خيارات التحويل لتنسيق PDF				
                PdfConvertOptions convertOptions = new PdfConvertOptions();                
                // تحويل إلى تنسيق PDF
                String outPath = outputDir.getAbsolutePath() + File.separator + file.getName()+ ".pdf";
                converter.convert(outPath, convertOptions);
                // أضف أسماء الملفات إلى القائمة المؤقتة بعد التحويل إلى PDF
                filesList.add(outPath);
            }

            // دمج ملفات PDF باستخدام GroupDocs.Merger API
            // إنشاء مثيل لعملية الدمج مع مستند PDF الإدخال الأول في القائمة المؤقتة
            Merger merger = new Merger(filesList.get(0));

            // قم بالتمرير عبر قائمة مستندات PDF المحولة بدءًا من الملف الثاني
           for (int i = 1; i < filesList.size(); i++) {
                // استدعاء طريقة الانضمام لمثيل فئة الاندماج وتمرير الملفات المصدر المتبقية واحدًا تلو الآخر
                merger.join(filesList.get(i));
            }

            // استدعاء طريقة Save لمثيل فئة Merger لحفظ مستند PDF المدمج
            merger.save("/tmp/output.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

رخصة التقييم المجانية

يمكنك تحويل ملفات ZIP إلى تنسيق PDF واختبار ميزات API الأخرى بكامل طاقتها عن طريق طلب ترخيص مؤقت مجاني.

تغليف

تلخص هذه المقالة تحويل ملف ZIP إلى PDF في Java. يتضمن ذلك استخراج الملفات من أرشيف ZIP، وتحويلها إلى تنسيق PDF، ثم دمجها في مستند PDF واحد. علاوة على ذلك، يمكن أتمتة هذه العملية وتخصيصها بناءً على متطلباتك المحددة. في حالة وجود أي غموض، فلا تتردد في الاتصال بنا على المنتدى.

الأسئلة الشائعة

هل يمكنني تخصيص مستندات PDF التي تم إنشاؤها من ملفات ZIP؟

نعم، يمكنك تخصيص مستندات PDF التي تم إنشاؤها من ملفات ZIP. يمكنك تطبيق عمليات معالجة مختلفة مثل ضبط الخطوط والألوان والتخطيطات وعناصر التصميم الأخرى لتحسين العرض المرئي لمستندات PDF الخاصة بك. يمكنك أيضًا إضافة الرؤوس والتذييلات والعلامات المائية والتعليقات التوضيحية وفقًا لمتطلباتك.

هل يمكنني تحويل ملفات محددة داخل أرشيف ZIP إلى PDF بدلاً من تحويل جميع الملفات؟

نعم، يمكنك تحويل ملفات محددة داخل أرشيف ZIP إلى PDF عن طريق تعديل كود Java الخاص بك وفقًا لذلك. يمكنك استخراج ملفات محددة بناءً على أسمائها أو امتداداتها أو معايير أخرى ثم تحويل تلك الملفات المستخرجة فقط إلى تنسيق PDF. وهذا يسمح بالتحويل والتخصيص الانتقائي بناءً على متطلباتك.

هل هناك طريقة لحماية كلمة المرور لمستند PDF الناتج أثناء التحويل؟

نعم، يمكنك حماية مستند PDF الناتج بكلمة مرور لأن الميزات المدعومة تتضمن تشفير PDF وتعيين كلمات المرور والأذونات ومستويات التشفير لمستندات PDF.

أنظر أيضا