Linux-এ PDF সংকুচিত করুন: প্রয়োজন অনুযায়ী QPDF ও Ghostscript ব্যবহার করুন

Linux-এ টার্মিনালে নথিভুক্ত QPDF কমান্ড দিয়ে PDF-এর কাঠামো অপ্টিমাইজ করতে পারেন অথবা Ghostscript pdfwrite দিয়ে নতুন করে তৈরি করতে পারেন। নতুন ফাইল ছোট হয়েছে কি না এবং আপনার প্রয়োজনীয় সব কাজ এখনো করতে পারে কি না, তা কেবল সংরক্ষিত আউটপুট যাচাই করলেই বোঝা যায়।

কাঠামো অপ্টিমাইজ নাকি নতুন করে তৈরি: কোন টুল উপযুক্ত?

প্রোগ্রাম দুটি মৌলিকভাবে ভিন্ন পদ্ধতিতে কাজ করে। এই পৃষ্ঠার QPDF কমান্ড আপনার পৃষ্ঠার বিষয়বস্তু অক্ষুণ্ণ রাখে এবং কেবল ফাইলের অবজেক্টগুলো নতুন করে যতটা সম্ভব কম জায়গায় সংরক্ষণ করে। এ জন্য, যেমন, অবজেক্টগুলোকে অবজেক্ট স্ট্রিমে একত্র করে এবং Flate ডেটা নতুন করে সংকুচিত করে। এ সময় ছবির রেজোলিউশন কমায় না বা JPEG হিসেবে নতুন করে এনকোডও করে না। QPDF-এর ঐচ্ছিক ছবি অপ্টিমাইজেশন একটি আলাদা, ক্ষয়যুক্ত ধাপ, যা পরের অংশে সংক্ষেপে ব্যাখ্যা করা হয়েছে। প্রতিটি বিকল্পের বিবরণ QPDF-এর নথিতে আছে।

Ghostscript ভিন্নভাবে কাজ করে। pdfwrite আউটপুট ডিভাইস দিয়ে PDF পড়ে এবং প্রতিটি পৃষ্ঠার অঙ্কন নির্দেশনা থেকে নতুন ফাইল তৈরি করে। সাধারণত লেখা ও ভেক্টর গ্রাফিক্স নিজ নিজ ধরনেই থাকে; অর্থাৎ পৃষ্ঠাগুলোকে শুধু ছবিতে বদলে দেওয়া হয় না। তবে সেটিংস অনুযায়ী Ghostscript ছবির রেজোলিউশন নতুন করে গণনা করতে পারে। এ ছাড়া পৃষ্ঠার দৃশ্যমান চেহারার অংশ নয় এমন সবকিছুই বদলে যেতে পারে। pdfwrite-সংক্রান্ত Ghostscript নির্দেশিকায় এর ব্যাখ্যা আছে।

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

PDF ছোট করার তিনটি পদ্ধতি এবং নথিতে এগুলো কী পরিবর্তন করে
পদ্ধতিকী হয়ছবিলেখা ও কার্যকারিতা
QPDF, কাঠামো অপ্টিমাইজেশনঅবজেক্ট ও Flate ডেটা আরও কম জায়গায় সংরক্ষিত হয়রেজোলিউশন কমানো হয় না। ঐচ্ছিকভাবে JPEG হিসেবে নতুন করে এনকোড করলে সূক্ষ্ম বিবরণ হারাতে পারে।পৃষ্ঠার বিষয়বস্তু নতুন করে তৈরি করা হয় না, তবুও ফলাফল যাচাই করুন
Ghostscript pdfwrite, নতুন করে তৈরিপৃষ্ঠাগুলোর অঙ্কন নির্দেশনা থেকে সেগুলো নতুন করে তৈরি হয়প্রিসেট অনুযায়ী রেজোলিউশন কমানো হতে পারেলেখা ও ভেক্টর সাধারণত থাকে। লিংক, ফর্ম ও মেটাডেটা বদলাতে পারে।
পৃষ্ঠা ছবি হিসেবে আউটপুট করাপ্রতিটি পৃষ্ঠা একটি ছবিতে পরিণত হয়নির্বাচিত রেজোলিউশনের ওপর নির্ভর করেটেক্সট হিসেবে সংরক্ষিত লেখা, অনুসন্ধানের সুবিধা ও ইন্টারঅ্যাকটিভ উপাদান সাধারণত হারিয়ে যায়

এই পদ্ধতিগুলোর কোনোটিই ছোট ফাইলের নিশ্চয়তা দেয় না। সাধারণ নিয়ম হলো: আপনার PDF মূলত লেখা ও ভেক্টর গ্রাফিক্সের হলে QPDF দিয়ে শুরু করুন। ছবি, লিংক বা ফর্মে যতটা সম্ভব কম পরিবর্তন চাইলে একই কথা প্রযোজ্য। বড় ছবি বা স্ক্যানের কারণে আকার বেশি হলে এবং কিছুটা ছবির গুণমান ছাড় দিতে পারলে Ghostscript বিবেচনা করতে পারেন। ক্ষয়হীন ও ক্ষয়যুক্ত বলতে ঠিক কী বোঝায়, তা গুণমানের ক্ষতি ছাড়া PDF সংকুচিত করুন নির্দেশিকায় ব্যাখ্যা করা হয়েছে।

গ্রাফিক্যাল প্রোগ্রামও একই পদ্ধতি অনুসরণ করে। PDFsam-এর নিজস্ব তথ্য অনুযায়ী, Basic সংস্করণে শুধু কাঠামো অপ্টিমাইজেশন এবং Visual ও Enhanced সংস্করণে আলাদা ছবি সংকোচনের ব্যবস্থা আছে। ফাইল ম্যানেজারের স্ক্রিপ্ট বা পেছনে Ghostscript চালায় এমন ইন্টারফেসের পুরোনো নির্দেশিকার কিছু অংশ আগের Ubuntu সংস্করণ নিয়ে লেখা। তাই যাচাই ছাড়া সেগুলোর ইনস্টলেশনের ধাপ অনুসরণ করবেন না। নির্মাতার তথ্য অনুযায়ী PDF24 Creator কেবল Windows-এর জন্য পাওয়া যায়; কোনো Linux সংস্করণ দেওয়া হয় না।

কিছু ইনস্টল করতে না চাইলে ব্রাউজারের PDF কম্প্রেসর ব্যবহার করতে পারেন। এটি ফাইল আপলোড না করে আপনার ডিভাইসেই প্রক্রিয়াকরণ করে। তবে Linux ব্রাউজারে আমরা এটি আলাদাভাবে পরীক্ষা করিনি। ব্রাউজারে স্থানীয় প্রক্রিয়াকরণ ও প্রকৃত অফলাইন কাজের পার্থক্য আপলোড ছাড়াই PDF সংকুচিত করুন নির্দেশিকায় আছে।

সংস্করণ যাচাই করুন এবং আলাদা আউটপুট ফাইলে লিখুন

কমান্ডগুলোর সংক্ষিপ্ত পরিচয়

এই নির্দেশিকার ছয়টি কমান্ডের একটি নির্বাচন করুন। কমান্ডটি অপরিবর্তিত অবস্থায় দেখতে পাবেন এবং প্রতিটি অংশের অর্থ জানতে পারবেন।

কমান্ডগুলো QPDF ও Ghostscript-এর আনুষ্ঠানিক নির্দেশিকা থেকে নেওয়া হয়েছে। আমরা নিজেরা Ubuntu বা অন্য কোনো ডিস্ট্রিবিউশনে এগুলো চালাইনি। আপনার সিস্টেমে ইনস্টল করা সংস্করণ অনলাইন ডকুমেন্টেশনে বর্ণিত সংস্করণ থেকে ভিন্ন হতে পারে।

এই পৃষ্ঠা কোনো কমান্ড চালায় না এবং টার্মিনালের আউটপুটও দেখায় না। নিজে কোনো কমান্ড চালানোর পরই আপনার সিস্টেমের বার্তা দেখতে পাবেন।

QPDF সংস্করণ দেখান

ইনস্টল করা QPDF-এর সংস্করণ দেখায়। অন্য কমান্ডগুলো ব্যবহার করার আগে এটি যাচাই করুন।

ইনস্টল করা QPDF-এর সংস্করণ দেখায়।
qpdf --version

আপনি কোডের ঘরে সরাসরি কমান্ডটি নির্বাচন করেও অনুলিপি করতে পারেন।

কমান্ডের অংশগুলো
qpdfপ্রোগ্রাম
QPDF কমান্ড লাইন প্রোগ্রাম চালু করে।
--versionসংস্করণ দেখান
আপনার সিস্টেমে ব্যবহৃত QPDF-এর সংস্করণ দেখায়।

শেল যদি জানায় যে কমান্ডটি পাওয়া যায়নি, তাহলে সম্ভবত QPDF ইনস্টল করা নেই। প্যাকেজের নাম ও ইনস্টল করার পদ্ধতি আপনার ডিস্ট্রিবিউশনের ওপর নির্ভর করে।

নির্দেশিকার সংশ্লিষ্ট অংশ

Ghostscript-এর সংস্করণ ও আউটপুট ডিভাইস দেখান

Ghostscript-এর সংস্করণ ও উপলব্ধ আউটপুট ডিভাইস দেখায়।

Ghostscript-এর সংস্করণ ও উপলব্ধ আউটপুট ডিভাইসগুলো দেখায়।
gs -h

আপনি কোডের ঘরে সরাসরি কমান্ডটি নির্বাচন করেও অনুলিপি করতে পারেন।

কমান্ডের অংশগুলো
gsপ্রোগ্রাম
Ghostscript চালু করে। Unix-এ প্রোগ্রামটির নাম gs।
-hসাহায্য
সংস্করণ, বিকল্প, ফরম্যাট, উপলব্ধ আউটপুট ডিভাইস ও অনুসন্ধানের পাথ দেখায়।

শেল যদি জানায় যে কমান্ডটি পাওয়া যায়নি, তাহলে সম্ভবত Ghostscript ইনস্টল করা নেই। ডিস্ট্রিবিউশন ও সংস্করণ লিখে রাখুন, যাতে পরে ফলাফল কীভাবে এসেছে তা বুঝতে পারেন।

নির্দেশিকার সংশ্লিষ্ট অংশ

কাঠামো আরও কম জায়গায় সংরক্ষণ করুন

ফাইলের অবজেক্টগুলো নতুন করে যতটা সম্ভব কম জায়গায় সংরক্ষণ করে। এতে ছবির রেজোলিউশন কমানো হয় না বা JPEG হিসেবে নতুন করে এনকোড করা হয় না।

নথি থেকে নেওয়া QPDF কমান্ড: ছবির রেজোলিউশন না কমিয়ে বা JPEG হিসেবে নতুন করে এনকোড না করে কাঠামো আরও কম জায়গায় সংরক্ষণ করে।
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"

আপনি কোডের ঘরে সরাসরি কমান্ডটি নির্বাচন করেও অনুলিপি করতে পারেন।

কমান্ডের অংশগুলো
qpdfপ্রোগ্রাম
QPDF কমান্ড লাইন প্রোগ্রাম চালু করে।
"original.pdf"ইনপুট ফাইল
যে PDF পড়া হয়। ফলাফল আলাদা ফাইলে সংরক্ষিত হয়।
--object-streams=generateঅবজেক্ট স্ট্রিম তৈরি করুন
উপযুক্ত অবজেক্টগুলো অবজেক্ট স্ট্রিমে একত্র করে সংকুচিত করে। আউটপুটের PDF সংস্করণ তখন অন্তত 1.5 হয়।
--compress-streams=yস্ট্রিম সংকুচিত করুন
স্ট্রিমগুলো আগে থেকেই অন্য পদ্ধতিতে সংকুচিত না থাকলে Flate দিয়ে সংকুচিত করে।
--decode-level=generalizedসাধারণ ফিল্টারের সংকোচন খুলুন
LZW, Flate, ASCII85 ও ASCIIHex-এর মতো সমর্থিত সাধারণ ফিল্টার দিয়ে এনকোড করা ডেটার সংকোচন খোলে। এতে JPEG ডেটার (DCT) সংকোচন খোলা হয় না।
--recompress-flateFlate দিয়ে আবার সংকুচিত করুন
বিদ্যমান Flate স্ট্রিমগুলোর সংকোচন খুলে আবার সংকুচিত করে। এতে ফাইল লিখতে বেশি সময় লাগতে পারে।
--compression-level=9সংকোচনের স্তর
Flate-এর জন্য ডকুমেন্টেশনে বর্ণিত 1 থেকে 9 সীমার সর্বোচ্চ zlib স্তর বেছে নেয়। উচ্চতর স্তরে বেশি সময় লাগে। এই মানের সঙ্গে JPEG-এর মানের কোনো সম্পর্ক নেই।
"optimiert-qpdf.pdf"আউটপুট ফাইল
নতুন ফাইলের নাম। যাচাইয়ের দুটি কমান্ডে এটিই ইনপুট।

নতুন ফাইল ছোট হয়েছে কি না, তা কেবল বাইটসংখ্যা তুলনা করলেই বোঝা যাবে। আউটপুটের জন্য আলাদা নাম দিলেও একই নামের কোনো বিদ্যমান ফাইলের ওপর লেখা পড়তে পারে। তাই আগে ব্যবহার করা হয়নি এমন নাম বেছে নিন। ডিজিটাল স্বাক্ষর বৈধ থাকবে কি না, এই কমান্ড তার নিশ্চয়তা দেয় না।

নির্দেশিকার সংশ্লিষ্ট অংশ

pdfwrite দিয়ে PDF নতুন করে তৈরি করুন

Ghostscript PDF পড়ে প্রতিটি পৃষ্ঠার অঙ্কন নির্দেশনা থেকে নতুন ফাইল তৈরি করে; এখানে /ebook পূর্বনির্ধারিত সেটিং ব্যবহার করা হয়।

/ebook প্রিসেটসহ Ghostscript-এর উদাহরণ। এতে ছবির সূক্ষ্ম বিবরণ ও নথির কার্যকারিতা বদলাতে পারে।
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"

আপনি কোডের ঘরে সরাসরি কমান্ডটি নির্বাচন করেও অনুলিপি করতে পারেন।

কমান্ডের অংশগুলো
gsপ্রোগ্রাম
Ghostscript চালু করে।
-dSAFERপ্রবেশাধিকার নিয়ন্ত্রণ
ফাইল ও ডিভাইসে প্রবেশাধিকার সীমিত করে। 9.50 সংস্করণ থেকে এটি পূর্বনির্ধারিত ব্যবস্থা। এটি সামগ্রিক নিরাপত্তার নিশ্চয়তা নয়।
-dBATCHএরপর বন্ধ করুন
নির্দিষ্ট ফাইলগুলোর প্রক্রিয়াকরণ শেষ হলেই ইন্টারঅ্যাকটিভ মোডে যাওয়ার বদলে Ghostscript বন্ধ করে।
-dNOPAUSEবিরতি ছাড়া
প্রতিটি পৃষ্ঠার শেষে জিজ্ঞাসা করা ও বিরতি দেওয়া বন্ধ রাখে।
-sDEVICE=pdfwriteআউটপুট ডিভাইস
pdfwrite নির্বাচন করে, যা নতুন PDF তৈরি করে। লেখা ও ভেক্টর গ্রাফিক্স সাধারণত অক্ষুণ্ণ থাকে। পৃষ্ঠার দৃশ্যমান চিত্রের অংশ নয় এমন সবকিছু বদলে যেতে পারে।
-dPDFSETTINGS=/ebookপূর্বনির্ধারিত সেটিং
ছবির মাঝারি রেজোলিউশনসহ একগুচ্ছ পৃথক পরামিতি নির্ধারণ করে। নামটি একটি ব্যবহারের উদ্দেশ্য বোঝায়, মানের কোনো স্তর বা আকার কমার নিশ্চয়তা বোঝায় না।
-sOutputFile="optimiert-gs.pdf"আউটপুট ফাইল
নতুন ফাইলের নাম নির্ধারণ করে।
"original.pdf"ইনপুট ফাইল
যে PDF Ghostscript পড়ে।

পৃষ্ঠা দেখতে একই রকম হলেও ছবির সূক্ষ্ম বিবরণ ও নথির কার্যকারিতা বদলে যেতে পারে। নির্দিষ্ট কোনো আকার বা মানের নিশ্চয়তা নেই। সংরক্ষিত আউটপুট যাচাই করুন এবং আউটপুটের জন্য আগে ব্যবহার করা হয়নি এমন নাম বেছে নিন।

নির্দেশিকার সংশ্লিষ্ট অংশ

আউটপুটের কাঠামো যাচাই করুন

সংরক্ষিত আউটপুটের সিনট্যাক্স যাচাই করে। Ghostscript-এর ফলাফল যাচাই করতে ফাইলের নাম বদলে দিন।

সংরক্ষিত আউটপুটের সিনট্যাক্স যাচাই করে। Ghostscript-এর ফলাফলের জন্য ফাইলের নাম বদলে দিন।
qpdf "optimiert-qpdf.pdf" --check

আপনি কোডের ঘরে সরাসরি কমান্ডটি নির্বাচন করেও অনুলিপি করতে পারেন।

কমান্ডের অংশগুলো
qpdfপ্রোগ্রাম
QPDF কমান্ড লাইন প্রোগ্রাম চালু করে।
"optimiert-qpdf.pdf"যে ফাইল যাচাই করা হবে
QPDF কমান্ড থেকে পাওয়া ও আগে সংরক্ষণ করা আউটপুট।
--checkকাঠামো যাচাই করুন
কাঠামো, এনক্রিপশন, লিনিয়ারাইজেশন ও স্ট্রিমের এনকোডিং যাচাই করে।

রিটার্ন মান 0 ত্রুটিমুক্ত যাচাই বোঝায়, 2 ত্রুটি বোঝায়, 3 সতর্কতা বোঝায়। এই যাচাই কেবল ফাইলের কাঠামো নিয়ে। ফাইলটি ঠিকমতো দেখা যায় কি না, ফরম ও লিংক কাজ করে কি না বা এটি নিরাপদ কি না, তা এই যাচাই জানায় না।

নির্দেশিকার সংশ্লিষ্ট অংশ

পৃষ্ঠার সংখ্যা দেখান

সংরক্ষিত আউটপুটের পৃষ্ঠার সংখ্যা দেখায়। মূল ফাইলের নাম দিয়ে কমান্ডটি আবার চালান এবং দুটি সংখ্যা তুলনা করুন।

সংরক্ষিত আউটপুটের পৃষ্ঠাসংখ্যা দেখায়। মূল ফাইলের নাম দিয়ে কমান্ডটি আবার চালিয়ে তুলনা করুন।
qpdf "optimiert-qpdf.pdf" --show-npages

আপনি কোডের ঘরে সরাসরি কমান্ডটি নির্বাচন করেও অনুলিপি করতে পারেন।

কমান্ডের অংশগুলো
qpdfপ্রোগ্রাম
QPDF কমান্ড লাইন প্রোগ্রাম চালু করে।
"optimiert-qpdf.pdf"যে ফাইলের পৃষ্ঠা গোনা হবে
QPDF কমান্ড থেকে পাওয়া ও আগে সংরক্ষণ করা আউটপুট।
--show-npagesপৃষ্ঠা গুনুন
নির্দিষ্ট ফাইলের পৃষ্ঠার সংখ্যা দেখায়।

পৃষ্ঠার সংখ্যা একই হলেই বিষয়বস্তু, ছবি ও কার্যকারিতা অপরিবর্তিত আছে, এমন নয়। পৃষ্ঠাগুলো নিজে দেখুন।

নির্দেশিকার সংশ্লিষ্ট অংশ

আপনি ক্লিক করলেই কেবল বোতামটি দেখানো কমান্ড ক্লিপবোর্ডে লেখে। এটি ক্লিপবোর্ড পড়ে না, কিছু সংরক্ষণ করে না এবং কিছু পাঠায় না।

এই পৃষ্ঠার কমান্ডগুলো QPDF ও Ghostscript-এর আনুষ্ঠানিক নির্দেশিকা থেকে নেওয়া। আমরা নিজেরা Ubuntu বা অন্য কোনো ডিস্ট্রিবিউশনে এগুলো চালাইনি, তাই এটি পরীক্ষিত Ubuntu নির্দেশিকা নয়। প্রথমে আপনার সিস্টেমে কোন সংস্করণগুলো ইনস্টল করা আছে, তা যাচাই করুন। আপনার ডিস্ট্রিবিউশনের প্যাকেজ বর্তমান অনলাইন নথির সংস্করণ থেকে আলাদা হতে পারে।

ইনস্টল করা সংস্করণ দেখুন

ইনস্টল করা QPDF-এর সংস্করণ দেখায়।
qpdf --version
Ghostscript-এর সংস্করণ ও উপলব্ধ আউটপুট ডিভাইসগুলো দেখায়।
gs -h

শেল কোনো কমান্ড খুঁজে না পাওয়ার বার্তা দিলে প্রোগ্রামটি সম্ভবত ইনস্টল করা নেই। প্যাকেজের নাম ও সেটি কীভাবে ইনস্টল করবেন, তা আপনার ডিস্ট্রিবিউশনের ওপর নির্ভর করে। ডিস্ট্রিবিউশন ও সংস্করণগুলো নোট করুন, যাতে পরে কোনো ফলাফল কীভাবে এসেছে তা বুঝতে পারেন।

প্রতিটি প্রচেষ্টার মৌলিক নিয়ম

  • মূল ফাইল অপরিবর্তিত রাখুন। ইনপুট ও আউটপুটের ফাইলের নাম সব সময় আলাদা হবে।
  • প্রতিটি আউটপুটের জন্য নতুন, আগে ব্যবহার না করা নাম দিন, যাতে আগের কোনো ফাইল ওভাররাইট না হয়।
  • পরবর্তী প্রতিটি প্রচেষ্টা মূল ফাইল দিয়ে শুরু করুন, আগের বারের ফলাফল দিয়ে নয়।
  • ইনপুট ফাইল সরাসরি প্রতিস্থাপন করে এমন বিকল্প বা স্ক্রিপ্ট ব্যবহার করবেন না।

QPDF: সংরক্ষণের কাঠামো অপ্টিমাইজ করুন

নথি থেকে নেওয়া QPDF কমান্ড: ছবির রেজোলিউশন না কমিয়ে বা JPEG হিসেবে নতুন করে এনকোড না করে কাঠামো আরও কম জায়গায় সংরক্ষণ করে।
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"

কমান্ডটি original.pdf পড়ে এবং optimiert-qpdf.pdf নামে নতুন ফাইল লেখে। বিকল্পগুলো অবজেক্টকে অবজেক্ট স্ট্রিমে একত্র করে, ডেটা স্ট্রিম সংকুচিত করে এবং Flate ডেটা সর্বোচ্চ স্তরে নতুন করে সংকুচিত করে। এতে ছবির রেজোলিউশন নতুন করে গণনা করা হয় না। অবজেক্ট স্ট্রিমের জন্য PDF 1.5 প্রয়োজন। কোনো প্রাপক স্পষ্টভাবে পুরোনো PDF সংস্করণ চাইলে এই কমান্ড সরাসরি উপযুক্ত নয়।

QPDF অতিরিক্তভাবে ছবি অপ্টিমাইজ করতে এবং নির্বাচিত গুণমান অনুযায়ী JPEG ডেটা নতুন করে এনকোড করতে পারে। JPEG-এর গুণমানের বিকল্পটি 12.1 সংস্করণ থেকে আছে। উভয়টিই ক্ষয়যুক্ত এবং আগে থেকে সংকুচিত JPEG ছবির গুণমান আরও কমাতে পারে। পরে ছবিগুলো খুঁটিয়ে যাচাই করার শর্তেই কেবল এটি ব্যবহার করুন।

Ghostscript: প্রিসেট দিয়ে PDF নতুন করে লিখুন

/ebook প্রিসেটসহ Ghostscript-এর উদাহরণ। এতে ছবির সূক্ষ্ম বিবরণ ও নথির কার্যকারিতা বদলাতে পারে।
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"

-sDEVICE=pdfwrite PDF আউটপুট নির্বাচন করে, -sOutputFile নতুন ফাইলের নাম নির্ধারণ করে এবং ইনপুট ফাইল থাকে শেষে। -dBATCH ও -dNOPAUSE Ghostscript-কে ইনপুটের জন্য অপেক্ষা করতে বাধা দেয়। Ghostscript-এর কমান্ডলাইন নির্দেশিকার উদাহরণেও -dSAFER এভাবেই আছে। /ebook প্রিসেট কেবল শুরু করার একটি জায়গা, সব ফাইলের জন্য সুপারিশ নয়।

Ghostscript-এর প্রিসেট সঠিকভাবে বুঝুন

-dPDFSETTINGS দিয়ে একসঙ্গে একগুচ্ছ পৃথক প্যারামিটার নির্বাচন করেন। প্রিসেটের নাম তার ব্যবহারের উদ্দেশ্য বোঝায়। এটি কোনো গুণমানের স্তর বা নির্দিষ্ট পরিমাণ আকারের সাশ্রয় বোঝায় না।

বর্তমান Ghostscript নির্দেশিকা (সংস্করণ 10.09.0) অনুযায়ী -dPDFSETTINGS-এর প্রিসেট। আপনার ইনস্টল করা সংস্করণ ভিন্ন হতে পারে।
প্রিসেটউদ্দিষ্ট ব্যবহাররঙিন ও গ্রেস্কেল ছবির রেজোলিউশন কমানো
/screenপর্দায় দেখা, কম রেজোলিউশনসক্রিয়। লক্ষ্যমান 72 dpi, কেবল এর ১.৫ গুণের বেশি রেজোলিউশনের ছবির জন্য।
/ebookমাঝারি রেজোলিউশনসক্রিয়। লক্ষ্যমান 150 dpi, কেবল এর ১.৫ গুণের বেশি রেজোলিউশনের ছবির জন্য।
/printerমুদ্রণডিফল্টভাবে সক্রিয় নয়
/prepressমুদ্রণের প্রস্তুতিডিফল্টভাবে সক্রিয় নয়। স্বয়ংক্রিয়ভাবে মূলের সবচেয়ে কাছাকাছি ফলাফলের বিকল্প নয়।
/defaultবিস্তৃত ব্যবহারডিফল্টভাবে সক্রিয় নয়

তাহলে /prepress কি সেরা গুণমান দেয়? না। নির্দেশিকায় স্পষ্টভাবে বলা আছে, /prepress মূলের সবচেয়ে কাছাকাছি ফলাফলের সেটিংস নয়। -dPDFSETTINGS ছাড়া ফলাফল মূলের আরও কাছাকাছি থাকতে পারে। /prepress সবচেয়ে ছোট ফাইলের নিশ্চয়তাও দেয় না।

/screen ও /ebook-এর লক্ষ্যমানের অর্থ এই নয় যে পরে প্রতিটি ছবির রেজোলিউশন ঠিক 72 বা 150 dpi হবে। নির্ধারিত সীমার নিচের ছবির রেজোলিউশন কমানো হয় না এবং আগের রেজোলিউশনই থাকে। তাই বলে সেগুলো সম্পূর্ণ অপরিবর্তিত থাকবেই এমন নয়, কারণ প্রিসেটের অন্যান্য প্যারামিটার, যেমন ছবি এনকোডিং বা রং-সংক্রান্ত প্যারামিটার, সেগুলো বদলাতে পারে। -r অপশনটি ছবির রেজোলিউশন কমানোর বিকল্প নয়। Ghostscript-কে বিকল্প হিসেবে কোনো অংশ রেন্ডার করতে হলেই কেবল এটি সেই রেন্ডারিংয়ের রেজোলিউশন নিয়ন্ত্রণ করে; এমবেড করা ছবি ছোট করে না। নির্দেশিকা অনুযায়ী, প্রিসেটের ওপর নির্ভর করার চেয়ে প্রয়োজন অনুযায়ী আলাদা প্যারামিটার নির্ধারণ করা প্রায়ই ভালো।

সব ফাইলে একটি প্রিসেট ব্যবহার করবেন না। লেখার নথি, ছবির ক্যাটালগ ও স্ক্যানে ফলাফল আলাদা হয়। স্ক্যানের ক্ষেত্রে স্ক্যান করার সময় থেকেই ব্যবস্থা নেওয়া ভালো। কীভাবে করবেন, তা স্ক্যান করা PDF ছোট করুন নির্দেশিকায় ব্যাখ্যা করা হয়েছে।

লেখা, লিংক, ফর্ম ও স্বাক্ষর যাচাই করুন

সংকোচনের পরে PDF দেখতে একই রকম হলেই প্রমাণ হয় না যে সংরক্ষিত সবকিছু অক্ষুণ্ণ আছে। Ghostscript ফাইল নতুন করে তৈরি করে। PDF অপ্টিমাইজেশন সম্পর্কে Ghostscript-এর ব্যাখ্যা অনুযায়ী, একই চেহারার আড়ালে নির্দেশনা ও মেটাডেটা বদলে যেতে পারে। QPDF ব্যবহারের পরেও আপনার গুরুত্বপূর্ণ কার্যকারিতাগুলো যাচাই করুন:

  • লেখা নির্বাচন ও কপি করুন এবং অনুসন্ধান করে দেখুন।
  • লিংক ও বুকমার্কে ক্লিক করুন।
  • ফাইলটি ফর্ম হলে ফর্মের ঘর পূরণ করে পরীক্ষামূলকভাবে সংরক্ষণ করুন।
  • প্রাপক শিরোনাম বা লেখকের মতো তথ্য ব্যবহার করলে সেগুলো যাচাই করুন।
  • PDF/A-এর মতো নির্দিষ্ট মান প্রয়োজন হলে তার জন্য নির্ধারিত টুল দিয়ে যাচাই করুন। এখানকার কোনো কমান্ডই সেই মান বজায় থাকার নিশ্চয়তা দেয় না।

ডিজিটাল স্বাক্ষরযুক্ত PDF

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

পাসওয়ার্ড সুরক্ষা বা সম্পাদনার নিষেধাজ্ঞা সরানো আকার কমানোর অংশ নয় এবং তার কোনো কমান্ড এখানে নেই। তার বদলে প্রেরকের কাছে উপযুক্ত সংস্করণ চান। এমন নথি ব্যবহারের আরও তথ্য স্বাক্ষর ও ফর্ম বুঝুন নির্দেশিকায় আছে।

ফলাফলের আকার তুলনা করুন এবং মূল ফাইল রাখুন

কোনো ত্রুটির বার্তা ছাড়া কমান্ড চলা শেষ হলেই ফলাফল সম্পর্কে কিছু নিশ্চিত হয় না। মূল ও আউটপুট ফাইলের সঠিক আকার বাইটে তুলনা করুন, শুধু MB-এ রাউন্ড করা মান নয়। কত শতাংশ আকারের সাশ্রয় হয়েছে, তা সংকোচনের হার ক্যালকুলেটর দিয়ে হিসাব করুন।

সিনট্যাক্স ও পৃষ্ঠাসংখ্যা যাচাই করুন

সংরক্ষিত আউটপুটের সিনট্যাক্স যাচাই করে। Ghostscript-এর ফলাফলের জন্য ফাইলের নাম বদলে দিন।
qpdf "optimiert-qpdf.pdf" --check

QPDF রিটার্ন মান 0 দিয়ে ত্রুটিমুক্ত যাচাই, 2 দিয়ে ত্রুটি এবং 3 দিয়ে সতর্কতা জানায়। এই যাচাই শুধু ফাইলের গঠন নিয়ে। ফর্ম, লিংক ও ছবি আগের মতো কাজ করে এবং দেখায় কি না, তা এটি জানায় না।

সংরক্ষিত আউটপুটের পৃষ্ঠাসংখ্যা দেখায়। মূল ফাইলের নাম দিয়ে কমান্ডটি আবার চালিয়ে তুলনা করুন।
qpdf "optimiert-qpdf.pdf" --show-npages

PDF ভিউয়ারে যাচাই করুন

  1. সংরক্ষিত আউটপুট ফাইল তার ফোল্ডার থেকে নতুন করে খুলুন।
  2. সব পৃষ্ঠা দেখুন এবং মূল ফাইলের সঙ্গে পৃষ্ঠার আকার ও অভিমুখ তুলনা করুন।
  3. বেশি বড় করে ছবি, ছোট অক্ষরের লেখা ও সূক্ষ্ম রেখা দেখুন।
  4. আগের অংশে বর্ণিতভাবে অনুসন্ধান, লিংক ও ফর্ম পরীক্ষা করুন।
  5. সম্ভব হলে দ্বিতীয় কোনো ভিউয়ারেও ফাইল খুলুন।

বড়, অপরিবর্তিত নাকি খালি?

Ghostscript PDF-এর আকার বাড়িয়েও দিতে পারে। ফাইলটি নতুন করে তৈরি ও ভিন্নভাবে এনকোড করা হয় এবং নতুন নির্দেশনার জন্য কখনো কখনো পুরোনোগুলোর চেয়ে বেশি জায়গা লাগে। ফাইল আগে থেকেই কম জায়গায় সংরক্ষিত হলে QPDF দিয়েও তেমন কমানো যায় না।

বড় বা সামান্য ছোট ফলাফলও বৈধ হতে পারে। সেটি বৈধ কি না, তা অন্য যেকোনো আউটপুটের মতো সংরক্ষিত ফাইলের একই যাচাইগুলো করেই বোঝা যায়, কারণ আকার একা ত্রুটি বা হারিয়ে যাওয়া কার্যকারিতা সম্পর্কে কিছু বলে না। শেষে বেশি উপযুক্ত ফাইলটি রাখুন; অনেক সময় সেটি মূল ফাইলই হয়। তবে খালি, পড়া যায় না এমন বা ক্ষতিগ্রস্ত আউটপুটের বিষয়টি আলাদা। সেটি ব্যর্থ প্রচেষ্টা, অত্যন্ত শক্তিশালী সংকোচন নয়। এই ফাইল পাঠাবেন না, টার্মিনালের বার্তাগুলো পড়ুন এবং মূল ফাইল ও নতুন আউটপুটের নাম দিয়ে আবার শুরু করুন।

প্রাপকের সীমার তুলনায় PDF এখনো বড় থাকলে পরবর্তী ধাপগুলো PDF ছোট হচ্ছে না নির্দেশিকায় পাবেন। নতুন সংস্করণ পৌঁছানো ও গৃহীত হওয়া পর্যন্ত যেকোনো অবস্থায় মূল ফাইল রেখে দিন।

গোপনীয়তা সেটিংস

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

প্রয়োজনীয় সেটিংস

আবশ্যক

আপনার পছন্দ ও রঙের থিম এই ব্রাউজারে সংরক্ষিত হয়। ঐচ্ছিক পরিষেবা ছাড়াও ডকুমেন্ট টুলগুলো ব্যবহার করা যায়।

নিষ্ক্রিয়

ব্যবহারের ঐচ্ছিক পরিমাপ। বর্তমানে নিষ্ক্রিয়: অনুমতি দিলে আপনার পছন্দ সংরক্ষিত হয়, তবে এই প্রিভিউতে কোনো বিশ্লেষণ পরিষেবা চালু হয় না।

নিষ্ক্রিয়

ঐচ্ছিক বিজ্ঞাপন। বর্তমানে নিষ্ক্রিয়: অনুমতি দিলে আপনার পছন্দ সংরক্ষিত হয়, তবে এই প্রিভিউতে কোনো বিজ্ঞাপন পরিষেবা চালু হয় না।

ঐচ্ছিক ব্যবহার বিশ্লেষণ ও বিজ্ঞাপন বন্ধ আছে।