লিনাক্স ফাউন্ডেশন প্রকল্প

এই পৃষ্ঠায় Google সিজন অফ ডক্সের জন্য গৃহীত প্রযুক্তিগত লেখার প্রকল্পের বিশদ বিবরণ রয়েছে৷

প্রকল্পের সারসংক্ষেপ

ওপেন সোর্স সংস্থা:
লিনাক্স ফাউন্ডেশন
কৌশলী লেখক:
পীযূষগোয়াল16
প্রকল্পের নাম:
প্রিন্টার অ্যাপ্লিকেশনে প্রিন্টার/স্ক্যানার ড্রাইভারের জন্য টিউটোরিয়াল এবং ডিজাইন নির্দেশিকা
প্রকল্পের দৈর্ঘ্য:
স্ট্যান্ডার্ড দৈর্ঘ্য (3 মাস)

প্রকল্প বর্ণনা

ওভারভিউ

প্রিন্টার-নির্দিষ্ট ফিল্টার এবং PPD সমন্বিত ক্লাসিক প্রিন্টার ড্রাইভার (পোস্টস্ক্রিপ্ট প্রিন্টার বিবরণ, প্রিন্টারের ক্ষমতা বর্ণনা করে এবং কোন ফিল্টারগুলিকে কল করতে হবে) ফাইলগুলি যেগুলি ফাইল সিস্টেমের নির্দিষ্ট ডিরেক্টরিগুলিতে ফেলে দিতে হয় সেগুলি তথাকথিত প্রিন্টার অ্যাপ্লিকেশন দ্বারা প্রতিস্থাপিত হয়, একটি অনুকরণ আইপিপি নেটওয়ার্ক প্রিন্টার।

বেশিরভাগ আধুনিক সাধারণ-উদ্দেশ্য প্রিন্টার হল আইপিপি প্রিন্টার যা চালকবিহীন মুদ্রণের অনুমতি দেয়। তারা ডিএনএস-এসডি-এর মাধ্যমে নিজেদের বিজ্ঞাপন দেয়, ক্লায়েন্টরা আইপিপি অনুরোধের মাধ্যমে তাদের সক্ষমতার তথ্য পোল করতে পারে এবং তারা প্রিন্ট কাজের জন্য স্ট্যান্ডার্ড ডেটা ফর্ম্যাট ব্যবহার করে। প্রিন্টাররা এই কার্যকারিতা প্রদান করে না, সাধারণত লিগ্যাসি বা বিশেষ প্রিন্টারদের একটি প্রিন্টার ড্রাইভার প্রয়োজন।

একটি প্রিন্টার অ্যাপ্লিকেশন হল একটি ডেমন যা সমর্থিত প্রিন্টার সনাক্ত করে এবং সেই প্রিন্টারগুলিকে IPP Everywhere প্রিন্টার হিসাবে লোকালহোস্টে বিজ্ঞাপন দেয়। প্রিন্টার অ্যাপ্লিকেশানগুলিতে প্রিন্টার(গুলি) এটি সমর্থন করে আগত কাজগুলি প্রিন্ট করার সফ্টওয়্যার রয়েছে, ডেটাকে প্রিন্টারের স্থানীয় ভাষায় রূপান্তর করে এবং এটি অনুরোধে ক্লায়েন্টদের প্রিন্টারের ক্ষমতা সম্পর্কে তথ্য প্রদান করে৷ প্রিন্টার অ্যাপ্লিকেশনের এমনকি একটি প্রকৃত নেটওয়ার্ক প্রিন্টারের মতো একটি ওয়েব প্রশাসন ইন্টারফেস রয়েছে।

আমরা জানি, লিনাক্স স্যান্ডবক্সড প্যাকেজিং-এ চলে যাচ্ছে (উদাহরণস্বরূপ স্ন্যাপ) এবং মুদ্রণও সেই দিকে যাচ্ছে। একটি স্যান্ডবক্সযুক্ত প্যাকেজে, একবার এটি তৈরি হয়ে গেলে আমরা ডিরেক্টরির বিষয়বস্তু পরিবর্তন করতে পারি না। আমাদের সিস্টেম আর মডুলার নয়। কোন প্রিন্টার ড্রাইভার প্যাকেজ ইনস্টল করতে হবে তা আমরা বেছে নিতে পারি না। প্রিন্টার অ্যাপ্লিকেশনগুলি মডুলারিটির এই সমস্যার সমাধান করে এবং আমাদের প্রিন্টার ড্রাইভারের ক্ষেত্রে একই স্বাধীনতা দেয়।

Snaps-এ প্রিন্টার এবং স্ক্যানার ড্রাইভারগুলি শুধুমাত্র একটি স্ন্যাপড CUPS এবং স্ন্যাপ করা অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় নয়, তারা সম্পূর্ণ ক্লাসিক সিস্টেমেও কাজ করে, কিন্তু ক্লাসিকভাবে প্যাকেজড ড্রাইভারের বিপরীতে তারা OS-ডিস্ট্রিবিউশন-স্বাধীন। আপনি একটি প্রিন্টার ড্রাইভার স্ন্যাপ তৈরি করেন এবং এটি সমস্ত OS ডিস্ট্রিবিউশনে কাজ করে যা স্ন্যাপডি চালায়, প্রতিটি ডিস্ট্রিবিউশনের (এবং তাদের সংস্করণ) স্বাধীনভাবে প্রিন্টার ড্রাইভার প্যাকেজ করার প্রয়োজন নেই এবং নির্ভরতার নরকে চলে যায়। অন্য সুবিধা হল পোস্টস্ক্রিপ্ট প্রিন্টার থেকে আসা পিপিডি ফাইলগুলির প্রাচীন ধারণাটি বন্ধ হয়ে গেছে। উপরন্তু, CUPS সিস্টেমে ফাইল ড্রপ করার পরিবর্তে একটি IP সংযোগের মাধ্যমে CUPS সিস্টেম এবং প্রিন্টার ড্রাইভারকে সংযুক্ত করে, CUPS সিস্টেম এবং প্রিন্টার অ্যাপ্লিকেশন উভয়ই পৃথক স্যান্ডবক্সযুক্ত প্যাকেজে থাকতে পারে।

এই ধরণের প্যাকেজিংয়ের জন্য প্রিন্টার এবং স্ক্যানারগুলির জন্য ড্রাইভারগুলি কীভাবে ডিজাইন করা যায় এবং কীভাবে সেগুলিকে Snaps-এ প্যাকেজ করা যায় তা বর্ণনা করা আমার কাজ হবে। উদ্দেশ্য হল যে কেউ যারা প্রিন্টার বা স্ক্যানার ড্রাইভার লেখেন, বিশেষ করে হার্ডওয়্যার নির্মাতাদের, ভবিষ্যতে এটি সঠিকভাবে করতে সাহায্য করা।

প্রিন্টার অ্যাপ্লিকেশনের কার্যপ্রবাহ প্রদত্ত ফ্লোচার্টের সাথে সংক্ষিপ্ত করা যেতে পারে:

এই ধরনের প্রিন্টার/স্ক্যানার অ্যাপ্লিকেশন তৈরির ভিত্তি হল PAPPL, এটির জন্য সর্বাধিক কার্যকারিতা প্রদানকারী একটি লাইব্রেরি, তবে প্রিন্টার অ্যাপ্লিকেশনগুলির জন্য ব্যবহার করা কোড ধারণকারী কাপ-ফিল্টারও। ধারণাটি এখনও বিকাশাধীন, প্রধানত এই বছরের Google সামার অফ কোডে, কিন্তু 14 সেপ্টেম্বর, যখন ডকুমেন্টেশন লেখার সময়কাল শুরু হয়, GSoC-এর কোডিং সময়কাল ইতিমধ্যেই শেষ হয়ে গেছে এবং যখন OpenPrinting-এর টিউটোরিয়াল প্রয়োজন।

প্রিন্টার ড্রাইভারের জন্য টেমপ্লেট জব ডেটার জন্য কাঠামো সংজ্ঞায়িত করে

মিডিয়া আকারের জন্য ধ্রুবক অ্যারে ঘোষণা করুন

ফাংশন ঘোষণা করা প্রদত্ত বিবরণ উপযুক্ত হলে এটি সত্য এবং ব্যর্থ হলে মিথ্যা ফেরত দেয়।

ii) বুলিয়ান ফাংশন গ্রহণকারী কাজ, কাজের বিকল্প এবং ডিভাইস প্রিন্ট করুন। এটি একটি ফাইল প্রিন্ট করে এবং সাফল্যের উপর সত্য এবং ব্যর্থতার উপর মিথ্যা ফেরত দেয়।

iii) রেন্ডজব বুলিয়ান ফাংশন গ্রহণকারী কাজ, কাজের বিকল্প এবং ডিভাইস। এটি কাজ শেষ করে এবং সাফল্যের উপর সত্য এবং ব্যর্থতার উপর মিথ্যা ফিরে আসে।

iv) রেন্ডপেজ বুলিয়ান ফাংশন কাজ গ্রহণ করে, কাজের বিকল্প, ডিভাইস এবং পৃষ্ঠা নম্বর। এটি পৃষ্ঠাটি শেষ করে এবং সাফল্যে সত্য এবং ব্যর্থতার ক্ষেত্রে মিথ্যা ফেরত দেয়।

v) rstartjob বুলিয়ান ফাংশন গ্রহণকারী কাজ, কাজের বিকল্প এবং ডিভাইস। এটি কাজ শুরু করে এবং সাফল্যের উপর সত্য এবং ব্যর্থতার উপর মিথ্যা ফিরে আসে।

vi) rstartpage বুলিয়ান ফাংশন কাজ গ্রহণ, কাজের বিকল্প, ডিভাইস এবং পৃষ্ঠা নম্বর। এটি পৃষ্ঠা শুরু করে এবং সাফল্যের উপর সত্য এবং ব্যর্থতার উপর মিথ্যা ফেরত দেয়।

vii) বুলিয়ান ফাংশন গ্রহণকারী কাজ, কাজের বিকল্প, ডিভাইস, লাইন নম্বর এবং অক্ষর অ্যারে লিখুন। এটি লাইনটি লিখে এবং সাফল্যের উপর সত্য এবং ব্যর্থতার উপর মিথ্যা ফেরত দেয়। viii) ঐচ্ছিক ফাংশন যেমন সনাক্তকরণ (প্রদত্ত কর্মের উপর ভিত্তি করে প্রিন্টার সনাক্ত করতে সহায়তা করে), কম্প্রেস (গ্রাফিক্সের একটি লাইন সংকুচিত করা) ইত্যাদি