افزودن گرافیک‌های برداری به فایل‌های PDF یک نیاز رایج برای تولید گزارش‌ها، فاکتورها و اسناد تعاملی است. Conholdate.Total for Java یک SDK قدرتمند است که دستکاری PDF را در سمت سرور ساده می‌کند. در این راهنما خواهید آموخت که چگونه مستطیل‌ها، بیضی‌ها و خطوط را با استفاده از شیء Graph به یک PDF اضافه کنید، ظاهر آن‌ها را پیکربندی کنید و ملاحظات عملکردی را مدیریت کنید، همه اینها با مثال‌های واضح کد Java.

مراحل افزودن اشکال به PDF در جاوا

  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. Create Shape Objects - ابتدا یک شیء 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 در جاوا - مثال کامل کد

مثال زیر تمام مراحل را در یک برنامهٔ آماده‑به‑اجرا ترکیب می‌کند.

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) را به مکان هدف واقعی خود به‌روز کنید، بررسی کنید که تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک با تیم پشتیبانی تماس بگیرید.

نصب و راه‌اندازی در جاوا

برای شروع استفاده از Conholdate.Total for Java، آخرین نسخه را از سایت رسمی دانلود کنید و وابستگی Maven که قبلاً نشان داده شد را اضافه کنید. SDK بر روی هر زمان اجرا Java 8+ کار می‌کند و نیازی به کتابخانه‌های بومی اضافی ندارد.

ویژگی‌های کلیدی و مرور کلی

افزودن اشکال به PDF در جاوا با Conholdate.Total

Conholdate.Total for Java یک API یکپارچه برای ایجاد و ویرایش محتوای PDF فراهم می‌کند. قابلیت رسم اشکال با گرافیک‌های برداری از طریق شیء Graph و مجموعهٔ اشکال آن کار می‌کند، به‌طوری که عناصر اضافه‌شده در هر سطح زوم واضح باقی بمانند. می‌توانید primitives پایه‌ای (مستطیل، بیضی، خط) را رسم کنید و چندین مورد را داخل یک 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 متد page.getParagraphs().add(graph) را فراخوانی کنید.

چه فرمت‌های فایلی می‌توانم پس از افزودن اشکال صادر کنم؟
متد Document.save() در Conholdate.Total for Java می‌تواند به PDF و همچنین سایر فرمت‌های پشتیبانی‌شده توسط SDK بنویسد. از doc.save("Shapes.pdf") برای ذخیره نتیجه به‌عنوان یک فایل PDF استاندارد استفاده کنید.