পিডিএফবক্স (PDFBox) ব্যবহার করে পিডিএফ ডকুমেন্টে কন্টেন্ট লেখার সময় Color এবং Stroke সেট করা সম্ভব। এতে টেক্সট, শেপ, এবং লাইনগুলির রঙ এবং স্টাইল কাস্টমাইজ করা যায়। এই টিউটোরিয়ালে আমরা দেখব কীভাবে পিডিএফে রঙ (Color) এবং স্ট্রোক (Stroke) সেট করা যায়।
Color সেট করা
পিডিএফবক্সে টেক্সট বা শেপের রঙ সেট করার জন্য setNonStrokingColor() এবং setStrokingColor() মেথড ব্যবহার করা হয়। প্রথমটি ফিল (fill) রঙের জন্য এবং দ্বিতীয়টি স্ট্রোক (border/outline) রঙের জন্য ব্যবহৃত হয়।
Stroke সেট করা
স্ট্রোক হচ্ছে কোনো শেপ বা লাইনটির আউটলাইন। স্ট্রোকের প্রস্থ এবং স্টাইল পরিবর্তন করা সম্ভব। এটি setLineWidth() এবং setLineDashPattern() মেথড ব্যবহার করে কাস্টমাইজ করা যায়।
উদাহরণ: Color এবং Stroke সেট করা
নিচে একটি উদাহরণ দেওয়া হল, যেখানে একটি পিডিএফ ডকুমেন্টে লাল রঙের স্ট্রোক সহ নীল রঙের একটি বক্স আঁকা হয়েছে এবং ভিতরে একটি টেক্সট লেখা হয়েছে।
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 org.apache.pdfbox.pdmodel.PDRectangle;
import java.io.IOException;
import java.awt.Color;
public class AddColorAndStrokeToPDF {
public static void main(String[] args) {
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
try {
PDPageContentStream contentStream = new PDPageContentStream(document, page);
// Color এবং Stroke সেট করা
// Fill color: Blue
contentStream.setNonStrokingColor(Color.BLUE);
// Stroke color: Red
contentStream.setStrokingColor(Color.RED);
// Set line width
contentStream.setLineWidth(2);
// Drawing a rectangle with stroke and fill colors
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.newLineAtOffset(100, 700);
contentStream.showText("Text inside a colored box!");
contentStream.endText();
// Draw a rectangle
contentStream.setLineWidth(2); // Set the line width for stroke
contentStream.moveTo(100, 650); // Starting point of the rectangle
contentStream.lineTo(300, 650); // Right point of the rectangle
contentStream.lineTo(300, 750); // Top point of the rectangle
contentStream.lineTo(100, 750); // Left point of the rectangle
contentStream.closePath();
// Apply color and draw the rectangle
contentStream.fill(); // Fill the rectangle with blue color
contentStream.stroke(); // Draw the rectangle border with red color
contentStream.close();
document.save("colored_and_stroked_example.pdf");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
কোডের ব্যাখ্যা
- setNonStrokingColor(Color.BLUE): এটি ফিল রঙ হিসেবে নীল (Blue) সেট করে।
- setStrokingColor(Color.RED): এটি স্ট্রোক (অথবা আউটলাইন) রঙ হিসেবে লাল (Red) সেট করে।
- setLineWidth(2): এটি লাইনটির প্রস্থ 2 পয়েন্টে সেট করে।
- fill(): এটি রঙ দ্বারা পূর্ণ করা (ফিলিং) অংশের জন্য ব্যবহৃত হয়।
- stroke(): এটি আউটলাইন (স্ট্রোক) অংশের জন্য ব্যবহৃত হয়।
Stroke কাস্টমাইজেশন
যদি আপনি স্ট্রোকের স্টাইল পরিবর্তন করতে চান, যেমন ড্যাশলাইন বা প্যাটার্ন, তবে setLineDashPattern() মেথড ব্যবহার করতে পারেন:
float[] dashPattern = { 10, 5 }; // 10 পয়েন্ট লাইন এবং 5 পয়েন্ট স্পেস
contentStream.setLineDashPattern(dashPattern, 0); // ড্যাশ প্যাটার্ন সেট করা
এটি লাইনটি ড্যাশড (ধারাবাহিক দাগ) স্টাইলের মতো তৈরি করবে।
এভাবে, পিডিএফবক্স ব্যবহার করে সহজেই পিডিএফ ডকুমেন্টে রঙ এবং স্ট্রোক সেট করা যায়। এটি আপনার পিডিএফ ফাইলকে আরও আকর্ষণীয় এবং কাস্টমাইজযোগ্য করে তোলে।
Read more