PDF এ কি সংযুক্তি লুকানো আছে? pypdf দিয়ে ডেলিভারির আগে ইনভেন্টরি এমবেডেড ফাইল
PDF এ সংযুক্তিগুলি এম্বেড করা থাকতে পারে এবং একই নামের সংযুক্তিগুলি একাধিক বিষয়বস্তুর সাথে মিলিত হতে পারে৷ ডেলিভারির আগে pypdf সহ ইনভেন্টরি: নিষ্কাশনের ক্রমে প্রতিটি সংযুক্তিতে একটি স্বাধীন আইডি বরাদ্দ করুন, মূল নামটি মেটাডেটা হিসাবে ছেড়ে দিন, ডিস্কে লিখবেন না, কার্যকর করবেন না, গ্রাহকদের অনুপস্থিত অংশগুলির সাথে একটি বিতরণ প্যাকেজ পেতে দেবেন না।
PDF এ সংযুক্তি থাকতে পারে। ডেলিভারির আগে যদি সেগুলি চেক না করা হয়, তাহলে গ্রাহক যে ডকুমেন্ট প্যাকেজটি পান তা অনুপস্থিত হতে পারে। এই নিবন্ধটি এমন ডেভেলপার এবং ডকুমেন্ট ডেলিভারি কর্মীদের জন্য যাদের ব্যাচে পিডিএফ এমবেড করা ফাইলগুলিকে বের করতে বা যাচাই করতে হবে। এটি ব্যাখ্যা করে যে কেন একই নাম এবং অস্বাভাবিক ফাইল নামের সংযুক্তিগুলি নীরব ফাইলের ক্ষতির কারণ হতে পারে এবং কীভাবে সংযুক্তিগুলিকে নিরাপদে গণনা করতে pypdf ব্যবহার করতে হয়৷
এটি পড়ার পরে আপনি তিনটি জিনিস করতে সক্ষম হবেন: প্রতিটি সংযুক্তির জন্য একটি অনন্য আইডি বরাদ্দ করুন, এটি সরাসরি ডিস্কে লেখার পরিবর্তে মেটাডেটা হিসাবে আসল নামটি বজায় রাখুন এবং স্বয়ংক্রিয়ভাবে পরিচালনা করা যায় এমন ক্ষেত্রে এবং ম্যানুয়াল পর্যালোচনার প্রয়োজনের মধ্যে পার্থক্য করার জন্য একটি গ্রহণযোগ্যতা ফর্ম ব্যবহার করুন৷
এই নিবন্ধের উদাহরণগুলি সমস্ত সিন্থেটিক নমুনা, এবং কোডটি একটি বিচ্ছিন্ন পরিবেশে নমুনা পরিদর্শন পাস করেছে, তবে এটি সমস্ত বাস্তব ফাইল বা পণ্যের প্রভাবগুলির গ্যারান্টি উপস্থাপন করে না। গুরুত্বপূর্ণ নথিগুলি পরিচালনা করার আগে অনুগ্রহ করে আসলগুলি রাখুন।
কিভাবে ডেলিভারির আগে পিডিএফ সংযুক্তি গণনা করবেন? এক বাক্যে উপসংহার
নিষ্কাশনের ক্রমে প্রতিটি সংযুক্তিতে একটি স্বাধীন আইডি বরাদ্দ করতে pypdf ব্যবহার করুন। আসল নামটি শুধুমাত্র মেটাডেটা হিসাবে রাখা হয় এবং সরাসরি ডিস্কে লেখা হয় না। ব্যতিক্রমগুলি গ্রহণযোগ্য ফর্ম অনুযায়ী ম্যানুয়ালি পর্যালোচনা করা হয়।
| আপনার অবস্থা | প্রস্তাবিত অভ্যাস | কারণ |
|---|---|---|
| PDF এ একই নামের সংযুক্তি থাকতে পারে | নিষ্কাশন ক্রমে স্বাধীন আইডি বরাদ্দ করুন, সমস্ত সামগ্রী বজায় রাখুন | একই নামের সংযুক্তিগুলি তালিকা আকারে সংরক্ষণ করা হয়। নাম দিয়ে সরাসরি লিখলে একে অপরকে ওভাররাইট করবে। |
ফাইলের নামে ../ বা পাথ বিভাজক রয়েছে | ডাইরেক্টরি স্ট্রাকচারটি স্ট্রিপ করুন এবং শুধুমাত্র ফাইলের নামটি মেটাডেটা হিসাবে নিন | সরাসরি লেখা ব্যর্থ হতে পারে এবং এমনকি নিরাপত্তা ঝুঁকিও আনতে পারে |
| অনেক সংযুক্তি বা এনক্রিপশন বা স্বাক্ষর বিদ্যমান আছে | স্বয়ংক্রিয় প্রক্রিয়াটি থামান এবং এটিকে একটি উত্সর্গীকৃত পর্যালোচকের কাছে স্থানান্তর করুন৷ | যখন 20 টির বেশি সংযুক্তি থাকে বা এনক্রিপশন বা স্বাক্ষর থাকে, তখন স্বয়ংক্রিয় ফলাফলের জন্য ম্যানুয়াল নিশ্চিতকরণের প্রয়োজন হয়। |
| প্রসবের আগে সম্পূর্ণতা নিশ্চিত করা প্রয়োজন | স্বীকৃতি ফর্মের বিরুদ্ধে আইটেম দ্বারা আইটেম চেক করুন | স্বয়ংক্রিয় নিষ্কাশন ডেলিভারির আগে ম্যানুয়াল যাচাই প্রতিস্থাপন করতে পারে না |
কেন একই নামের একটি সংযুক্তি নীরবে ফাইল হারায়?
এমবেডেড ফাইলগুলির সাথে পিডিএফগুলি প্রক্রিয়া করার সময়, সবচেয়ে লুকানো সমস্যাটি ত্রুটি নয়, তবে প্রক্রিয়াটি "সফলভাবে" কার্যকর হওয়ার পরে ফাইলগুলির অভাব।
reader.attachments-এ লুপ করার সময় এবং আসল নাম দিয়ে ডিস্কে সরাসরি লেখার সময়, যদি PDF-এreport.xlsxনামে দুটি ফাইল এমবেড করা থাকে, তাহলে পরবর্তীটি আগেরটিকে ওভাররাইট করবে।- যখন ফাইলের নামটিতে
../বা সিস্টেম সংরক্ষিত অক্ষর থাকে, তখন লেখা ব্যর্থ হতে পারে এবং এমনকি নিরাপত্তা ঝুঁকি ট্রিগার করতে পারে। - অফিসিয়াল pypdf নথিতে বলা হয়েছে যে সংযুক্তি নামগুলিতে যেকোনো অক্ষর থাকতে পারে এবং একই নামের সংযুক্তিগুলি তালিকা আকারে সংরক্ষণ করা হয়।
অতএব, অ-মানক পিডিএফের সম্মুখীন হলে যেকোন অস্বাস্থ্যকর ব্যাচ নিষ্কাশন যুক্তি অবিশ্বাস্য হবে।
সিন্থেটিক নমুনা ব্যবহার করে যাচাইযোগ্য সীমানা ইনপুট তৈরি করুন
নিষ্কাশন যুক্তির দৃঢ়তা যাচাই করার জন্য, অজানা উত্সের উত্পাদন নথির উপর নির্ভর না করে নিয়ন্ত্রিত সিন্থেটিক নমুনাগুলি তৈরি করা দরকার। উদাহরণ ধরুন একটি পিডিএফে তিনটি সংযুক্তি রয়েছে:
- সাধারণ ফাইল
data.csv; data.csvপ্রথমটির মতো একই নামের সাথে, তবে বিভিন্ন বিষয়বস্তু সহ;- ফাইলের নামটিতে পাথ ট্র্যাভার্সাল বৈশিষ্ট্য
..\secret.txtরয়েছে।
এই তিনটি সংযুক্তি যথাক্রমে তিন ধরণের ক্ষেত্রে কভার করে: সাধারণ নিষ্কাশন, একই নামের দ্বন্দ্ব এবং পথের অসঙ্গতি।
নিরাপদ নিষ্কাশন এবং ফাইলের নাম পরিশোধন চালানোর উদাহরণ
নির্ভরতার জন্য আমদানি তালিকা দেখুন। কোড মেমরিতে ইনপুট তৈরি করে, ডিস্কে লেখে না এবং সংযুক্তি সামগ্রী সম্পাদন করে না।
from io import BytesIO
from pypdf import PdfReader, PdfWriter
writer = PdfWriter()
writer.add_blank_page(width=200, height=200)
writer.add_attachment("data.csv", b"row-one")
writer.add_attachment("data.csv", b"row-two")
writer.add_attachment("../secret.txt", b"synthetic secret")
out = BytesIO()
writer.write(out)
out.seek(0)
reader = PdfReader(out)
records = []
for name, contents in reader.attachments.items():
for content in contents:
records.append({"id": len(records), "source_name": name, "bytes": content})
assert len(records) == 3
assert len({r["id"] for r in records}) == 3
assert {r["bytes"] for r in records if r["source_name"] == "data.csv"} == {b"row-one", b"row-two"}
assert any(r["source_name"] == "../secret.txt" for r in records)
দয়া করে মনে রাখবেন যে এই কোডটি কেবল একটি যৌক্তিক প্রদর্শন এবং পিপিডিএফ সংযুক্তিগুলির সমস্ত বৈশিষ্ট্য সম্পূর্ণরূপে কভার করে না। উত্পাদনের সময়, বড় ফাইল স্ট্রিম পড়া এবং এনকোডিং অসঙ্গতিগুলির মতো পরিস্থিতিগুলিও বিবেচনা করা উচিত।
📊 মূল তুলনা
| পদ্ধতি | একই নামের সাথে সংযুক্তি | ফাইলের নামগুলির মধ্যে পাথ ডিলিমিটার অন্তর্ভুক্ত রয়েছে | ব্যাখ্যা |
|---|---|---|---|
| মূল নাম ব্যবহার করে সরাসরি ডিস্কে লিখুন | পরেরটি প্রাক্তনকে কভার করে | লেখাগুলি ব্যর্থ হতে পারে এবং এমনকি সুরক্ষা ঝুঁকিও সৃষ্টি করতে পারে | সহজেই নীরবে ফাইলগুলি হারান |
| নিষ্কাশন আদেশ অনুসারে স্বতন্ত্র আইডি বরাদ্দ করুন | প্রতিটি সংযুক্তি আলাদাভাবে রাখা হয় | মূল নামটি কেবলমাত্র মেটাডেটার জন্য ব্যবহৃত হয় এবং পাথ লেখার জন্য ব্যবহৃত হয় না | আসল নামটি এখনও সনাক্ত করা যেতে পারে |
🎯 কোন পদ্ধতিটি আপনার জন্য উপযুক্ত?
যদি আপনি শুধুমাত্র অল্প পরিমাণে সাধারণ আনুষাঙ্গিক চেক করার প্রয়োজন হয়
আসলটি রাখুন, নমুনা কোডের সাথে এটি নিষ্কাশন করুন এবং ফাইলের সামগ্রীটি একে একে তুলনা করুন।
আপনি যদি পিডিএফ পরিচালনা করেন তবে তাদের একই নামের সংযুক্তি থাকতে পারে
নিষ্কাশন ক্রম অনুসারে স্বতন্ত্র আইডি বরাদ্দ করুন; গ্লোবাল কী হিসাবে স্থানীয় ক্রমিক নম্বর বা পরিষ্কার করা নামগুলি ব্যবহার করবেন না।
যদি 20 টির বেশি সংযুক্তি থাকে, বা যদি এনক্রিপশন বা স্বাক্ষর থাকে
স্বয়ংক্রিয় প্রক্রিয়াগুলি স্থগিত করা হয় এবং পর্যালোচনার জন্য নিবেদিত কর্মীদের হাতে তুলে দেওয়া হয়।
❓ প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)
1. কেন একই নামের সংযুক্তিগুলি সরাসরি ডিস্কে লেখা যায় না?
পরে লেখা ফাইলগুলি প্রথমে লেখা ফাইলগুলিকে ওভাররাইট করবে, নীরবতার কারণে সামগ্রী হারাবে।
2. ফাইলের নামের ../ কী ঝুঁকি নিয়ে আসে?
সরাসরি লেখা ব্যর্থ হতে পারে বা এমনকি সুরক্ষা ঝুঁকি ট্রিগার করতে পারে। নিবন্ধটি ডিরেক্টরি কাঠামোটি ছিন্ন করার পরামর্শ দেয় এবং কেবল ফাইলের নামটি মেটাডেটা হিসাবে রাখার পরামর্শ দেয়।
3. যদি সংযুক্তি সামগ্রী খালি বা খুব ছোট হয় তবে এটি সংরক্ষণ করা উচিত?
গ্রহণযোগ্যতা ফর্মের স্বয়ংক্রিয় প্রক্রিয়াকরণ সুপারিশ অনুসারে, লগগুলি রেকর্ড করা উচিত এবং ফাইলগুলি এখনও সংরক্ষণ করা উচিত এবং তারপরে এটি একটি প্লেসহোল্ডার বা ক্ষতিগ্রস্থ কিনা তা ম্যানুয়াল রায় দেওয়া উচিত।
4. এই কোডটি কি পিওয়াইপিডিএফ সংযুক্তির সমস্ত বৈশিষ্ট্য কভার করতে পারে?
না। এটি কেবল একটি যৌক্তিক প্রদর্শন; বড় ফাইল স্ট্রিম রিডিং এবং এনকোডিং ব্যতিক্রমগুলির মতো দৃশ্যগুলি আলাদাভাবে বিবেচনা করা দরকার।
গ্রহণযোগ্যতার মানদণ্ড এবং ম্যানুয়াল পর্যালোচনা সীমানা
স্বয়ংক্রিয় নিষ্কাশন ডেলিভারির আগে ম্যানুয়াল যাচাইকরণ প্রতিস্থাপন করতে পারে না। নীচের সারণীটি সাধারণ ব্যতিক্রম এবং তাদের পরিচালনা পদ্ধতিগুলি তালিকাভুক্ত করে, কোড সমাধান করতে পারে এমন পরিস্থিতি এবং ম্যানুয়াল হস্তক্ষেপের প্রয়োজনীয়তার মধ্যে পার্থক্য করে:
| ঘটনাটি পর্যবেক্ষণ করুন | স্বয়ংক্রিয় প্রক্রিয়াকরণ | ম্যানুয়াল রিভিউ |
|---|---|---|
| একই নামের একাধিক সংযুক্তি | ক্রমিক নম্বর উপসর্গগুলি যোগ করুন এবং সমস্ত সামগ্রী ধরে রাখুন | এটি একটি সংস্করণ পুনরাবৃত্তি বা দুর্ঘটনাজনিত এম্বেডিং কিনা তা নিশ্চিত করুন |
| ফাইলের নামগুলির মধ্যে পাথ ডিলিমিটার অন্তর্ভুক্ত রয়েছে | ডিরেক্টরি কাঠামোটি সরিয়ে নিন, কেবল ফাইলের নাম নিন | উদ্দেশ্যটি দূষিত পেলোড আড়াল করা কিনা তা পরীক্ষা করে দেখুন |
| সংযুক্তি সামগ্রী খালি বা খুব ছোট | লগটি লগ করুন এবং ফাইলটি অক্ষত রাখুন | এটি কোনও প্লেসহোল্ডার বা ক্ষতিগ্রস্থ কিনা তা নির্ধারণ করুন |
| ফাইলের নামগুলি অস্পষ্ট বা মুদ্রণযোগ্য অক্ষর | আন্ডারস্কোর দিয়ে প্রতিস্থাপন করুন এবং সূচকটি ধরে রাখুন | শব্দার্থ নিশ্চিত করতে মূল পিডিএফ মেটাডেটা রিওয়াইন্ড করুন |
| সংযুক্তির ধরণ এক্সটেনশনের সাথে মেলে না | বিষয়বস্তু অনুযায়ী শুঁক নিন বা এটি যেমন আছে তেমন রাখুন | ব্যবহার ডোমেন বিশেষজ্ঞদের দ্বারা নির্ধারিত হয় |
এই টেবিলটি কোড প্রদর্শন স্তরে যাচাইকরণের জন্য উপযুক্ত। এন্ড-টু-এন্ড প্রভাবগুলিও ব্যবসায়ের প্রসঙ্গের সাথে সামঞ্জস্য করা দরকার; উদাহরণস্বরূপ, অনুপস্থিত চুক্তি সংযুক্তিগুলি ফাইলের নামের ত্রুটির চেয়ে আরও গুরুতর হতে পারে। যদি সংযুক্তির সংখ্যা 20 এর বেশি হয়, বা যদি এনক্রিপশন বা স্বাক্ষর থাকে তবে অটোমেশন প্রক্রিয়াটি স্থগিত করা উচিত এবং পর্যালোচনার জন্য ডেডিকেটেড কর্মীদের কাছে হস্তান্তর করা উচিত।
আরও পড়ুন
পরবর্তী ধাপ
- সিআই পাইপলাইনে সিন্থেটিক আনুষাঙ্গিক পরীক্ষার কেস যুক্ত করা;
- সংযুক্তি অখণ্ডতার জন্য একটি বেসলাইন প্রতিষ্ঠার জন্য ঐতিহাসিক বিতরণ করা নথিগুলির নমুনা দেওয়ার জন্য পরিষ্কার নিষ্কাশন স্ক্রিপ্টগুলি চালান;
- যদি পদ্ধতিগত ক্ষতি পাওয়া যায় তবে নেটওয়ার্ক বা অনুমতি ইস্যুগুলির পরিবর্তে নামকরণের দ্বন্দ্বের সমস্যা সমাধানকে অগ্রাধিকার দিন।
ডেলিভারির আগে ডকুমেন্ট ট্রান্সলেশনের সাথে কিভাবে একত্রিত করবেন
ডকুমেন্ট আনপ্যাকিং, এনক্রিপশন বা সংযুক্তি প্রক্রিয়াকরণ ডেলিভারি প্রস্তুতির অংশ, এবং অনুবাদ এই চেকগুলি প্রতিস্থাপন করতে পারে না। মূল এবং প্রক্রিয়াকরণ চেকলিস্ট ধরে রাখার পরে, অনুবাদের পৃষ্ঠার ক্রম, লিঙ্ক এবং সামগ্রীর সম্পূর্ণতা মূল্যায়ন করুন।
OmniDoc (প্রোডাক্ট এন্ট্রি) মাল্টি-ফর্ম্যাট ডকুমেন্ট অনুবাদ পোর্টাল সরবরাহ করে এবং অফিসিয়াল ওয়েবসাইটটি ওসিআর, শব্দকোষ এবং দ্বিভাষিক রেফারেন্স বৈশিষ্ট্যগুলি প্রবর্তন করে। ফাইল থেকে সরাসরি শুরু করতে চায় এমন দলগুলির জন্য, এই পথটি প্রকৃত নমুনা ব্যবহার করে মূল্যায়ন করা যেতে পারে। দয়া করে এই নিবন্ধে চেকলিস্টের ফলাফলগুলি আপলোড এবং যাচাই করার অধিকার রয়েছে এমন উদ্বেগজনক ফাইলটি ব্যবহার করুন। এই নিবন্ধটি দাবি করে না যে ওমনিডক নিবন্ধে উল্লিখিত ওপেন-সোর্স লাইব্রেরি বা অভ্যন্তরীণ অ্যালগরিদম ব্যবহার করে এবং উদাহরণগুলি পণ্য পারফরম্যান্স পরীক্ষার প্রতিস্থাপন করতে পারে না।
📝 সারসংক্ষেপ
বিতরণের আগে, ইনভেন্টরি পিডিএফ সংযুক্তিগুলি মূল চাবিকাঠি: প্রতিটি সংযুক্তিতে একটি অনন্য আইডি বরাদ্দ করুন, মূল নামটি মেটাডেটা হিসাবে ধরে রাখুন এবং ম্যানুয়ালি কোনও ব্যতিক্রম যাচাই করুন। প্রথমে সিন্থেটিক নমুনা দিয়ে প্রক্রিয়াটি যাচাই করুন, তারপরে এটি বাস্তব নথিতে প্রয়োগ করুন।
এখনই অভিজ্ঞতা: অনুবাদ শুরু করতে আপনার নথি আপলোড করুন, মূল ফর্ম্যাটিং সংরক্ষণ করুন


