পিডিএফবক্স (PDFBox) একটি শক্তিশালী লাইব্রেরি যা পিডিএফ ডকুমেন্ট তৈরি, রিড, এবং ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। এটি Java প্রোগ্রামিং ভাষার জন্য তৈরি, তবে কখনও কখনও আপনি PDFBox কে অন্যান্য কাস্টম লাইব্রেরির সাথে ইন্টিগ্রেট করতে চাইবেন, যেমন ডাটাবেস থেকে তথ্য এক্সট্র্যাক্ট করা বা কাস্টম রিপোর্ট তৈরি করা। এই টিউটোরিয়ালে আমরা দেখব কীভাবে PDFBox কে কাস্টম লাইব্রেরির সাথে ইন্টিগ্রেট করা যায়।
কাস্টম লাইব্রেরি ইন্টিগ্রেশনের প্রয়োজনীয়তা
কাস্টম লাইব্রেরি ইন্টিগ্রেশন করতে হয় যখন আপনি PDF ফাইল তৈরি বা ম্যানিপুলেশনের জন্য অন্য লাইব্রেরি বা ফাংশনালিটি ব্যবহার করতে চান। উদাহরণস্বরূপ:
- ডাটাবেস ইন্টিগ্রেশন: পিডিএফ ফাইল তৈরি করার সময় ডাটাবেস থেকে ডেটা এক্সট্র্যাক্ট করা।
- কাস্টম ফন্ট বা ইমেজ: আপনার নিজস্ব ফন্ট বা গ্রাফিক্স ব্যবহার করা।
- ইমেল পাঠানো: পিডিএফ ফাইল তৈরি হওয়ার পর তা ইমেল এর মাধ্যমে পাঠানো।
কাস্টম লাইব্রেরি ইন্টিগ্রেট করার পদ্ধতি
এখানে একটি উদাহরণ দেওয়া হলো যেখানে PDFBox কে একটি কাস্টম লাইব্রেরির সাথে ইন্টিগ্রেট করা হয়েছে, যেটি ডাটাবেস থেকে তথ্য নিয়ে পিডিএফ ডকুমেন্ট তৈরি করবে।
উদাহরণ: PDFBox এবং JDBC (ডাটাবেস) ইন্টিগ্রেশন
ধরা যাক, আমাদের একটি ডাটাবেস থেকে ব্যবহারকারীদের তথ্য নেওয়ার প্রয়োজন এবং সেই তথ্যকে একটি পিডিএফ ডকুমেন্টে সংরক্ষণ করতে হবে। এখানে আমরা PDFBox এবং JDBC লাইব্রেরি একত্রে ব্যবহার করব।
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;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class PDFWithDatabase {
public static void main(String[] args) {
try {
// ডাটাবেস সংযোগ তৈরি করা
String url = "jdbc:mysql://localhost:3306/your_database";
String user = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, user, password);
// SQL কুয়েরি রান করা
String query = "SELECT * FROM users";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
// নতুন পিডিএফ ডকুমেন্ট তৈরি
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.newLineAtOffset(100, 750);
// ডাটাবেসের তথ্য পিডিএফে লেখানো
while (resultSet.next()) {
String userName = resultSet.getString("name");
String userEmail = resultSet.getString("email");
contentStream.showText("Name: " + userName);
contentStream.newLineAtOffset(0, -20);
contentStream.showText("Email: " + userEmail);
contentStream.newLineAtOffset(0, -20);
}
contentStream.endText();
contentStream.close();
// পিডিএফ ডকুমেন্ট সেভ করা
document.save("user_report.pdf");
document.close();
// ডাটাবেস সংযোগ বন্ধ করা
resultSet.close();
statement.close();
connection.close();
System.out.println("PDF তৈরি এবং ডাটাবেস থেকে তথ্য এক্সট্র্যাক্ট করা হয়েছে!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা:
- JDBC ব্যবহার: ডাটাবেস থেকে তথ্য এক্সট্র্যাক্ট করার জন্য JDBC (Java Database Connectivity) ব্যবহার করা হয়েছে।
DriverManager.getConnection()মেথডের মাধ্যমে ডাটাবেসে সংযোগ স্থাপন করা হয়েছে। - SQL কুয়েরি:
SELECT * FROM usersকুয়েরি ব্যবহার করেusersটেবিল থেকে ডেটা এক্সট্র্যাক্ট করা হয়েছে। - PDFBox ব্যবহার: পিডিএফ ফাইল তৈরি এবং ডাটাবেস থেকে পাওয়া তথ্য পিডিএফে লেখা হয়েছে।
PDDocument,PDPage,PDPageContentStreamব্যবহার করে পিডিএফ তৈরি করা হয়েছে এবং ডাটাবেস থেকে পাওয়া নাম ও ইমেইল পিডিএফে প্রদর্শন করা হয়েছে।
কাস্টম লাইব্রেরি ইন্টিগ্রেশন এর আরও কিছু উদাহরণ
- ফাইল সিস্টেম ইন্টিগ্রেশন: পিডিএফ তৈরি করার পর, আপনি কাস্টম লাইব্রেরি ব্যবহার করে সেই পিডিএফ ফাইলটি একটি নির্দিষ্ট ডিরেক্টরিতে সংরক্ষণ করতে পারেন।
- ইমেল ইন্টিগ্রেশন: তৈরি করা পিডিএফ ফাইলটি ইমেল এর মাধ্যমে পাঠানোর জন্য JavaMail API ব্যবহার করতে পারেন।
- গ্রাফিক্স বা চার্ট ইন্টিগ্রেশন: কোনো কাস্টম লাইব্রেরি যেমন JFreeChart ব্যবহার করে ডেটা চার্ট তৈরি করতে পারেন এবং সেটি পিডিএফ ডকুমেন্টে অন্তর্ভুক্ত করতে পারেন।
সারাংশ
PDFBox কে কাস্টম লাইব্রেরির সাথে ইন্টিগ্রেট করা Java অ্যাপ্লিকেশনে পিডিএফ ডকুমেন্ট তৈরি ও ম্যানিপুলেশনের শক্তিশালী কার্যক্ষমতা প্রদান করে। এটি ডাটাবেস, ফাইল সিস্টেম, ইমেল, গ্রাফিক্স ইত্যাদি সঙ্গে ইন্টিগ্রেশন করার জন্য খুবই কার্যকর। এই ধরনের ইন্টিগ্রেশন আপনি আপনার বিশেষ প্রয়োজনে কাস্টম ফিচার যুক্ত করার জন্য ব্যবহার করতে পারেন।