PDFContentStream ব্যবহার করে Lines, Rectangles, এবং Circles আঁকা

PDF এ Graphics এবং Shapes আঁকা - পিডিএফবক্স (PDFbox) - Java Technologies

314

পিডিএফবক্স (PDFBox) লাইব্রেরির PDPageContentStream ক্লাস ব্যবহার করে পিডিএফ ডকুমেন্টে বিভিন্ন ধরনের গ্রাফিক্স যেমন লাইন, আয়তক্ষেত্র, এবং বৃত্ত আঁকা সম্ভব। PDPageContentStream ক্লাসে বিভিন্ন মেথড রয়েছে যা দিয়ে আমরা পিডিএফ পৃষ্ঠায় গ্রাফিক্স উপাদান যোগ করতে পারি।

এই টিউটোরিয়ালে, আমরা PDFContentStream ব্যবহার করে কিভাবে লাইন, আয়তক্ষেত্র এবং বৃত্ত আঁকতে পারি, তা দেখবো।


Lines, Rectangles, এবং Circles আঁকার কোড উদাহরণ

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.io.IOException;

public class GraphicsExample {

    public static void main(String[] args) {
        try {
            // নতুন পিডিএফ ডকুমেন্ট তৈরি
            PDDocument document = new PDDocument();

            // নতুন পৃষ্ঠা তৈরি
            PDPage page = new PDPage();
            document.addPage(page);

            // পৃষ্ঠা কনটেন্ট স্ট্রিম তৈরি (গ্রাফিক্স আঁকার জন্য)
            PDPageContentStream contentStream = new PDPageContentStream(document, page);

            // লাইন আঁকা
            contentStream.setLineWidth(1f); // লাইন প্রশস্ততা সেট করা
            contentStream.setStrokeColor(0, 0, 0); // লাইন রঙ (কালো)
            contentStream.beginText();
            contentStream.newLineAtOffset(100, 700);  // লাইন শুরু করার স্থান
            contentStream.moveTo(100, 700);  // লাইন শুরু পয়েন্ট
            contentStream.lineTo(400, 700);  // লাইন শেষ পয়েন্ট
            contentStream.stroke();  // লাইন আঁকা
            contentStream.endText();

            // আয়তক্ষেত্র আঁকা
            contentStream.setLineWidth(2f);  // আয়তক্ষেত্রের সীমানার প্রশস্ততা
            contentStream.setStrokeColor(1, 0, 0); // রঙ (লাল)
            contentStream.setFillColor(0, 1, 0);  // পূর্ণ রঙ (সবুজ)
            contentStream.addRect(100, 600, 200, 100); // আয়তক্ষেত্রের স্থান এবং আকার
            contentStream.fillAndStroke();  // আয়তক্ষেত্র আঁকা এবং পূর্ণ করা

            // বৃত্ত আঁকা
            contentStream.setStrokeColor(0, 0, 1); // বৃত্তের রঙ (নীল)
            contentStream.setLineWidth(3f); // বৃত্তের সীমানা প্রশস্ততা
            contentStream.drawCircle(300, 500, 50); // বৃত্তের কেন্দ্র এবং ব্যাসার্ধ
            contentStream.stroke();  // বৃত্ত আঁকা

            // কনটেন্ট স্ট্রিম বন্ধ করা
            contentStream.close();

            // পিডিএফ ডকুমেন্টটি সেভ করা
            document.save("graphics_example.pdf");

            // ডকুমেন্ট বন্ধ করা
            document.close();

            System.out.println("PDF তৈরি সফলভাবে সম্পন্ন হয়েছে!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

কোড ব্যাখ্যা

  • লেখার সীমানা এবং রঙ সেট করা:
    • setLineWidth(float) মেথডের মাধ্যমে আমরা লাইন, আয়তক্ষেত্র বা বৃত্তের সীমানার প্রশস্ততা নির্ধারণ করি।
    • setStrokeColor(float r, float g, float b) মেথডের মাধ্যমে আমরা আউটলাইন বা সীমানার রঙ নির্ধারণ করি (এখানে RGB রঙ ব্যবহার করা হয়েছে)।
    • setFillColor(float r, float g, float b) মেথড দিয়ে আয়তক্ষেত্র বা বৃত্তের অভ্যন্তরের রঙ নির্ধারণ করা যায়।
  • লাইন আঁকা:
    • moveTo(float x, float y) মেথডের মাধ্যমে লাইন আঁকার শুরু পয়েন্ট নির্ধারণ করা হয়।
    • lineTo(float x, float y) মেথডের মাধ্যমে লাইন আঁকার শেষ পয়েন্ট নির্ধারণ করা হয়।
    • stroke() মেথড দিয়ে লাইন আঁকা হয়।
  • আয়তক্ষেত্র আঁকা:
    • addRect(float x, float y, float width, float height) মেথডের মাধ্যমে আয়তক্ষেত্রের স্থান এবং আকার নির্ধারণ করা হয়।
    • fillAndStroke() মেথড দিয়ে আয়তক্ষেত্রের আউটলাইন আঁকা এবং পূর্ণ করা হয়।
  • বৃত্ত আঁকা:
    • drawCircle(float x, float y, float radius) মেথডের মাধ্যমে বৃত্তের কেন্দ্র এবং ব্যাসার্ধ নির্ধারণ করা হয়।
    • stroke() মেথড দিয়ে বৃত্ত আঁকা হয়।

PDF এর আউটপুট

এই কোডটি চালানোর পর একটি graphics_example.pdf নামের ফাইল তৈরি হবে, যার মধ্যে একটি লাইন, আয়তক্ষেত্র, এবং বৃত্ত আঁকা থাকবে। PDFBox ব্যবহার করে গ্রাফিক্সের বিভিন্ন ধরনের অঙ্কন সহজে করা যায়, যা পিডিএফ ডকুমেন্টে ভিজ্যুয়াল উপাদান যোগ করার জন্য কার্যকরী।


Content added By
Promotion

Are you sure to start over?

Loading...