جاوا ZIP به PDF

فایل‌های ZIP معمولاً برای فشرده‌سازی و بسته‌بندی چندین فایل در یک آرشیو واحد استفاده می‌شوند. تبدیل این فایل ها به فرمت PDF می تواند برای اهداف مختلفی مانند ایجاد گزارش، بایگانی اسناد یا به اشتراک گذاری اطلاعات در قالب استاندارد مفید باشد. در این آموزش، نحوه تبدیل فایل ZIP به سند PDF با استفاده از جاوا را بررسی خواهیم کرد.

چرا ZIP را به PDF تبدیل کنیم؟

ممکن است برای موارد استفاده مختلف نیاز به تبدیل فایل های ZIP به فرمت PDF داشته باشید. در اینجا ما در مورد چند دلیل برای تبدیل بحث می کنیم:

ایجاد گزارش: با استخراج داده ها از فایل های ZIP و ارائه آنها در یک سند فرمت شده، گزارش های PDF ایجاد کنید.

بایگانی اسناد: چندین سند یا فایل ذخیره شده در یک بایگانی ZIP را به یک PDF واحد برای بایگانی و بازیابی آسان تبدیل کنید.

استانداردسازی سند: فرمت های فایل های مختلف را در یک آرشیو ZIP به یک فرمت PDF یکنواخت برای اشتراک گذاری و مشاهده آسان تر تبدیل کنید.

تبدیل ZIP به PDF - پیکربندی محیط جاوا

شما باید محیط توسعه را پیکربندی کنید و کد جاوا را اجرا کنید و ویژگی را در سیستم خود جاسازی کنید.

  • اطمینان حاصل کنید که کیت توسعه جاوا (JDK) روی سیستم شما نصب شده است.
  • اطمینان حاصل کنید که یک محیط توسعه یکپارچه (IDE) مانند IntelliJ IDEA، Apache NetBeans برای توسعه جاوا دارید.
  • علاوه بر این، فایل 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 در جاوا را نشان می دهد:

  • یک شی ZipInputStream را با استفاده از فایل ZIP ورودی راه اندازی کنید.
  • دایرکتوری خروجی را مشخص کنید که فایل های استخراج شده در آن ذخیره می شوند.
  • هر فایل را در فایل ZIP ورودی تکرار کنید و آن را در دایرکتوری خروجی استخراج کنید.
  • یک لیست موقت برای ذخیره نام فایل های استخراج شده از پوشه زیپ نشده نگهداری کنید.
  • لیست تمام فایل ها (از جمله مسیرهای کامل آنها) را از پوشه زیپ نشده دریافت کنید.
  • هر فایل استخراج شده را تکرار کنید و آن را به فرمت PDF تبدیل کنید.
  • فایل های PDF تبدیل شده را ادغام کنید.
  • یک نمونه از کلاس Merger با اولین سند PDF ورودی از لیست موقت ایجاد کنید.
  • از طریق فهرست اسناد PDF تبدیل شده، از فایل دوم شروع کنید.
  • برای ذخیره سند PDF ادغام شده، روش ذخیره نمونه کلاس Merger را فراخوانی کنید.

کد نمونه زیر نحوه تبدیل ZIP به PDF در جاوا را نشان می دهد:

// فرمت های فایل پشتیبانی شده: 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++) {
                // روش Join نمونه کلاس Merger را فراخوانی کنید و فایل های منبع باقی مانده را یکی یکی ارسال کنید
                merger.join(filesList.get(i));
            }

            // روش Save نمونه کلاس Merger را برای ذخیره سند PDF ادغام شده فراخوانی کنید
            merger.save("/tmp/output.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

مجوز ارزیابی رایگان

می‌توانید فایل‌های ZIP را به فرمت PDF تبدیل کنید و سایر ویژگی‌های API را با درخواست [مجوز موقت رایگان] به ظرفیت کامل خود آزمایش کنید.

بسته بندی

این مقاله تبدیل یک فایل ZIP به PDF در جاوا را خلاصه می کند. این شامل استخراج فایل ها از آرشیو ZIP، تبدیل آنها به فرمت PDF و سپس ادغام آنها در یک سند PDF است. علاوه بر این، این فرآیند می تواند بر اساس نیازهای خاص شما خودکار و سفارشی شود. در صورت وجود هرگونه ابهام، لطفاً با ما در [فروم 5 تماس بگیرید.

سوالات متداول

آیا می توانم اسناد PDF تولید شده از فایل های ZIP را سفارشی کنم؟

بله، می توانید اسناد PDF تولید شده از فایل های ZIP را سفارشی کنید. می‌توانید دستکاری‌های مختلفی مانند تنظیم فونت‌ها، رنگ‌ها، طرح‌بندی‌ها و دیگر عناصر استایل را برای بهبود نمایش بصری اسناد PDF خود اعمال کنید. همچنین می توانید هدر، پاورقی، واترمارک و حاشیه نویسی را بر اساس نیاز خود اضافه کنید.

آیا می توانم فایل های خاصی را در یک آرشیو ZIP به جای تبدیل همه فایل ها به PDF تبدیل کنم؟

بله، می‌توانید با تغییر کد جاوا، فایل‌های خاصی را در یک آرشیو ZIP به PDF تبدیل کنید. می‌توانید فایل‌های خاصی را بر اساس نام، پسوند یا معیارهای دیگر استخراج کنید و سپس فقط آن فایل‌های استخراج شده را به فرمت PDF تبدیل کنید. این امکان تبدیل انتخابی و سفارشی سازی بر اساس نیازهای شما را فراهم می کند.

آیا راهی برای محافظت از سند PDF حاصل در حین تبدیل وجود دارد؟

بله، می‌توانید از سند پی‌دی‌اف به‌دست‌آمده با رمز عبور محافظت کنید، زیرا ویژگی‌های پشتیبانی شده شامل رمزگذاری PDF، تنظیم رمزهای عبور، مجوزها و سطوح رمزگذاری برای اسناد PDF است.

همچنین ببینید