একটি প্রিন্ট অ্যাডাপটার অ্যান্ড্রয়েড প্রিন্ট ফ্রেমওয়ার্কের সাথে যোগাযোগ করে এবং প্রিন্টিং প্রক্রিয়ার ধাপগুলো পরিচালনা করে। এই প্রক্রিয়ার জন্য প্রয়োজন প্রিন্ট করার জন্য একটি ডকুমেন্ট তৈরী করার পূর্বে ইউজার কর্তৃক প্রিন্টার এবং প্রিন্ট অপশন নির্বাচন করা। এই নির্বাচন চুড়ান্ত আউটপুটকে প্রভাবিত করতে পারে যেহেতু ইউজার ভিন্ন আউটপুট সামর্থ, ভিন্ন পেজ সাইজ, বা ভিন্ন পেজ ওরিয়েন্টেশন দিয়ে প্রিন্টার পছন্দ করে। যেহেতু এই নির্বাচন তৈরী করা হয়েছে, প্রিন্ট ফ্রেমওয়ার্ক আপনার প্রিন্ট অ্যাডাপটরকে একটি প্রিন্ট ডকুমেন্ট পরিকল্পনা করতে বলে এবং এটা তৈরী করতে বলে। যখনই একজন ইউজার প্রিন্ট বাটন চাপে, ফ্রেমওয়ার্ক চুড়ান্ত প্রিন্ট ডকুমেন্ট নেয় এবং এটাকে প্রিন্ট প্রভাইডারে আউটপুটের জন্য পাঠায়। প্রিন্টিং প্রক্রিয়া সময়কালে ইউজার প্রিন্ট একশন ক্যানসেল করতে পারে, সুতরাং আপনার প্রিন্ট অ্যাডাপ্টরকে অবশ্যই একটি ক্যনসেল করা রিকোয়েস্ট শুনতে হবে এবং এর প্রতি প্রতিক্রিয়া করতে হবে।
PrintDocumentAdapter অ্যাবস্ট্রাক্ট ক্লাস প্রিন্টার লাইফসাইকেল পরিচালনা করার জন্য ডিজাইন করা হয়েছে, যার চারটি প্রধান কলব্যাক মেথড আছে। আপনাকে অবশ্যই প্রিন্ট ফ্রেমওয়ার্কের সাথে যথায়থভাবে যোগাযোগ করার জন্য আপনার প্রিন্ট অ্যাডপটরের সাথে এই মেথডগুলো বাস্তবায়ন করতে হবে:
onStart() – প্রিন্ট প্রক্রিয়ার শুরুতে শুধু একবার কল করা হয়। যদি আপনার অ্যাপলিকেশনের সম্পাদন করার জন্য যে কোন টাইম-প্রিপারেশন কাজ থাকে, যেমন যে ডাটা প্রিন্ট করতে হবে তার একটি ¯œ্যাপশট পাওয়া, সেগুলোকে এখানে সম্পাদন করুন। আপনার অ্যাডাপটরে এই মেথড বাস্তবায়ন করার কোন প্রয়োজন নেই।
onLayout() – একজন ইউজার যতবার একটি প্রিন্ট সেটিং পরিবর্তন করে, প্রতিবারই এটা কল করা হয়, যেমন একটি ভিন্ন পেজ সাইজ, বা পেজ ওরিয়েন্টেশন, আপনার অ্যাপলিকেশনকে যে পেজ প্রিন্ট হবে তার একটি লেআউট গণনা করার একটি সুযোগ দেয়। ন্যুনতমভাবে, এই মেথড অবশ্যই প্রিন্ট করা ডকুমেন্ট এর মধ্যে কতগুলো পেজ আশা করে তা রিটার্ন করে।
onWrite() – প্রিন্ট হবে এমন ফাইলের মধ্যে রেন্ডার প্রিন্ট পেজে কল করা হয়। এই মেথডকে প্রতিটা onLayout()কলের পর এক বা একাধিক বার কল হতে পারে।
onFinish() –প্রিন্ট প্রক্রিয়ার শেষে একবার করা হয়। যদি আপনার অ্যাপলিকেশনের কোন ওয়ান টাইম টিয়ার-ডাউন কাজ থাকে, এখানে সম্পাদন করুন । আপনার অ্যাডাপটরে এই মেথড বাস্তবায়ন করার কোন প্রয়োজন নেই।
নিচের অধ্যায় আলোচনা করে কীভাবে লেআউট এবং রাইট মেথড বাস্তবায়ন করতে হয়, যা একটি প্রিন্ট অ্যাডাপটরে কাজ করা খুব জটিল।
নোট: এই অ্যাডাপটর মেথডকে আপনার অ্যাপলিকেশনের মেইন থ্রেডে কল করা হয়। যদি আপনি আপনার অ্যাপলিকেশনে এই মেথডগুলো কাজ করাতে উল্লেখযোগ্য পরিমান সময় নিতে আশা করেন, তাদের কাজ করাতে একটি পৃথক থ্রেডে বাস্তবায়ন করুন। উদাহরনস্বরূপ, আপনি পৃথক AsyncTask শঅবজেক্টে লেআউট বা প্রিন্ট ডকুমেন্ট লেখার কাজ সংযুক্ত করতে পারেন।