পিডিএফবক্স (PDFBox) লাইব্রেরি Java ডেভেলপারদের পিডিএফ ডকুমেন্টের বিভিন্ন অংশ কাস্টমাইজ করার জন্য শক্তিশালী ফিচার প্রদান করে। আপনি পিডিএফ ডকুমেন্টে কাস্টম ফন্ট, স্টাইল, গ্রাফিক্স, এবং লেআউট কাস্টমাইজ করতে পারেন। এই টিউটোরিয়ালে, আমরা বিভিন্ন কাস্টমাইজেশন অপশনগুলির উদাহরণ সহ আলোচনা করব।
পিডিএফ ফন্ট কাস্টমাইজেশন
পিডিএফবক্সে, আপনি কাস্টম ফন্ট ব্যবহার করে পিডিএফ ডকুমেন্টের টেক্সট ফরম্যাট কাস্টমাইজ করতে পারেন। এটি PDType1Font বা PDTrueTypeFont এর মাধ্যমে করা যায়।
কাস্টম ফন্ট ব্যবহার করার উদাহরণ:
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 CustomFontExample {
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.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 16); // কাস্টম ফন্ট এবং সাইজ
contentStream.newLineAtOffset(100, 700);
contentStream.showText("Hello, this is a custom font!");
contentStream.endText();
contentStream.close();
// পিডিএফ ডকুমেন্ট সেভ করা
document.save("custom_font_example.pdf");
document.close();
System.out.println("কাস্টম ফন্ট সফলভাবে ব্যবহার করা হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা
- PDType1Font.HELVETICA_BOLD: এখানে Helvetica Bold ফন্ট ব্যবহার করা হয়েছে। আপনি এটি পরিবর্তন করে আপনার পছন্দের ফন্ট ব্যবহার করতে পারেন।
- setFont(): এই মেথডে ফন্ট এবং সাইজ সেট করা হয়।
পিডিএফ পৃষ্ঠায় গ্রাফিক্স কাস্টমাইজেশন
পিডিএফ ডকুমেন্টে গ্রাফিক্স যেমন লাইন, আয়তক্ষেত্র, বৃত্ত আঁকা এবং কাস্টম স্টাইল যুক্ত করা সম্ভব। পিডিএফবক্সের PDPageContentStream ক্লাস ব্যবহার করে এসব গ্রাফিক্স কাস্টমাইজ করা যায়।
গ্রাফিক্স কাস্টমাইজ করার উদাহরণ (আয়তক্ষেত্র, লাইন, বৃত্ত):
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import java.awt.Color;
import java.io.IOException;
public class GraphicsCustomizationExample {
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(2f);
contentStream.setStrokeColor(Color.RED); // লাল রঙ
contentStream.setFillColor(Color.GREEN); // সবুজ পূর্ণতা
contentStream.addRect(100, 500, 200, 100);
contentStream.fillAndStroke();
// লাইন আঁকা
contentStream.setLineWidth(1f);
contentStream.setStrokeColor(Color.BLACK); // কালো রঙ
contentStream.moveTo(100, 400);
contentStream.lineTo(300, 400);
contentStream.stroke();
// বৃত্ত আঁকা
contentStream.setLineWidth(3f);
contentStream.setStrokeColor(Color.BLUE); // নীল রঙ
contentStream.drawCircle(200, 200, 50); // কেন্দ্র এবং ব্যাসার্ধ
contentStream.stroke();
contentStream.close();
// পিডিএফ ডকুমেন্ট সেভ করা
document.save("graphics_customization_example.pdf");
document.close();
System.out.println("গ্রাফিক্স কাস্টমাইজেশন সফলভাবে সম্পন্ন হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা
- setLineWidth(): এটি লাইনটির প্রস্থ সেট করে।
- setStrokeColor() এবং setFillColor(): স্ট্রোক এবং ফিল রঙ সেট করার জন্য ব্যবহৃত হয়।
- addRect(): আয়তক্ষেত্র আঁকার জন্য ব্যবহৃত।
- drawCircle(): বৃত্ত আঁকার জন্য ব্যবহৃত।
পিডিএফ লেআউট কাস্টমাইজেশন
পিডিএফ ডকুমেন্টের লেআউট যেমন পৃষ্ঠা সাইজ, মার্জিন, বা পৃষ্ঠা সজ্জা কাস্টমাইজ করা যায়। পিডিএফবক্সে, আপনি PDPage ক্লাসের মাধ্যমে পৃষ্ঠা সাইজ এবং মার্জিন কাস্টমাইজ করতে পারেন।
পিডিএফ পৃষ্ঠার সাইজ এবং মার্জিন কাস্টমাইজ করার উদাহরণ:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDRectangle;
import java.io.IOException;
public class PageLayoutCustomizationExample {
public static void main(String[] args) {
try {
// নতুন পিডিএফ ডকুমেন্ট তৈরি
PDDocument document = new PDDocument();
// কাস্টম পৃষ্ঠা সাইজ (A4)
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
// পৃষ্ঠা কনটেন্ট স্ট্রিম তৈরি
PDPageContentStream contentStream = new PDPageContentStream(document, page);
// মার্জিন সেট করা
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.newLineAtOffset(50, 750); // বাম থেকে 50 পয়েন্ট, উপরে 750 পয়েন্ট
contentStream.showText("Text with custom margin");
contentStream.endText();
contentStream.close();
// পিডিএফ ডকুমেন্ট সেভ করা
document.save("page_layout_customization_example.pdf");
document.close();
System.out.println("লেআউট কাস্টমাইজেশন সফলভাবে সম্পন্ন হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা
- PDRectangle.A4: A4 সাইজের পৃষ্ঠা তৈরি করা হয়েছে।
- newLineAtOffset(): টেক্সটের অবস্থান নির্ধারণের জন্য ব্যবহৃত, যা মার্জিন কাস্টমাইজ করতে সাহায্য করে।
সারাংশ
পিডিএফবক্স (PDFBox) Java লাইব্রেরি ব্যবহার করে পিডিএফ ডকুমেন্ট কাস্টমাইজেশন সহজে করা যায়। আপনি কাস্টম ফন্ট, গ্রাফিক্স, এবং পৃষ্ঠা সাইজ কাস্টমাইজ করতে পারেন। PDType1Font এবং PDTrueTypeFont ব্যবহার করে ফন্ট কাস্টমাইজেশন, PDPageContentStream ব্যবহার করে গ্রাফিক্স কাস্টমাইজেশন, এবং PDPage এর মাধ্যমে পৃষ্ঠা সাইজ এবং মার্জিন কাস্টমাইজ করা যায়। এই কাস্টমাইজেশন পিডিএফ ডকুমেন্টকে আরও আকর্ষণীয় এবং ব্যবহারকারীর চাহিদা অনুযায়ী তৈরি করতে সাহায্য করে।