পিডিএফবক্স (PDFBox) Java লাইব্রেরি ব্যবহার করে পিডিএফ ডকুমেন্টে এনক্রিপশন (Encryption) এবং ডিক্রিপশন (Decryption) প্রয়োগ করা সম্ভব। এটি একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা পিডিএফ ডকুমেন্টের সিকিউরিটি নিশ্চিত করতে সাহায্য করে, যেমন পাসওয়ার্ড সুরক্ষা বা অন্যান্য শর্তাবলীর মাধ্যমে পিডিএফ অ্যাক্সেস সীমাবদ্ধ করা।
পিডিএফ এ এনক্রিপশন (Encryption)
এনক্রিপশন হল একটি প্রক্রিয়া যার মাধ্যমে পিডিএফ ডকুমেন্টে পাসওয়ার্ড বা অন্যান্য নিরাপত্তা ব্যবস্থা প্রয়োগ করা হয়, যাতে অবাঞ্ছিত ব্যবহারকারীরা ডকুমেন্টটি পড়তে বা সম্পাদনা করতে না পারে।
পিডিএফ এ এনক্রিপশন প্রয়োগ করার উদাহরণ
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;
import java.io.IOException;
public class EncryptPDF {
public static void main(String[] args) throws IOException {
// পিডিএফ ডকুমেন্ট তৈরি
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
// কন্টেন্ট স্ট্রিম তৈরি
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.beginText();
contentStream.newLineAtOffset(100, 700);
contentStream.showText("This is an encrypted PDF");
contentStream.endText();
contentStream.close();
// এনক্রিপশন প্রোপার্টি সেট করা
String userPassword = "user123";
String ownerPassword = "owner123";
document.protect(new StandardProtectionPolicy(userPassword, ownerPassword));
// পিডিএফ সেভ করা
document.save("encrypted_pdf.pdf");
document.close();
}
}
কোড ব্যাখ্যা
- StandardProtectionPolicy: এটি পিডিএফ ডকুমেন্টে এনক্রিপশন প্রোপার্টি প্রয়োগ করার জন্য ব্যবহৃত হয়। এতে ব্যবহারকারী এবং মালিকের পাসওয়ার্ড সেট করা যায়।
- protect(): এই ফাংশনটি পিডিএফ ডকুমেন্টে এনক্রিপশন প্রক্রিয়া প্রয়োগ করে।
এনক্রিপশনের মাধ্যমে পিডিএফ ডকুমেন্টে অ্যাক্সেস সীমাবদ্ধ করা হয়। পাসওয়ার্ডের মাধ্যমে ডকুমেন্টটি খুলতে হলে ব্যবহারকারীকে সঠিক পাসওয়ার্ড প্রদান করতে হবে।
পিডিএফ এ ডিক্রিপশন (Decryption)
ডিক্রিপশন হল এনক্রিপ্ট করা পিডিএফ ডকুমেন্টের পাসওয়ার্ড সরবরাহ করার মাধ্যমে ডকুমেন্টটি আবার অ্যাক্সেস করা।
পিডিএফ এ ডিক্রিপশন প্রয়োগ করার উদাহরণ
import org.apache.pdfbox.pdmodel.*;
import java.io.IOException;
public class DecryptPDF {
public static void main(String[] args) throws IOException {
// এনক্রিপ্টেড পিডিএফ ডকুমেন্ট লোড করা
PDDocument document = PDDocument.load(new File("encrypted_pdf.pdf"));
// ডিক্রিপশন প্রক্রিয়া
String userPassword = "user123"; // সঠিক পাসওয়ার্ড প্রদান করতে হবে
if (document.isEncrypted()) {
document.decrypt(userPassword); // ডিক্রিপ্ট করা
System.out.println("Document decrypted successfully.");
} else {
System.out.println("Document is not encrypted.");
}
// পিডিএফ সেভ করা
document.save("decrypted_pdf.pdf");
document.close();
}
}
কোড ব্যাখ্যা
- decrypt(): এটি ডকুমেন্টে প্রাপ্ত পাসওয়ার্ডের মাধ্যমে ডিক্রিপশন প্রক্রিয়া শুরু করে।
- isEncrypted(): এটি চেক করে যে ডকুমেন্টটি এনক্রিপ্টেড কিনা। যদি তা হয়, তাহলে ডিক্রিপশন করা হয়।
গুরুত্বপূর্ণ বিষয়
- এনক্রিপশন পদ্ধতি: পিডিএফবক্সে দুটি পাসওয়ার্ড প্রদান করা যায়—একটি ব্যবহারকারী (user) এবং অন্যটি মালিক (owner)। মালিক পাসওয়ার্ড পিডিএফের সম্পূর্ণ অ্যাক্সেস প্রদান করে, যখন ব্যবহারকারী পাসওয়ার্ড শুধুমাত্র নির্দিষ্ট সুবিধা (যেমন পড়া) প্রদান করে।
- পাসওয়ার্ড সুরক্ষা: এনক্রিপশন ব্যবহারের মাধ্যমে পিডিএফ ডকুমেন্টের সিকিউরিটি নিশ্চিত করা যায় এবং অপ্রত্যাশিত অ্যাক্সেস সীমিত করা যায়।
পিডিএফবক্সের মাধ্যমে পিডিএফ ডকুমেন্টে এনক্রিপশন এবং ডিক্রিপশন প্রয়োগ করা যেতে পারে, যা পিডিএফ ফাইলের সিকিউরিটি বাড়াতে সাহায্য করে। এটি ব্যবহারকারীদের ডকুমেন্টে সুরক্ষা প্রদান করতে এবং পাসওয়ার্ডের মাধ্যমে ডকুমেন্ট অ্যাক্সেস নিয়ন্ত্রণ করতে সক্ষম করে।
Read more