আমার কাছে শত শত পিডিএফ সমন্বিত একটি ফোল্ডার রয়েছে এবং আমি দ্রুততার সাথে প্রত্যেকের শেষ পৃষ্ঠাটি মুছে ফেলতে চাই। আমি কীভাবে আমার ম্যাককে এই কাজটি স্বয়ংক্রিয় করতে দিতে পারি? এটি করার জন্য আমার কি অতিরিক্ত সফ্টওয়্যার দরকার?
আমার কাছে শত শত পিডিএফ সমন্বিত একটি ফোল্ডার রয়েছে এবং আমি দ্রুততার সাথে প্রত্যেকের শেষ পৃষ্ঠাটি মুছে ফেলতে চাই। আমি কীভাবে আমার ম্যাককে এই কাজটি স্বয়ংক্রিয় করতে দিতে পারি? এটি করার জন্য আমার কি অতিরিক্ত সফ্টওয়্যার দরকার?
উত্তর:
আমি এটি সুসংহত পিডিএফ কমান্ড লাইন সরঞ্জাম সম্প্রদায়ের রিলিজ ব্যবহার করে করেছি ।
আপনি নিজের থেকে পরে সংকলন করতে প্রাক-নির্মিত সরঞ্জাম বা উত্স কোডটি ডাউনলোড করতে পারেন , তবে পরবর্তীটি সংকলনের সময় ওসিএএমএল ইনস্টল করা প্রয়োজন। সুতরাং প্রাক-নির্মিত সরঞ্জামগুলি যেতে সহজতম উপায়। ডাউনলোড করা ডিস্ট্রিবিউশন ফাইল, যেমন সিপিডিএফ -বাইনারিস- মাস্টার.জিপ , লিনাক্স, ওএস এক্স / ম্যাকোস এবং উইন্ডোজের জন্য বাইনারি থাকে এবং আকারটি 5 এমবি ডলার ।
একবার ডাউনলোড এবং নিষ্কাশিত (দুবার ক্লিক .zip ফাইল) আপনি, যেমন, কপি করুন চাই ~ / ডাউনলোড / cpdf-বাইনেরিতে-মাস্টার / ওএসএক্স-ইন্টেল / cpdf একটি অবস্থান যে সংজ্ঞায়িত করা হয়েছে ফাইল, PATH
এনভায়রনমেন্ট ভেরিয়েবল , যেমন /usr/local/bin/
করতে এটি টার্মিনালের কমান্ড লাইনে বিশ্বব্যাপী উপলব্ধ করুন। যদি তা না হয় PATH
তবে আপনাকে এক্সিকিউটেবলের জন্য পুরোপুরি যোগ্য প্যাথনামটি ব্যবহার করতে হবে cpdf
বা ./cpdf
এটি যদি বর্তমান কার্যনির্বাহী ডিরেক্টরিতে থাকে ( pwd
)। টার্মিনাল এ টাইপ echo $PATH
করুন PATH
।
সিনট্যাক্স যখন PDF ফাইল 3 বা আরো পৃষ্ঠা থাকে শেষ পৃষ্ঠা সরানোর জন্য:
cpdf in.pdf 1-~2 -o out.pdf
সিনট্যাক্স যখন PDF ফাইল 2 পৃষ্ঠা থাকে শেষ পৃষ্ঠা সরানোর জন্য:
cpdf in.pdf 1 -o out.pdf
কারণ cpdf
আসল ফাইলটি ( in.pdf ) পড়ে এবং একটি নতুন ফাইলে ( out.pdf ) লিখেছে out.pdf ফাইলের নামটি in.pdf ফাইলের মতো একই স্থানে সংরক্ষণ করা থাকলে বা এটি অন্য কোনও জায়গায় সংরক্ষণ করা প্রয়োজন different একই সঙ্গে in.pdf যেমন ফাইলের নাম out.pdf ফাইলের নাম, বা যাই হোক না কেন out.pdf ফাইলের নাম আপনি চান।
নীচে, আমি cpdf
পিডিএফ ফাইলের শেষ পৃষ্ঠাটি মুছে ফেলার জন্য দুটি বা তার বেশি পৃষ্ঠা রয়েছে বলে ধরে রেখে অটোমেশনের দুটি উদাহরণ দেখাব । এক একটি ব্যবহার Automator কর্মপ্রবাহ হিসেবে পরিষেবা উপলব্ধ ফাইন্ডারে উপর সার্ভিস কনটেক্সট মেনু এবং অন্যান্য bash
স্ক্রিপ্ট , টার্মিনাল ব্যবহার।
পরিষেবাদি প্রসঙ্গে মেনুতে ফাইন্ডারে একটি অটোমেটর পরিষেবা ওয়ার্কফ্লো উপলব্ধ:
Automator একটি নতুন তৈরি সেবা কর্মপ্রবাহ নীচে ছবিতে দেখানো সেটিংস ব্যবহার এবং কপি এবং পেস্ট করুন কোড ছবিটি নিচের রান শেল স্ক্রিপ্ট কর্ম এবং যেমন হিসাবে সংরক্ষণ করুন: পিডিএফ থেকে পাতা শেষ পাতা সরান
ব্যবহার করার জন্য পিডিএফ থেকে পাতা শেষ পাতা সরান , ইন ফাইন্ডারে আপনার কাছ থেকে শেষ পৃষ্ঠা মুছে ফেলার জন্য এবং তারপর নির্বাচন চান পিডিএফ ফাইল নির্বাচন পিডিএফ থেকে পাতা শেষ পাতা সরান থেকে কনটেক্সট মেনু মাধ্যমে ডান-ক্লিক করুন অথবা নিয়ন্ত্রণ-ক্লিক , বা থেকে ফাইন্ডারে > সার্ভিস > সরান পিডিএফ থেকে শেষ পৃষ্ঠা
for f in "$@"; do
# Get Page Count.
p="$(/usr/local/bin/cpdf -info "$f" | awk '/Pages:/{print $2}')"
# Get file extension.
ext="${f##*.}"
# Get filename without extension.
fn="${f%.*}"
# Rename original file to "filename (original).pdf".
# Use '-n' to not overwrite an existing file.
mv -n "$f" "${fn} (original).${ext}"
# If page count is greater than 2, set 'p' to '3' as any
# PDF with more than 2 pages the command will be the same.
if [[ $p -gt 2 ]]; then
p="3"
fi
case "$p" in
3)
# PDF file has 3 or more pages.
/usr/local/bin/cpdf "${fn} (original).${ext}" 1-~2 -o "$f"
;;
2)
# PDF file has 2 pages.
/usr/local/bin/cpdf "${fn} (original).${ext}" 1 -o "$f"
;;
1)
# PDF file has 1 page. Make a copy to the
# original name for consistency of output.
# Use '-n' to not overwrite an existing file.
cp -n "${fn} (original).${ext}" "$f"
;;
esac
# If you don't want to keep the original
# file, remove '#' from the next line.
# rm "${fn} (original).${ext}"
done
মনে রাখবেন যে, PATH
একটি পাস চালান শেল স্ক্রিপ্ট কর্ম মধ্যে Automator হয়, /usr/bin:/bin:/usr/sbin:/sbin
। সুতরাং উপরের কোডটি এক্সিকিউটেবলের জন্য পুরোপুরি যোগ্য প্যাথনামটি ব্যবহার করছে , যেখানে আমি এটি রেখেছি যাতে কেবলমাত্র তার নাম ব্যবহারের মাধ্যমে টার্মিনালে উপলব্ধ থাকতে পারে ।cpdf
/usr/local/bin/cpdf
cpdf
আরও মনে রাখবেন যে আপনি যদি মূল ফাইলগুলি রাখতে চান না, তবে কোডের শেষ লাইনের ঠিক উপরে কমান্ডটি আপত্তিহীন ( #
সামনে থেকে সরিয়ে ফেলুন ) করুন ।# rm "${fn} (original).${ext}"
done
হিসেবে bash
স্ক্রিপ্ট টার্মিনাল ব্যবহার করার জন্য:
নিম্নলিখিত পদ্ধতিতে bash
স্ক্রিপ্ট তৈরি করুন :
টার্মিনালে:
touch rlpfpdf
open rlpfpdf
অনুলিপি কোড ব্লক , দিয়ে শুরু #!/bin/bash
, খোলা নীচে rlpfpdf
ডকুমেন্ট এবং তারপর সংরক্ষণ করুন।
টার্মিনালে ফিরে:
করুন স্ক্রিপ্ট এক্সিকিউটেবল:
chmod u+x rlpfpdf
এখন rlpfpdf
স্ক্রিপ্টটি সরান , যেমন:/usr/local/bin/
sudo mv rlpfpdf /usr/local/bin/
তারপরে আপনি ডিরেক্টরিটি cd ...
এমন একটি ডিরেক্টরিতে পরিবর্তন করতে পারেন যার পিডিএফ ফাইল রয়েছে যা আপনি শেষ পৃষ্ঠাটি মুছতে চান এবং তারপরে কেবল টাইপ করে rlpfpdf
টিপুন enter।
আসল ফাইলগুলি " ফাইলের নাম (মূল) .পিডিএফ " এ সরানো হবে এবং নতুন তৈরি পিডিএফ ফাইলটি শেষ পৃষ্ঠাটি সান করেছে, যদি 2 বা ততোধিক পৃষ্ঠা হয় তবে আসল filename.pdf
নামটি থাকবে।
#!/bin/bash
for f in *.pdf *.PDF; do
if [[ -f $f ]]; then
# Get Page Count.
p="$(cpdf -info "$f" | awk '/Pages:/{print $2}')"
# Get file extension.
ext="${f##*.}"
# Get filename without extension.
fn="${f%.*}"
# Rename original file to "filename (original).pdf".
# Use '-n' to not overwrite an existing file.
mv -n "$f" "${fn} (original).${ext}"
# If page count is greater than 2, set 'p' to '3' as any
# PDF with more than 2 pages the command will be the same.
if [[ $p -gt 2 ]]; then
p="3"
fi
case "$p" in
3)
# PDF file has 3 or more pages.
cpdf "${fn} (original).${ext}" 1-~2 -o "$f"
;;
2)
# PDF file has 2 pages.
cpdf "${fn} (original).${ext}" 1 -o "$f"
;;
1)
# PDF file has 1 page. Make a copy to the
# original name for consistency of output.
# Use '-n' to not overwrite an existing file.
cp -n "${fn} (original).${ext}" "$f"
;;
esac
# If you don't want to keep the original
# file, remove '#' from the next line.
# rm "${fn} (original).${ext}"
fi
done
নোট করুন যে উপরের কোডটি cpdf
এক্সিকিউটেবলকে পরিবেশের ভেরিয়েবলের মধ্যে থাকা একটি ডিরেক্টরিতে অনুমান করে :PATH
/usr/local/bin/
আরও মনে রাখবেন যে আপনি যদি মূল ফাইলগুলি রাখতে চান না, তবে কোডের শেষ লাইনের ঠিক উপরে কমান্ডটি আপত্তিহীন ( #
সামনে থেকে সরিয়ে ফেলুন ) করুন ।# rm "${fn} (original).${ext}"
done
cpdf in.pdf 2-end out.pdf
2-end
1-~2
1
cpdf in.pdf 1-~2 -o out.pdf
এখন 2-পৃষ্ঠার ডকুমেন্টগুলির জন্যও কাজ করে। আপনি যদি সেই অনুযায়ী আপনার উত্তরটি সম্পাদনা করতে পারেন তবে দুর্দান্ত হবে। এটি স্ক্রিপ্টকে অনেক সহজ করবে।