পিডিএফ ফাইল রূপান্তর করার জন্য ওপেন সোর্স পাইথন লাইব্রেরি
ফ্রি পাইথন এপিআই ডেভেলপারদের পিডিএফ ফাইলগুলি রপ্তানি, ঘোরাতে, একত্রিত করতে এবং পিডিএফগুলি থেকে ডেটা এবং উপাদানগুলি বের করার অনুমতি দেয়৷
pdfrw হল একটি ওপেন সোর্স বিশুদ্ধ পাইথন লাইব্রেরি যা সফ্টওয়্যার ডেভেলপারদের কোনো বাহ্যিক বিশেষ সফ্টওয়্যার ইনস্টল না করেই PDF ফাইল পড়তে এবং লিখতে দেয়। pdfrw প্রোগ্রামিং লাইব্রেরি খুবই সহজব্যবহার করা এবং সোর্স কোডটি ভালোভাবে নথিভুক্ত, খুব সহজ এবং বোঝা সহজ। লাইব্রেরিতে পিডিএফ-এ টেক্সট স্ট্রিংগুলির জন্য যথাযথ ইউনিকোড সমর্থনের পাশাপাশি দ্রুততম বিশুদ্ধ পাইথন পিডিএফ পার্সার অন্তর্ভুক্ত করা হয়েছে।
পিডিএফআরডব্লিউ লাইব্রেরিতে পিডিএফ মার্জ করা, মেটাডেটা পরিবর্তন করা, একাধিক পিডিএফ একসাথে সংযুক্ত করা, ইমেজ বের করা, পিডিএফ প্রিন্ট করা, পিডিএফ পেজ রোটেটিং, একটি নতুন পিডিএফ তৈরি করা, একটি ওয়াটারমার্ক পিডিএফ ইমেজ যোগ করা এবং আরও অনেক কিছুর মতো গুরুত্বপূর্ণ পিডিএফ অপারেশনের জন্য সমর্থন রয়েছে।
.
pdfrw দিয়ে শুরু করা
pdfrw-এর জন্য Python 2.6, 2.7, 3.3, 3.4, 3.5 এবং 3.6 প্রয়োজন। আপনি পিপ ব্যবহার করে pdfrw ইনস্টল করতে পারেন। এটি ইনস্টল করতে নিম্নলিখিত কমান্ড ব্যবহার করুন.
পিপ এর মাধ্যমে pdfrw ইনস্টল করুন
python -m pip install pdfrw
পাইথন লাইব্রেরির মাধ্যমে পিডিএফ ডকুমেন্ট তৈরি করুন
pdfrw লাইব্রেরি সফ্টওয়্যার বিকাশকারীদের তাদের নিজস্ব পাইথন অ্যাপ্লিকেশনগুলির মধ্যে মাত্র কয়েকটি লাইনের কোড সহ পিডিএফ ডকুমেন্ট তৈরি করার ক্ষমতা প্রদান করে। লাইব্রেরিটি বিদ্যমান পিডিএফ ফাইলগুলি অ্যাক্সেস এবং সংশোধন করার জন্য সহায়তা প্রদান করে। আপনি সহজেই বিদ্যমান পিডিএফ-এ নতুন পৃষ্ঠাগুলির পাশাপাশি গ্রাফিক্স উপাদান বা পাঠ্য উপাদান সন্নিবেশ করতে পারেন। পিডিএফআরডব্লিউ লাইব্রেরি আপনি যে পিডিএফ ফাইলগুলিতে পড়েন সেই পৃষ্ঠাগুলি খুঁজে পেতে এবং একটি নতুন পিডিএফ ফাইলে পৃষ্ঠাগুলির একটি সেট লিখতে সহায়তা প্রদান করে।
পাইথনের মাধ্যমে পিডিএফ ডকুমেন্ট তৈরি ও পরিবর্তন করুন
// PDF Documents Creation
import sys
import os
from pdfrw import PdfReader, PdfWriter
inpfn, = sys.argv[1:]
outfn = 'alter.' + os.path.basename(inpfn)
trailer = PdfReader(inpfn)
trailer.Info.Title = 'My New Title Goes Here'
PdfWriter(outfn, trailer=trailer).write()
পাইথনের মাধ্যমে পিডিএফ ফাইল পড়া
pdfrw লাইব্রেরি সফ্টওয়্যার বিকাশকারীদের পাইথন অ্যাপ্লিকেশনগুলির ভিতরে PDF নথির বিভিন্ন অংশ সহজেই অ্যাক্সেস করতে এবং পড়তে দেয়। এটি সম্পূর্ণ PDF নথিতে সহজে অ্যাক্সেস দেয়। লাইব্রেরি ফাইল তথ্য, আকার, এবং আরো পুনরুদ্ধার সমর্থন করে। এটি পেজ নামে একটি বিশেষ বৈশিষ্ট্য তৈরি করে, যা ব্যবহারকারীদের একটি PDF নথির সমস্ত পৃষ্ঠা তালিকাভুক্ত করতে দেয়। এটি আপনাকে একটি নথি তথ্য বস্তু বের করতে দেয় যা আপনি লেখক, শিরোনাম ইত্যাদির মতো তথ্য বের করতে ব্যবহার করতে পারেন।
পাইথনের মাধ্যমে পিডিএফ ফাইল অ্যাক্সেস এবং পড়ুন
// Reading PDF Files
from pdfrw import pdfreader
def get_pdf_info(path):
pdf = pdfreader(path)
print(pdf.keys())
print(pdf.info)
print(pdf.root.keys())
print('pdf has {} pages'.format(len(pdf.pages)))
if __name__ == '__main__':
get_pdf_info('w9.pdf')
মেটাডেটা যোগ করা বা পরিবর্তন করা
pdfrw সফ্টওয়্যার বিকাশকারীদের তাদের নিজস্ব পাইথন অ্যাপ্লিকেশনের মধ্যে পিডিএফ ফাইলের মেটাডেটা যোগ বা পরিবর্তন করতে দেয়। আপনি একটি পিডিএফ-এ একটি একক মেটাডেটা আইটেম পরিবর্তন করতে পারেন, ফলাফলটি একটি নতুন পিডিএফ-এ লিখতে পারেন পাশাপাশি একাধিক ফাইল অন্তর্ভুক্ত করতে পারেন এবং আউটপুট পিডিএফ ফাইলে কিছু অযৌক্তিক মেটাডেটা যোগ করার পরে সেগুলিকে সংযুক্ত করতে পারেন।
Python এর মাধ্যমে PDF মেটাডেটা পরিবর্তন করুন
// Modifying PDF Metadata
import sys
import os
from pdfrw import PdfReader, PdfWriter
inpfn, = sys.argv[1:]
outfn = 'alter.' + os.path.basename(inpfn)
trailer = PdfReader(inpfn)
trailer.Info.Title = 'My New Title Goes Here'
PdfWriter(outfn, trailer=trailer).write()
পিডিএফ ডকুমেন্ট বিভক্ত করা
pdfrw সফ্টওয়্যার ডেভেলপারদের তাদের অ্যাপ্লিকেশনের ভিতরে পিডিএফ ডকুমেন্ট নথিগুলিকে প্রোগ্রাম্যাটিকভাবে বিভক্ত করতে দেয়। একজন ব্যবহারকারীর পিডিএফ বইয়ের একটি নির্দিষ্ট অংশ বের করার প্রয়োজন হতে পারে বা একটি ফাইলে সংরক্ষণ করার পরিবর্তে এটিকে একাধিক পিডিএফ-এ ভাগ করতে হবে। পিডিএফআরডব্লিউ লাইব্রেরির সাথে এটি খুব সহজ, আপনাকে কেবল একটি ইনপুট পিডিএফ ফাইল পাথ, আপনি যে পৃষ্ঠাগুলি বের করতে চান তার সংখ্যা এবং আউটপুট পাথ প্রদান করতে হবে।
Python এর মাধ্যমে পিডিএফ ফাইলকে একাধিক পিডিএফ-এ বিভক্ত করুন
// Splitting PDF file into multiple pdfs
from pdfrw import pdfreader, pdfwriter
def split(path, number_of_pages, output):
pdf_obj = pdfreader(path)
total_pages = len(pdf_obj.pages)
writer = pdfwriter()
for page in range(number_of_pages):
if page <= total_pages:
writer.addpage(pdf_obj.pages[page])
writer.write(output)
if __name__ == '__main__':
split('reportlab-sample.pdf', 10, 'subset.pdf')