পিডিএফবক্স (PDFBox) লাইব্রেরি Java ব্যবহার করে পিডিএফ ফাইল তৈরি, সম্পাদনা, এবং প্রক্রিয়াকরণ করতে ব্যবহৃত হয়। যখন আপনি একটি Spring Boot প্রজেক্টে PDFBox ব্যবহার করতে চান, তখন আপনি এটি Spring Boot এর ডিপেন্ডেন্সি ম্যানেজমেন্টে সংযুক্ত করে এবং Spring Boot এর সুবিধা নিয়ে পিডিএফ ফাইল নিয়ে কাজ করতে পারবেন।
এখানে আমরা দেখব কিভাবে Spring Boot প্রজেক্টে PDFBox লাইব্রেরি ইনস্টল ও কনফিগার করে পিডিএফ ফাইল তৈরি এবং রিড করা যায়।
Spring Boot প্রজেক্টে PDFBox লাইব্রেরি যুক্ত করা
Spring Boot প্রজেক্টে PDFBox লাইব্রেরি ব্যবহার করতে প্রথমে Maven বা Gradle ডিপেন্ডেন্সি হিসেবে এটি যুক্ত করতে হবে।
Maven ডিপেন্ডেন্সি
pom.xml ফাইলে PDFBox লাইব্রেরির ডিপেন্ডেন্সি যুক্ত করতে হবে:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.27</version> <!-- সর্বশেষ ভার্সন চেক করুন -->
</dependency>
Gradle ডিপেন্ডেন্সি
build.gradle ফাইলে PDFBox ডিপেন্ডেন্সি যুক্ত করতে হবে:
dependencies {
implementation 'org.apache.pdfbox:pdfbox:2.0.27' // সর্বশেষ ভার্সন চেক করুন
}
Spring Boot এ PDFBox ব্যবহার করে PDF তৈরি করা
Spring Boot অ্যাপ্লিকেশন তৈরি করার পর, PDFBox ব্যবহার করে PDF তৈরি করা বা রিড করা সম্ভব। এখানে একটি উদাহরণ দেওয়া হল যেখানে আমরা Spring Boot এর মধ্যে PDFBox ব্যবহার করে একটি পিডিএফ ফাইল তৈরি করব।
পিডিএফ তৈরি করার উদাহরণ
package com.example.pdfdemo;
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.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.io.IOException;
@RestController
@RequestMapping("/pdf")
public class PdfController {
@GetMapping("/generate")
public String generatePdf() {
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, 12);
contentStream.newLineAtOffset(100, 700); // টেক্সটের অবস্থান
contentStream.showText("Hello, Spring Boot with PDFBox!"); // টেক্সট
contentStream.endText();
// পিডিএফ ডকুমেন্ট সংরক্ষণ
File file = new File("generated-pdf.pdf");
document.save(file);
document.close();
return "PDF created successfully at: " + file.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
return "Error while creating PDF: " + e.getMessage();
}
}
}
কোডের ব্যাখ্যা
- PDDocument: পিডিএফ ডকুমেন্ট তৈরি করতে ব্যবহৃত হয়।
- PDPage: পিডিএফ ডকুমেন্টে পেজ যোগ করতে ব্যবহৃত হয়।
- PDPageContentStream: পিডিএফ পৃষ্ঠায় কন্টেন্ট লিখতে ব্যবহৃত হয়।
- setFont(): পিডিএফে টেক্সট লেখার জন্য ফন্ট এবং সাইজ নির্ধারণ করা হয়।
- newLineAtOffset(): টেক্সটের অবস্থান নির্ধারণ করা হয়।
- showText(): পিডিএফ পৃষ্ঠায় টেক্সট প্রদর্শন করা হয়।
- document.save(): পিডিএফ ডকুমেন্ট সংরক্ষণ করা হয়।
API Endpoints
উপরের কোডে একটি Spring Boot REST API তৈরি করা হয়েছে যেটি /pdf/generate URL এ পিডিএফ তৈরি করে। আপনি এই URL এ GET রিকোয়েস্ট পাঠিয়ে একটি পিডিএফ ফাইল তৈরি করতে পারবেন।
Spring Boot প্রজেক্টে পিডিএফ রিড করা
PDFBox লাইব্রেরি ব্যবহার করে পিডিএফ ফাইলের কনটেন্ট রিড করাও সম্ভব। নিচে একটি উদাহরণ দেওয়া হল যেখানে আমরা একটি পিডিএফ ফাইল থেকে টেক্সট এক্সট্র্যাক্ট করব।
পিডিএফ রিড করার উদাহরণ
package com.example.pdfdemo;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.io.IOException;
@RestController
@RequestMapping("/pdf")
public class PdfController {
@GetMapping("/read")
public String readPdf() {
try {
// পিডিএফ ডকুমেন্ট লোড করা
PDDocument document = PDDocument.load(new File("generated-pdf.pdf"));
// পিডিএফ থেকে টেক্সট এক্সট্র্যাক্ট করা
PDFTextStripper pdfStripper = new PDFTextStripper();
String text = pdfStripper.getText(document);
// পিডিএফ ডকুমেন্ট বন্ধ করা
document.close();
return "Extracted Text: " + text;
} catch (IOException e) {
e.printStackTrace();
return "Error while reading PDF: " + e.getMessage();
}
}
}
কোডের ব্যাখ্যা
- PDDocument.load(): পিডিএফ ফাইল লোড করতে ব্যবহৃত হয়।
- PDFTextStripper: পিডিএফ ডকুমেন্ট থেকে টেক্সট এক্সট্র্যাক্ট করার জন্য ব্যবহৃত হয়।
- getText(): পিডিএফ ডকুমেন্ট থেকে টেক্সট পাওয়া যায়।
API Endpoints
এই কোডটি একটি GET API তৈরি করে যা /pdf/read URL তে পাঠানো GET রিকোয়েস্টে পিডিএফ ফাইল থেকে টেক্সট এক্সট্র্যাক্ট করবে।
Spring Boot প্রজেক্টে PDFBox ব্যবহার করে পিডিএফ ফাইল তৈরি, সম্পাদনা এবং রিড করা সহজ। এটি Spring Boot অ্যাপ্লিকেশনগুলির মধ্যে পিডিএফ ডকুমেন্টের সাথে কাজ করার জন্য একটি শক্তিশালী টুল হিসেবে কাজ করে।
Read more