Spring Boot একটি শক্তিশালী ফ্রেমওয়ার্ক যা Java-তে দ্রুত এবং সহজে অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে, এবং পিডিএফবক্স (PDFBox) Java লাইব্রেরি পিডিএফ ফাইল তৈরির জন্য একটি জনপ্রিয় টুল। Spring Boot অ্যাপ্লিকেশনে পিডিএফবক্স ইন্টিগ্রেট করা খুবই সহজ এবং আপনাকে পিডিএফ তৈরি এবং ম্যানিপুলেশন করতে সাহায্য করে।
এই টিউটোরিয়ালে আমরা দেখব কিভাবে Spring Boot অ্যাপ্লিকেশনে পিডিএফবক্স ইন্টিগ্রেট করা যায় এবং একটি সিম্পল পিডিএফ ডকুমেন্ট জেনারেট করা যায়।
১. প্রকল্প কনফিগারেশন
Spring Boot এবং PDFBox ব্যবহার করার জন্য প্রথমে আপনার pom.xml ফাইলে পিডিএফবক্স লাইব্রেরি যুক্ত করতে হবে। এটি Maven দিয়ে প্যাকেজ ম্যানেজমেন্টের মাধ্যমে করা যেতে পারে।
pom.xml ফাইল:
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.27</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
২. Spring Boot Controller তৈরি করা
এখন আমরা একটি Spring Boot Controller তৈরি করব যা HTTP রিকোয়েস্টের মাধ্যমে পিডিএফ ডকুমেন্ট জেনারেট করবে।
PDFController.java
package com.example.pdfdemo.controller;
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.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@RestController
public class PDFController {
@GetMapping("/generate-pdf")
public ResponseEntity<byte[]> generatePDF() throws IOException {
// পিডিএফ ডকুমেন্ট তৈরি
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, this is a PDF generated using PDFBox and Spring Boot!");
contentStream.endText();
// কন্টেন্ট স্ট্রিম বন্ধ করা
contentStream.close();
// পিডিএফ আউটপুটে লেখা
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
document.save(byteArrayOutputStream);
document.close();
// HTTP Response দিয়ে পিডিএফ পাঠানো
byte[] pdfBytes = byteArrayOutputStream.toByteArray();
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Disposition", "attachment; filename=generated_pdf.pdf");
return new ResponseEntity<>(pdfBytes, headers, HttpStatus.OK);
}
}
কোড ব্যাখ্যা
- PDDocument: এটি পিডিএফ ডকুমেন্ট তৈরি করে।
- PDPage: পিডিএফ পৃষ্ঠা তৈরি করে।
- PDPageContentStream: পিডিএফ পৃষ্ঠায় কন্টেন্ট (যেমন টেক্সট) যোগ করার জন্য ব্যবহৃত হয়।
- ByteArrayOutputStream: পিডিএফ ডকুমেন্টটি আউটপুট স্ট্রিম হিসেবে স্টোর করতে ব্যবহৃত হয়।
- ResponseEntity: Spring Boot-এর মাধ্যমে পিডিএফ আউটপুট হিসেবে HTTP রেসপন্স ফেরত দেয়।
৩. Spring Boot অ্যাপ্লিকেশন চালানো
Spring Boot অ্যাপ্লিকেশন চালানোর জন্য @SpringBootApplication অ্যানোটেশন সহ একটি মূল ক্লাস তৈরি করতে হবে।
PdfDemoApplication.java
package com.example.pdfdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class PdfDemoApplication {
public static void main(String[] args) {
SpringApplication.run(PdfDemoApplication.class, args);
}
}
৪. পিডিএফ জেনারেট করার জন্য HTTP রিকোয়েস্ট পাঠানো
Spring Boot অ্যাপ্লিকেশন চালু করার পর, আপনি ব্রাউজারে বা Postman ব্যবহার করে /generate-pdf এ GET রিকোয়েস্ট পাঠাতে পারেন। এটি একটি পিডিএফ ডকুমেন্ট ডাউনলোড করবে, যার মধ্যে পিডিএফবক্স ব্যবহার করে তৈরি করা টেক্সট থাকবে।
সার্ভার চালানোর পর:
- URL:
http://localhost:8080/generate-pdf - ফাইল:
generated_pdf.pdf(পিডিএফ ডাউনলোড হবে)
সারাংশ
- Spring Boot Integration: পিডিএফবক্সকে Spring Boot অ্যাপ্লিকেশনের মধ্যে ইন্টিগ্রেট করা সহজ এবং দ্রুত।
- PDF Generation: Spring Boot Controller এর মাধ্যমে পিডিএফ ডকুমেন্ট তৈরি এবং HTTP Response হিসেবে পাঠানো সম্ভব।
- ByteArrayOutputStream: পিডিএফ ফাইল আউটপুটে পাঠানোর জন্য ব্যবহার করা হয়।
এভাবে Spring Boot এবং PDFBox ব্যবহার করে পিডিএফ ডকুমেন্ট সহজে তৈরি ও ডাউনলোড করা যায়।
Read more