একটি PDF হয় PDF/A-3 compliant, নয় নয়। তাহলে একই file কেন দুটি validator দিয়ে পরীক্ষা করবেন?
কারণ বাস্তবে PDF/A specification এত বড় যে দুটি সঠিক implementation-ও edge case-এ ভিন্ন ফল দিতে পারে। Audit-grade workflow-তে single-engine “Pass” green light নয়; এটি yellow light।
PDF/A একটি একক algorithm নয়
PDF/A ISO 19005-এর একাধিক part জুড়ে আছে: PDF/A-1, PDF/A-2, PDF/A-3, PDF/A-4 এবং b, a, u, e, f conformance levels। এগুলোর নিচে আবার PDF-এর মূল specification ISO 32000 আছে। মোট normative text হাজার হাজার page।
যেসব জায়গায় disagreement দেখা যায়:
- PDF/A-2/3 transparency: নির্দিষ্ট শর্তে allowed, কিন্তু শর্তের interpretation আলাদা হতে পারে।
- ICC color profile: কোন profile required আর কোনটি শুধু recommended, validator ভেদে কঠোরতা বদলায়।
- PDF/A-3 embedded file metadata:
AFRelationship,/AFreference এবং XMP খুব নিখুঁতভাবে মিলতে হয়। - Font subsetting: CID fonts এবং partial subsets boundary case তৈরি করে।
এগুলো সবসময় bug নয়। Complex standard স্বাধীনভাবে implement করলে এমন পার্থক্য স্বাভাবিক। Regulated sectors তাই independent confirmation চায়।
Reference engine এবং second opinion
veraPDF PDF Association maintained reference implementation। veraPDF “Pass” দিলে সেটি PDF/A-র সবচেয়ে শক্তিশালী single-engine signal।
তবু strongest single signal audit evidence নয়। Bank, healthcare archive, government records বা long-term archive দ্বিতীয় engine চায়, কারণ:
- Receiver অন্য validator ব্যবহার করতে পারে।
- এক engine-এর bug একই engine দুইবার চালিয়ে ধরা যায় না।
- Compliance world-এ two independent confirmations পরিচিত pattern।
gPdf-এ veraPDF-এর পাশে আমাদের Rust + WebAssembly engine চলে। এটি একই specification-এর independent implementation। দুই engine pass করলে confidence অনেক বেশি; mismatch হলে investigation শুরু করার জায়গা পরিষ্কার হয়।
এক URL-এ দুই report
এই workflow gpdf.com/validator/ এ free। Login দরকার নেই। File upload করলে veraPDF এবং gPdf edge engine parallel চলে, তারপর side-by-side report পাওয়া যায়।
ব্যবহার:
- PDF/A ship করার আগে: upload করুন, dual pass দেখুন, JSON reports QA evidence হিসেবে রাখুন।
- একটি pass, একটি fail: reports compare করুন; সমস্যা XMP timestamp, missing
/AFবা attachment relation-এ থাকতে পারে। - দুটিই fail: source generation ঠিক করুন।
- Archive batch audit: sampled PDFs validate করে report audit workpaper-এ যোগ করুন।
Uploaded file persist করা হয় না। Cloudflare Workers-এ in-memory processing হয়, report তৈরি হলে file discard হয়।
E-invoice-এও একই নিয়ম
Factur-X / ZUGFeRD-এ PDF/A-3 shell ছাড়াও embedded EN 16931 CII XML validate করতে হয়। gPdf validator XML অংশের জন্য Mustang চালায় এবং PDF/A result-এর সঙ্গে দেখায়।
Compliance-এ বিশ্বাস গড়ে ওঠে independent confirmations দিয়ে, single tool দিয়ে নয়।
TL;DR
Single-engine “Pass” yellow light। Dual-engine “Pass” অনেক শক্তিশালী evidence। validator এ file দিন, দুই report নিন এবং QA বা audit evidence হিসেবে রাখুন। PDF যদি gPdf API দিয়ে তৈরি হয়, validator সেটির compliance claim-এর public receipt।