Python API এর মাধ্যমে পিডিএফ তৈরি করুন, সম্পাদনা করুন এবং চিত্রগুলিতে রূপান্তর করুন
পিডিএফ তৈরি, সম্পাদনা এবং ইমেজে রূপান্তর করার জন্য বিনামূল্যে পাইথন API এবং এর বিপরীতে। পিডিএফকে টেক্সটে মার্জ/বিভক্ত করুন এবং রূপান্তর করুন, পিডিএফগুলি ঘোরান/ট্রিম/ক্রপ করুন।
PDFsuite একটি খুব দরকারী পাইথন লাইব্রেরি যা PDF নথি তৈরি এবং পরিচালনার সাথে সম্পর্কিত সম্পূর্ণ কার্যকারিতা প্রদান করে। লাইব্রেরি খুবই স্থিতিশীল এবং সহজেই MacOS (OS X) এ চালানো যায়। PDFsuite ব্যবহার করা খুবই সহজ এবং ব্যবহারকারীদের তাদের পিডিএফ ফাইলগুলি পরিচালনা করার ক্ষমতা দেয় এবং তারা সম্ভবত একটি PDF এ যা করতে চায় তা কেবলমাত্র একটি ক্লিক দূরে।
লাইব্রেরিটি খুবই বৈশিষ্ট্য-সমৃদ্ধ এবং এতে পিডিএফ ডকুমেন্ট পরিচালনার সাথে সম্পর্কিত বেশ কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য রয়েছে, যেমন পিডিএফ ডকুমেন্ট পিডিএফ-এ রূপান্তর, পিডিএফ ডকুমেন্ট একত্রিত করা বা বিভক্ত করা, ছবিগুলিকে পিডিএফ-এ রূপান্তর করা, পিডিএফ রোটেশন, পিডিএফ-এ পৃষ্ঠা নম্বর যোগ করা, ওয়াটারমার্ক সন্নিবেশ করা। পিডিএফ, পিডিএফ-এ গ্রাফিক্স আঁকুন, পিডিএফ-এ কোয়ার্টজ ফিল্টার প্রয়োগ করুন, মেটাডেটা অ্যাক্সেস করুন এবং পড়ুন, পিডিএফ পেজ ইমেজ হিসেবে এক্সপোর্ট করুন, পিডিএফ-এ পৃষ্ঠা গণনা করুন এবং আরও অনেক কিছু। পিডিএফসুইট স্ক্রিপ্টগুলি ওপেন সোর্স যে কোনও ধরণের প্রকল্পে ব্যবহারের জন্য সম্পূর্ণ বিনামূল্যে এবং যে কোনও উপায়ে মানিয়ে নেওয়া যেতে পারে।
PDFsuite দিয়ে শুরু করা
PDFsuite চালানোর জন্য প্রথমে আপনাকে python 3 এবং pyobjc লাইব্রেরি ইনস্টল করতে হবে এবং তারপরে টার্মিনালে অনুগ্রহ করে নিম্নলিখিত কমান্ডটি টাইপ করুন এবং রিটার্ন টিপুন।
পিপের মাধ্যমে pyobjc ইনস্টল করুন
pip3 install pyobjc
লাইব্রেরিটি ম্যানুয়ালি ইনস্টল করাও সম্ভব; সরাসরি GitHub সংগ্রহস্থল থেকে সর্বশেষ রিলিজ ফাইল ডাউনলোড করুন।
পিডিএফকে ইমেজ এবং অন্যান্য ফরম্যাটে রূপান্তর করুন
PDFsuite বিভিন্ন ইমেজ ফাইল ফরম্যাটে PDF ডকুমেন্ট রূপান্তর করার জন্য সম্পূর্ণ কার্যকারিতা অন্তর্ভুক্ত করেছে। এটি PNG, JPEG, Tiff এবং অন্যান্য জনপ্রিয় ইমেজ ফাইল ফরম্যাট প্রদান করে। প্রদত্ত পিডিএফ ডকুমেন্টের প্রতিটি পৃষ্ঠা থেকে সহজে একটি বিটম্যাপ ছবি তৈরি করাও সম্ভব। প্রক্রিয়াটি সম্পূর্ণ হলে আপনাকে প্রতিটি ফাইলের জন্য একটি পৃথক নাম বরাদ্দ করতে হবে এবং এটি ডিস্কে সংরক্ষণ করতে হবে। এটি রেজোলিউশন, স্বচ্ছতা এবং অন্যান্য পরামিতি পরিবর্তন করতেও সমর্থন করে। পিডিএফ ফাইলগুলিকে পাঠ্য এবং অন্যান্য ফাইল ফর্ম্যাটে রূপান্তর করাও সম্ভব।
পাইথন স্ক্রিপ্ট ব্যবহার করে একাধিক পিডিএফ ফাইল একত্রিত করুন
আপনি কি কখনও এমন পরিস্থিতিতে পড়েছেন যেখানে একটি নতুন PDF ফাইল তৈরি করতে বিভিন্ন PDF নথি একত্রিত করতে হবে? সংস্থাগুলির প্রায়শই একাধিক পিডিএফ ফাইলকে একক নথিতে মার্জ করতে হয়। PDFsuite লাইব্রেরি তার ব্যবহারকারীদের জন্য Python কোডের মাত্র কয়েকটি লাইনের সাথে একাধিক PDF নথি একত্রিত করা সহজ করে তোলে। এটি প্রতিটি উপাদান ফাইলের জন্য বিষয়বস্তু এন্ট্রির একটি টেবিল যোগ করে। লাইব্রেরিটি পাইথন অ্যাপের মধ্যে বড় পিডিএফ ডকুমেন্টগুলিকে ছোট আকারে বিভক্ত করাকে সম্পূর্ণরূপে সমর্থন করে।
Python API এর মাধ্যমে একাধিক PDF ফাইল মার্জ করুন
def merge(filename):
writeContext = None
shortName = os.path.splitext(filename)[0]
outFilename = shortName + "+wm.pdf"
metaDict = getDocInfo(filename)
writeContext = createOutputContextWithPath(outFilename, metaDict)
readPDF = createPDFDocumentWithPath(filename)
mergePDF = createPDFDocumentWithPath(watermark)
if writeContext != None and readPDF != None:
numPages = Quartz.CGPDFDocumentGetNumberOfPages(readPDF)
for pageNum in range(1, numPages + 1):
page = Quartz.CGPDFDocumentGetPage(readPDF, pageNum)
mergepage = Quartz.CGPDFDocumentGetPage(mergePDF, 1)
if page:
mediaBox = Quartz.CGPDFPageGetBoxRect(page, Quartz.kCGPDFMediaBox)
if Quartz.CGRectIsEmpty(mediaBox):
mediaBox = None
Quartz.CGContextBeginPage(writeContext, mediaBox)
Quartz.CGContextSetBlendMode(writeContext, Quartz.kCGBlendModeOverlay)
Quartz.CGContextDrawPDFPage(writeContext, page)
Quartz.CGContextDrawPDFPage(writeContext, mergepage)
Quartz.CGContextEndPage(writeContext)
Quartz.CGPDFContextClose(writeContext)
del writeContext
else:
print ("A valid input file and output file must be supplied.")
sys.exit(1)
if __name__ == "__main__":
for filename in sys.argv[1:]:
merge(filename)
পাইথনের মাধ্যমে পিডিএফ ফাইলগুলিকে টেক্সট ফাইলে রূপান্তর করুন
ওপেন সোর্স পিডিএফসুইট লাইব্রেরিতে পিডিএফ ডকুমেন্ট রূপান্তরের জন্য অনেকগুলি সাপোর্ট ফাইল ফরম্যাটে বেশ কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য অন্তর্ভুক্ত করা হয়েছে। একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল একটি PDF ফাইলের পাঠ্য বিষয়বস্তুকে একটি বহিরাগত পাঠ্য ফাইলে রূপান্তর করা এবং এটিকে আপনার পছন্দের জায়গায় সংরক্ষণ করা। পিডিএফ ডকুমেন্টের প্রতিটি পৃষ্ঠাকে একটি আলাদা ফাইল হিসাবে সংরক্ষণ করা এবং একটি ভিন্ন নামে সংরক্ষণ করাও সম্ভব।
Python API এর মাধ্যমে PDF নথিকে টেক্সট ফাইলে রূপান্তর করুন
import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
# Can't seem to import this constant, so manually creating it.
NSUTF8StringEncoding = 4
def main():
for filename in sys.argv[1:]:
shortName = os.path.splitext(filename)[0]
outputfile = shortName+" text.txt"
pdfURL = NSURL.fileURLWithPath_(filename)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc :
pdfString = NSString.stringWithString_(pdfDoc.string())
pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)
if __name__ == "__main__":
main()
পাইথন অ্যাপে পিডিএফ বা পৃষ্ঠাগুলি ঘোরান, ট্রিম করুন, ক্রপ করুন
পিডিএফসুইট লাইব্রেরিতে পিডিএফ ফাইলগুলি সহজে পরিচালনা করার জন্য বেশ কয়েকটি গুরুত্বপূর্ণ কার্যকারিতা অন্তর্ভুক্ত করা হয়েছে। এটি প্রোগ্রামারদের তাদের নিজস্ব পাইথন অ্যাপ্লিকেশনের মধ্যে পিডিএফ ডকুমেন্টগুলি ঘোরাতে, ছাঁটাই, ক্রপ, টিন্ট, ওয়াটারমার্ক, স্কেল এবং ধুয়ে ফেলার অনুমতি দেয়। এটি একটি পিডিএফ পৃষ্ঠা বা সম্পূর্ণ ফাইল ঘোরানোর দুটি উপায় প্রদান করেছে। প্রথমটি হল একটি নতুন পিডিএফ প্রসঙ্গ তৈরি করা, মূলের প্রতিটি পৃষ্ঠাকে গ্রাফিকভাবে রূপান্তর করা এবং ফাইলটি সংরক্ষণ করা। দ্বিতীয়ত, আপনাকে শুধু প্রতিটি পৃষ্ঠায় 'ঘূর্ণন' প্যারামিটার সামঞ্জস্য করতে হবে এবং এটিই।
পাইথন API এর মাধ্যমে পিডিএফ ফাইলগুলি কীভাবে ট্রিম করবেন
import sys
import os
from Quartz import PDFDocument, kPDFDisplayBoxMediaBox, kPDFDisplayBoxTrimBox, CGRectEqualToRect
from CoreFoundation import NSURL
mediabox = kPDFDisplayBoxMediaBox
trimbox = kPDFDisplayBoxTrimBox
def trimPDF(filename):
hasBeenChanged = False
# filename = filename.decode('utf-8')
shortName = os.path.splitext(filename)[0]
outFilename = shortName + " TPS.pdf"
pdfURL = NSURL.fileURLWithPath_(filename)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc:
pages = pdfDoc.pageCount()
for p in range(0, pages):
page = pdfDoc.pageAtIndex_(p)
mediaBoxSize = page.boundsForBox_(mediabox)
trimBoxSize = page.boundsForBox_(trimbox)
if not CGRectEqualToRect(mediaBoxSize, trimBoxSize):
page.setBounds_forBox_(trimBoxSize, mediabox)
hasBeenChanged = True
if hasBeenChanged:
pdfDoc.writeToFile_(outFilename)
if __name__ == '__main__':
for filename in sys.argv[1:]:
trimPDF(filename)