আমি খাঁটি গণিতে সাম্প্রতিক স্নাতক যারা কেবলমাত্র কয়েকটি প্রাথমিক প্রোগ্রামিং কোর্স নিয়েছি। আমি ইন্টার্নশিপ করছি এবং আমার একটি অভ্যন্তরীণ তথ্য বিশ্লেষণ প্রকল্প রয়েছে। আমাকে গত বছরের অভ্যন্তরীণ পিডিএফগুলি বিশ্লেষণ করতে হবে। পিডিএফগুলি "সুরক্ষিত"। অন্য কথায়, তারা এনক্রিপ্ট করা হয়। আমাদের কাছে পিডিএফ পাসওয়ার্ড নেই, আরও বেশি, আমরা নিশ্চিত নই যে পাসওয়ার্ড রয়েছে কি না not তবে, আমাদের কাছে এই সমস্ত নথি রয়েছে এবং আমরা সেগুলি ম্যানুয়ালি পড়তে পারি। আমরা সেগুলিও মুদ্রণ করতে পারি। পাইথনের সাথে সেগুলি পড়ার লক্ষ্য হ'ল কারণ আমাদের কাছে কিছুটা ধারণা থাকার ভাষা is
প্রথমত, আমি কয়েকটি পাইথন লাইব্রেরি সহ পিডিএফগুলি পড়ার চেষ্টা করেছি। যাইহোক, পাইথন লাইব্রেরিগুলি আমি খুঁজে পেয়েছি যা এনক্রিপ্ট করা পিডিএফগুলি পড়ে না। তখন আমি অ্যাডোব রিডারটি ব্যবহার করে তথ্য রফতানি করতে পারিনি।
দ্বিতীয়ত, আমি পিডিএফগুলি ডিক্রিপ্ট করার সিদ্ধান্ত নিয়েছি। পাইথন গ্রন্থাগার পাইকপিডিএফ ব্যবহার করে আমি সফল হয়েছিলাম। পাইকপিডিএফ খুব ভাল কাজ করে! যাইহোক, ডিক্রিপ্ট PDF গুলি ভাল পূর্ববর্তী পয়েন্ট (এর পাইথন লাইব্রেরী হিসেবে পড়া যাবে না PyPDF2 এবং বোর্ড )। এই মুহুর্তে, আমরা কিছু উন্নতি করেছি কারণ অ্যাডোব রিডার ব্যবহার করে আমি ডিক্রিপ্ট হওয়া পিডিএফগুলি থেকে তথ্যটি রফতানি করতে পারি, তবে লক্ষ্যটি পাইথন দিয়ে সবকিছু করা to
আমি যে কোডটি প্রদর্শন করছি তা এনক্রিপ্ট করা পিডিএফগুলির সাথে পুরোপুরি কাজ করে তবে এনক্রিপ্ট হওয়া পিডিএফগুলির সাথে নয়। এটি পাইকারপডিএফের পাশাপাশি ডিক্রিপ্ট করা পিডিএফগুলির সাথে কাজ করছে না।
আমি কোড লিখিনি। আমি পাইথন লাইব্রেরি ডকুমেন্টেশন থেকে তা পাওয়া Pykepdf এবং বোর্ড । পাইপডিএফ 2 সমাধানটি আল সুইগার্ট তাঁর "" বোথিং বোরিং স্টাথ উইথ পাইথন "বইয়ে লিখেছিলেন , যা আমি অত্যন্ত সুপারিশ করি। আমি এটিও যাচাই করেছিলাম যে কোডটি আগে সীমাবদ্ধতার সাথে সীমাবদ্ধ করে ঠিকঠাক কাজ করছে।
প্রথম প্রশ্ন, আমি কেন ডিক্রিপ্ট ফাইলগুলি পড়তে পারি না, যদি প্রোগ্রামগুলি এমন ফাইলগুলির সাথে কাজ করে যা কখনও এনক্রিপ্ট করা হয়নি?
দ্বিতীয় প্রশ্ন, আমরা পাইথন দিয়ে কোনওভাবে ডিক্রিপ্ট করা ফাইলগুলি পড়তে পারি? কোন গ্রন্থাগার এটি করতে পারে বা অসম্ভব? সমস্ত ডিক্রিপ্ট করা পিডিএফগুলি কি নিষ্কাশনযোগ্য?
আপনার সময় এবং সাহায্যের জন্য আপনাকে ধন্যবাদ!!!
পাইথন ৩.7, উইন্ডোজ 10, বৃহস্পতি নোটবুকস এবং অ্যানাকোন্ডা 2019.07 ব্যবহার করে আমি এই ফলাফলগুলি পেয়েছি।
Python
import pikepdf
with pikepdf.open("encrypted.pdf") as pdf:
num_pages = len(pdf.pages)
del pdf.pages[-1]
pdf.save("decrypted.pdf")
import tabula
tabula.read_pdf("decrypted.pdf", stream=True)
import PyPDF2
pdfFileObj=open("decrypted.pdf", "rb")
pdfReader=PyPDF2.PdfFileReader(pdfFileObj)
pdfReader.numPages
pageObj=pdfReader.getPage(0)
pageObj.extractText()
তাবুলার সাথে, আমি "আউটপুট ফাইলটি খালি আছে" বার্তাটি পাচ্ছি।
পাইপিডিএফ 2 দিয়ে, আমি কেবল '/ এন' পাচ্ছি
আপডেট 10/3/2019 Pdfminer.six (সংস্করণ নভেম্বর 2018)
ডাকপঞ্চে পোস্ট করা সমাধানটি ব্যবহার করে আমি আরও ভাল ফলাফল পেয়েছি । ডিক্রিপ্ট করা ফাইলের জন্য, আমি লেবেলগুলি পেয়েছি, তবে ডেটা নয়। এনক্রিপ্ট করা ফাইলের সাথে একই ঘটনা ঘটে। যে ফাইলটি কখনও এনক্রিপ্ট করা হয়নি তার জন্য নিখুঁত কাজ করে। আমার যেমন এনক্রিপ্ট করা বা ডিক্রিপ্ট করা ফাইলগুলির ডেটা এবং লেবেলগুলির প্রয়োজন, এই কোডটি আমার পক্ষে কাজ করে না। সেই বিশ্লেষণের জন্য, আমি pdfminer.six ব্যবহার করেছি পাইথন লাইব্রেরি যা নভেম্বর 2018 এ প্রকাশিত হয়েছিল P তাদের ডকুমেন্টেশন অনুসারে " পাইক্রিপডোডোম হ'ল নিম্ন-স্তরের ক্রিপ্টোগ্রাফিক আদিমগুলির একটি স্ব-অন্তর্ভুক্ত পাইথন প্যাকেজ .."
কোডটি স্ট্যাক এক্সচেঞ্জের প্রশ্নে রয়েছে: পাইথনে পিডিএফমাইনার ব্যবহার করে একটি পিডিএফ ফাইল থেকে পাঠ্য আহরণ করা?
আপনি যদি আমার পরীক্ষার পুনরাবৃত্তি করতে চান তবে আমি পছন্দ করব। বর্ণনাটি এখানে:
1) এই প্রশ্নে উল্লিখিত কোডগুলি এমন কোনও পিডিএফ দিয়ে চালান যা কখনও এনক্রিপ্ট করা হয়নি।
2) পিডিএফ "সিকিউর" দিয়ে এটি করুন (এটি একটি শব্দ যা অ্যাডোব ব্যবহার করে), আমি এটিকে এনক্রিপ্ট করা পিডিএফ বলছি। একটি জেনেরিক ফর্ম ব্যবহার করুন যা আপনি গুগল ব্যবহার করে খুঁজে পেতে পারেন। আপনি এটি ডাউনলোড করার পরে, আপনাকে ক্ষেত্রগুলি পূরণ করতে হবে। অন্যথায়, আপনি লেবেলগুলি পরীক্ষা করছেন, তবে ক্ষেত্রগুলি নয়। তথ্য ক্ষেত্রগুলি হয়।
3) পাইকেপিডিএফ ব্যবহার করে এনক্রিপ্ট করা পিডিএফটি ডিক্রিপ্ট করুন। এটি ডিক্রিপ্ট করা পিডিএফ হবে।
4) ডিক্রিপ্ট করা পিডিএফ ব্যবহার করে কোডগুলি আবার চালান।
আপডেট 10/4/2019 ক্যামেলট (সংস্করণ জুলাই 2019)
পাইথন লাইব্রেরি ক্যামেললট পেয়েছি। সতর্কতা অবলম্বন করুন যে আপনার ক্যামোলেট-পাই 0.7.3 দরকার।
এটি খুব শক্তিশালী এবং পাইথন ৩.7 এর সাথে কাজ করে। এছাড়াও, এটি ব্যবহার করা খুব সহজ। প্রথমত, আপনাকে ঘোস্টস্ক্রিপ্ট ইনস্টল করতে হবে । অন্যথায়, এটি কাজ করবে না। আপনার পান্ডা ইনস্টল করতে হবে । পাইপ ইনস্টল ক্যামোলেট-পাই ব্যবহার করবেন না । পরিবর্তে পাইপ ইনস্টল ক্যামোলেট-পাই [সিভি] ব্যবহার করুন
অনুষ্ঠানের লেখক হলেন বিনায়ক মেহতা। ফ্র্যাঙ্ক ডু একটি ইউটিউব ভিডিওতে এই কোডটি ভাগ করে নিয়েছে "পিথন ব্যবহার করে ক্যামেরলটের সাথে পিডিএফ থেকে ট্যাবুলার ডেটা বের করুন।"
আমি কোডটি যাচাই করেছি এবং এটি এনক্রিপ্ট করা ফাইলগুলির সাথে কাজ করছে। তবে এটি এনক্রিপ্ট করা এবং ডিক্রিপ্ট করা ফাইলগুলির সাথে কাজ করে না এবং এটি আমার লক্ষ্য ।
ক্যামলল্ট পিডিএফ থেকে টেবিলগুলি পেতে আগ্রহী।
কোডটি এখানে:
Python
import camelot
import pandas
name_table = camelot.read_pdf("uncrypted.pdf")
type(name_table)
#This is a Pandas dataframe
name_table[0]
first_table = name_table[0]
#Translate camelot table object to a pandas dataframe
first_table.df
first_table.to_excel("unencrypted.xlsx")
#This creates an excel file.
#Same can be done with csv, json, html, or sqlite.
#To get all the tables of the pdf you need to use this code.
for table in name_table:
print(table.df)
আপডেট 10/7/2019 আমি একটি কৌশল খুঁজে পেয়েছি। যদি আমি অ্যাডোব রিডার দিয়ে সুরক্ষিত পিডিএফটি খুলি এবং মাইক্রোসফ্টটি পিডিএফ ব্যবহার করে মুদ্রণ করি এবং আমি এটি পিডিএফ হিসাবে সংরক্ষণ করি তবে আমি সেই অনুলিপিটি ব্যবহার করে ডেটা বের করতে পারি। আমি পিডিএফ ফাইলটি JSON, এক্সেল, এসকিউএলাইট, সিএসভি, এইচটিএমএল এবং অন্য ফর্ম্যাটে রূপান্তর করতে পারি। এটি আমার প্রশ্নের সম্ভাব্য সমাধান। যাইহোক, আমি এখনও সেই কৌশলটি ছাড়াই এটি করার বিকল্প খুঁজছি কারণ পাইথনের সাথে এটি করা 100% লক্ষ্য। আমি আরও উদ্বিগ্ন যে এনক্রিপশনের আরও ভাল পদ্ধতি ব্যবহার করা হলে কৌশলটি কাজ করবে না। কখনও কখনও নিষ্কাশনযোগ্য অনুলিপি পেতে আপনাকে অ্যাডোব রিডার কয়েকবার ব্যবহার করতে হবে।
আপডেট 10/8/2019। তৃতীয় প্রশ্ন। আমার এখন তৃতীয় প্রশ্ন আছে। সমস্ত সুরক্ষিত / এনক্রিপ্ট পিডিএফ পাসওয়ার্ড সুরক্ষিত আছে? পাইকপিডিএফ কেন কাজ করছে না? আমার অনুমান যে পাইকপিডিএফের বর্তমান সংস্করণটি কিছু ধরণের এনক্রিপশনগুলি ভেঙে ফেলতে পারে তবে সেগুলি সবই নয়। @ কনস্টেট উল্লেখ করেছে যে পাইপডিএফ 2 কোনও প্রকারের সুরক্ষা ভঙ্গ করতে পারে। যাইহোক, আমি তাকে জবাব দিয়েছি যে আমি একটি নিবন্ধ পেয়েছি যে পাইপিডিএফ 2 অ্যাডোব অ্যাক্রোব্যাট প্রো 6.0 দিয়ে তৈরি এনক্রিপশনগুলি ভেঙে ফেলতে পারে, তবে উত্তরোত্তর সংস্করণগুলির সাথে নেই।
qpdf
আপনার ফাইলগুলি ডিক্রিপ্ট করার জন্য ব্যবহার করার চেষ্টা করেছেন ? ক্ষেত্রে এটি কৌশলটি করবে, আপনি subprocess
ফাইলটিকে বিশ্লেষণের আগে ডিক্রিপ্ট করার জন্য মডিউলটি ব্যবহার করে এটি আপনার স্ক্রিপ্ট থেকে কল করতে পারেন ।
PyPDF2
, সবকিছু ঠিকঠাক কাজ করে। আমিpdftk
ফাইলগুলি এনক্রিপ্ট করতে পাশাপাশি অনলাইন পরিষেবা ব্যবহার করেছি। আপনি কি "ঝামেলা" পিডিএফ ফাইলের লিঙ্ক পোস্ট করতে পারেন?