قم بتحويل PNG إلى PDF باستخدام Java

قم بتحويل PNG إلى PDF باستخدام Java

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

سنغطي الموضوعات التالية في هذه المقالة:

مكتبة جافا PDF

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

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>21.11</version>
    <type>pom</type>
</dependency>

قم بتحويل PNG إلى PDF باستخدام Java

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

يمكنك اتباع الخطوات ومقتطف الشفرة المذكور أدناه:

  1. إنشاء مثيل لفئة Document.
  2. قم بإنشاء كائن من فئة DocumentBuilder لتسهيل إضافة محتوى إلى المستند.
  3. قم بتحميل ملف صورة الإدخال عن طريق استدعاء طريقة createImageInputStream وقم بتعيينها لكائن ImageInputStream.
  4. قم باستدعاء طريقة getImageReaders التي تقوم بإرجاع مكرر يحتوي على جميع أجهزة قراءة الصور المسجلة حاليًا وتخصيصها لكائن فئة ImageReader.
  5. قم باستدعاء الأسلوب setInput الذي يحدد مصدر الإدخال لاستخدامه في ImageInputStream المحدد.
  6. احصل على عدد الإطارات في الصورة عن طريق استدعاء طريقة getNumImages.
  7. حلقة من خلال جميع الإطارات.
  8. حدد إطارًا نشطًا وقم بتعيينه إلى كائن فئة BufferedImage.
  9. قم باستدعاء طريقة getPageSetup للوصول إلى إعداد الصفحة الحالية وتخصيصها لكائن فئة PageSetup.
  10. قم بتعيين ارتفاع الصفحة عن طريق استدعاء طريقة setPageWidth.
  11. قم باستدعاء طريقة setPageHeight لتعيين عرض الصفحة.
  12. أدخل الصورة في المستند وضعها في الزاوية اليسرى العليا من الصفحة عن طريق استدعاء طريقة insertImage.
  13. احفظ الملف بتنسيق ملف PDF عن طريق استدعاء طريقة save.
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {

    // إنشاء مثيل لفئة المستند  
    Document doc = new Document();
    // قم بإنشاء كائن من فئة DocumentBuilder لتسهيل إضافة محتوى إلى المستند.  
    DocumentBuilder builder = new DocumentBuilder(doc);

    // قم بتحميل الصور من القرص باستخدام القارئ المناسب.
    // تعتمد تنسيقات الملفات التي يمكن تحميلها على قارئات الصور المتوفرة على الجهاز.
    // قم بتحميل ملف صورة الإدخال عن طريق استدعاء طريقة createImageInputStream وقم بتعيينها لكائن ImageInputStream.
    ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
    // قم باستدعاء طريقة getImageReaders التي تقوم بإرجاع Iterator الذي يحتوي على جميع أجهزة ImageReaders المسجلة حاليًا وتخصيصها لكائن فئة ImageReader.
    ImageReader reader = ImageIO.getImageReaders(iis).next();
    // قم باستدعاء طريقة setInput التي تحدد مصدر الإدخال لاستخدامه في ImageInputStream المحدد أو كائن آخر. 
    reader.setInput(iis, false);

    // احصل على عدد الإطارات في الصورة عن طريق استدعاء طريقة getNumImages  
    int framesCount = reader.getNumImages(true);

    // حلقة من خلال جميع الإطارات.
    for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
        // أدخل فاصل مقطعي قبل كل صفحة جديدة ، في حالة وجود صورة متعددة الإطارات.
        if (frameIdx != 0)
            builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);

        // حدد الإطار النشط وقم بتعيينه إلى كائن فئة BufferedImage 
        BufferedImage image = reader.read(frameIdx);

        // نريد أن يكون حجم الصفحة مطابقًا لحجم الصورة.
	      // قم بتحويل وحدات البكسل إلى نقاط لتغيير حجم الصفحة إلى حجم الصورة الفعلي.
	      // قم باستدعاء أسلوب getPageSetup للوصول إلى إعداد الصفحة الحالية وتعيينه إلى كائن فئة PageSetup   
        PageSetup ps = builder.getPageSetup();
        // قم بتعيين ارتفاع الصفحة عن طريق استدعاء أسلوب setPageWidth 
        ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
        // قم باستدعاء طريقة setPageHeight لتعيين عرض الصفحة 
        ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));

        // أدخل الصورة في المستند وضعها في الزاوية اليسرى العليا من الصفحة عن طريق استدعاء طريقة insertImage.
        builder.insertImage(
                image,
                RelativeHorizontalPosition.PAGE,
                0,
                RelativeVerticalPosition.PAGE,
                0,
                ps.getPageWidth(),
                ps.getPageHeight(),
                WrapType.NONE);
    }

    if (iis != null) {
        iis.close();
        reader.dispose();
    }
    // احفظ الملف بتنسيق ملف PDF عن طريق استدعاء طريقة الحفظ
    doc.save(outputFileName);
}

يمكنك أن ترى الإخراج في الصورة أدناه:

PNG لتحويل PDF

PNG لتحويل PDF

احصل على رخصة مجانية

يمكنك الحصول على ترخيص مؤقت مجاني لتجربة واجهة برمجة التطبيقات خارج حدود التقييم.

تلخيص لما سبق

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

طرح سؤال

يمكنك إخبارنا بأسئلتك أو استفساراتك على المنتدى.

أسئلة وأجوبة

كيف تقوم بتحويل ملف PNG إلى PDF؟

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

كيف أحفظ ملف PNG كملف PDF دون أن تفقد الجودة؟

انتقل من خلال هذا القسم لمعرفة كيفية حفظ PNG كملف PDF باستخدام مكتبة Java. يمكنك استدعاء طريقة save لحفظ ملف PNG كملف PDF.

أنظر أيضا