إضافة الرسومات المتجهة إلى ملفات PDF هي متطلب شائع لإنشاء التقارير والفواتير والوثائق التفاعلية. Conholdate.Total for Java هو مجموعة تطوير برمجيات قوية تبسط معالجة PDF على جانب الخادم. في هذا الدليل ستتعلم كيفية إدراج المستطيلات والبيضاوي والخطوط في ملف PDF باستخدام كائن Graph، وتكوين مظهرها، ومعالجة اعتبارات الأداء، كل ذلك مع أمثلة شفرة Java واضحة.

خطوات إضافة أشكال إلى PDF في Java

  1. إضافة مستودع Maven والاعتماد - قم بتضمين مستودع Maven الخاص بـ Conholdate والاعتماد conholdate-total في ملف pom.xml الخاص بك. هذا يجعل فئات SDK مثل Document و Page و Graph متاحة.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. إنشاء مستند PDF وصفحة - إنشاء نسخة من Document وإضافة صفحة إلى مجموعة الصفحات الخاصة به. الفئة موثقة في مرجع API.
// Create Document instance
Document doc = new Document();
// Add page to pages collection of PDF file
com.aspose.pdf.Page page = doc.getPages().add();
  1. إنشاء كائنات الشكل - قم بإنشاء كائن Graph أولاً، ثم أنشئ المستطيلات أو القطوع أو الخطوط وأضفها إلى مجموعة الأشكال الخاصة به. اضبط الموقع والحجم والسمات البصرية من خلال GraphInfo لكل شكل.
// Create Graph instance
com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Rectangle
com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
graph.getShapes().add(rect);

// Ellipse
com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);
graph.getShapes().add(ellipse);

// Line
com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
line.getGraphInfo().setLineWidth(3);
graph.getShapes().add(line);
  1. إضافة أشكال إلى صفحة - الأشكال الفردية توجد داخل مجموعة الأشكال لكائن Graph. أضف كائن Graph نفسه إلى مجموعة الفقرات للصفحة بحيث يتم عرض جميع الأشكال التي يحتويها على تلك الصفحة.

    // Add graph object to paragraphs collection of page instance
    page.getParagraphs().add(graph);
    
  2. احفظ ملف PDF المحدث - بعد إضافة الرسم (مع جميع الأشكال) إلى الصفحة، احفظ المستند في ملف جديد.

// Save PDF file
doc.save("Shapes.pdf");

إضافة أشكال إلى PDF في Java - مثال كامل للشفرة

المثال التالي يجمع جميع الخطوات في برنامج واحد جاهز للتنفيذ.

import com.aspose.pdf.Document;
import com.aspose.pdf.Color;

public class AddShapesDemo {
    public static void main(String[] args) throws Exception {
        // Create Document instance
        Document doc = new Document();
        // Add page to pages collection of PDF file
        com.aspose.pdf.Page page = doc.getPages().add();

// Create Graph instance
        com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Create Rectangle instance
        com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
        // Add rectangle object to shapes collection of Graph object
        graph.getShapes().add(rect);

// Create ellipse
        com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
        ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
        ellipse.getGraphInfo().setLineWidth(1.5f);
        // Add ellipse object to shapes collection of Graph object
        graph.getShapes().add(ellipse);

// Create line
        com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
        line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
        line.getGraphInfo().setLineWidth(3);
        // Add line object to shapes collection of Graph object
        graph.getShapes().add(line);

// Add graph object to paragraphs collection of page instance
        page.getParagraphs().add(graph);

// Save PDF file
        doc.save("Shapes.pdf");
    }
}

ملاحظة: يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث مسار ملف الإخراج (Shapes.pdf) ليتطابق مع الموقع الفعلي المستهدف، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشاكل، يرجى الرجوع إلى التوثيق الرسمي أو التواصل مع فريق الدعم للحصول على المساعدة.

التثبيت والإعداد في Java

لبدء استخدام Conholdate.Total for Java، قم بتنزيل أحدث إصدار من الموقع الرسمي وأضف اعتماد Maven المعروض سابقًا. يعمل SDK على أي بيئة تشغيل Java 8+ ولا يتطلب مكتبات أصلية إضافية.

الميزات الرئيسية والنظرة العامة

إضافة أشكال إلى PDF في Java باستخدام Conholdate.Total

Conholdate.Total for Java يوفر واجهة برمجة تطبيقات موحدة لإنشاء وتحرير محتوى PDF. تعمل وظيفة رسم الأشكال مع الرسومات المتجهة عبر كائن Graph ومجموعة الأشكال الخاصة به، مما يضمن بقاء العناصر المضافة واضحة عند أي مستوى تكبير. يمكنك رسم الأشكال الأولية الأساسية (مستطيل، إهليلج، خط) ودمج عدة منها داخل Graph واحد قبل وضعه على الصفحة.

ميزات Conholdate.Total التي تهم هذه المهمة

  • التوافق عبر الأنظمة: يعمل على خوادم Windows و Linux و macOS.
  • العرض عالي الأداء: يتم عرض الأشكال باستخدام نفس المحرك الذي يولد محتوى PDF الأصلي، مما يجنب التحويل إلى نقطية.
  • تحكم كامل في المظهر: تعيين لون الحد وعرض الخط لكل شكل عبر كائن GraphInfo.
  • الرسومات المجمعة: إضافة أشكال متعددة إلى كائن Graph واحد بحيث يمكن وضعها وإدارتها معًا على الصفحة.

تكوين خصائص الشكل لتحقيق العرض الأمثل

عند إضافة الأشكال، ضع في اعتبارك الخصائص التالية لتحقيق النتيجة البصرية المطلوبة.

  • الموضع والحجم: تُأخذ مُنشئات الشكل الإحداثيات والأبعاد بوحدات النقاط، على سبيل المثال new Rectangle(100, 100, 170, 120) أو new Ellipse(300, 150, 150, 100).
  • موضع الرسم: يتم وضع كائن Graph نفسه باستخدام new Graph(width, height) وإضافته إلى صفحة عبر page.getParagraphs().add(graph).
  • الألوان: استخدم الفئة com.aspose.pdf.Color (على سبيل المثال Color.getGreen() أو Color.getRed()) وقم بتعيينها على الشكل عبر shape.getGraphInfo().setColor(...).
  • عرض الخط: يتم الضبط باستخدام shape.getGraphInfo().setLineWidth(...)، ويقاس بوحدات النقاط؛ القيمة 1 تعادل 1/72 بوصة.
  • الخطوط: يتم إنشاء شكل Line من مصفوفة إحداثيات، على سبيل المثال new Line(new float[]{100, 300, 400, 300})، تمثل نقاط البداية والنهاية للخط.

مثال على تعيين مظهر الشكل:

ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);

اعتبارات الأداء عند إضافة أشكال إلى ملفات PDF

إضافة العديد من الكائنات المتجهة يمكن أن تزيد من وقت المعالجة واستخدام الذاكرة. اتبع هذه الإرشادات:

  • الرسم على دفعات: قم بتجميع الأشكال المرتبطة في كائن Graph واحد قبل إضافة ذلك الرسم إلى الصفحة.
  • إعادة استخدام الكائنات: إذا كنت بحاجة إلى أشكال متطابقة على صفحات متعددة، أعد استخدام منطق تكوين الشكل بدلاً من تكراره.
  • تجنب التحجيم الزائد: حدد الأشكال بالحجم النهائي للعرض لتجنب التحويلات النقطية المكلفة.
  • تحرير الموارد: احفظ وأفرغ كائن Document فورًا بمجرد إضافة جميع الأشكال.

الخلاصة

Conholdate.Total for Java يوفّر لمطوري جافا طريقة مباشرة لإضافة أشكال إلى مستندات PDF، مما يتيح إنشاء تقارير وفواتير غنية وتفاعلية. باتباع الخطوات ونصائح التكوين وإرشادات الأداء الواردة في هذا الدليل، يمكنك دمج الرسومات المتجهة في سير عمل PDF الخاص بك بثقة. تذكّر ضرورة الحصول على ترخيص مناسب للاستخدام في الإنتاج؛ يتوفر ترخيص مؤقت للتقييم، وتفاصيل التسعير الكاملة مدرجة في صفحة التسعير.

الأسئلة المتكررة

هل أحتاج إلى إنشاء كائن Graph لكل شكل؟
لا. يمكن لكائن Graph واحد أن يحتوي على أشكال متعددة — يمكن إضافة المستطيلات والبيضاويين والخطوط جميعًا إلى مجموعة الأشكال الخاصة بنفس الرسم البياني قبل إضافة الرسم البياني إلى الصفحة.

هل من الممكن إضافة أشكال إلى صفحة محددة من ملف PDF متعدد الصفحات؟
نعم. استرجع الصفحة المستهدفة من doc.getPages() واستدعِ page.getParagraphs().add(graph) على تلك الـ Page المحددة.

ما هي صيغ الملفات التي يمكنني التصدير إليها بعد إضافة الأشكال؟
طريقة Document.save() الخاصة بـ Conholdate.Total for Java يمكنها كتابة إلى PDF بالإضافة إلى صيغ أخرى يدعمها SDK. استخدم doc.save("Shapes.pdf") لحفظ النتيجة كملف PDF قياسي.