আমার কাছে কিছু স্ক্যান করা রঙিন পিডিএফ এবং গ্রেস্কেল পিডিএফ ছিল যা আমি বিডব্লিউতে রূপান্তর করতে চেয়েছিলাম। আমি ব্যবহার করার চেষ্টা gs
সঙ্গে এখানে তালিকাভুক্ত কোড , এবং ইমেজ মানের এখনও আছে পিডিএফ পাঠ্য সহ ভাল। তবে, সেই জিএস কোডটি কেবল গ্রেস্কেলে রূপান্তরিত হয় (প্রশ্নে জিজ্ঞাসা করা হয়েছে) এবং তারপরেও বড় আকারের ফাইল আকার রয়েছে। convert
সরাসরি ব্যবহার করা হলে খুব খারাপ ফলাফল দেয়।
আমি ভাল ইমেজ মানের এবং ছোট ফাইল আকার সঙ্গে bw পিডিএফস চেয়েছিলেন। আমার সলিউশন gs
পিডিএফ থেকে গ্রেস্কেল বিএমপি ফাইলগুলি এক্সট্র্যাক্ট convert
করতে, বিডাব্লু ও থ্রিফোল্ড ফাইল হিসাবে সেভ করার জন্য এই বিএমপিগুলিকে প্রসারিত করতে এবং তারপরে টিফ চিত্রগুলি সংকুচিত করতে এবং সেগুলি সমস্তকে একটি পিডিএফ- তে মিশ্রিত করতে img2pdf ব্যবহার করে।
আমি পিডিএফ থেকে সরাসরি ঝুঁকির দিকে যাওয়ার চেষ্টা করেছি তবে মানেরটি এক নয় তাই আমি প্রতিটি পৃষ্ঠাকে বিএমপি-তে সংরক্ষণ করি। এক পৃষ্ঠার পিডিএফ ফাইলের জন্য, convert
বিএমপি থেকে পিডিএফ পর্যন্ত দুর্দান্ত কাজ করে। উদাহরণ:
gs -sDEVICE=bmpgray -dNOPAUSE -dBATCH -r300x300 \
-sOutputFile=./pdf_image.bmp ./input.pdf
convert ./pdf_image.bmp -threshold 40% -compress zip ./bw_out.pdf
একাধিক পৃষ্ঠাগুলির জন্য একাধিক gs
পিডিএফ ফাইল এক সাথে মার্জ করতে পারে তবে img2pdf
জিএস এর চেয়ে ছোট ফাইলের আকার দেয়। টিফ ফাইলগুলি img2pdf ইনপুট হিসাবে সঙ্কুচিত করা আবশ্যক। বিপুল সংখ্যক পৃষ্ঠার জন্য মনে রাখবেন, মধ্যবর্তী বিএমপি এবং টিফ ফাইলগুলি আকারে বড় হতে থাকে। pdftk
বা joinpdf
তারা যদি সংকুচিত পিডিএফ ফাইলগুলি মার্জ করতে পারে তবে আরও ভাল convert
।
আমি আরও একটি মার্জিত সমাধান আছে ধারণা। যাইহোক, আমার পদ্ধতিটি খুব ভাল চিত্রের মানের এবং অনেক ছোট ফাইল আকারের ফলাফল তৈরি করে। বিডব্লিউ পিডিএফটিতে পাঠ্য ফিরে পেতে, আবার ওসিআর চালান।
আমার শেল স্ক্রিপ্টটি জিএস, রূপান্তর এবং ইমজি 2 পিডিএফ ব্যবহার করে। মাপদণ্ডগুলি (পৃষ্ঠাগুলির #, DPI স্ক্যান, থ্রেশহোল্ড%, ইত্যাদি) শুরুতে প্রয়োজন নেই, এবং রান তালিকাভুক্ত পরিবর্তন chmod +x ./pdf2bw.sh
। এখানে পূর্ণ স্ক্রিপ্ট (pdf2bw.sh):
#!/bin/bash
num_pages=12
dpi_res=300
input_pdf_name=color_or_grayscale.pdf
bw_threshold=40%
output_pdf_name=out_bw.pdf
#-------------------------------------------------------------------------
gs -sDEVICE=bmpgray -dNOPAUSE -dBATCH -q -r$dpi_res \
-sOutputFile=./%d.bmp ./$input_pdf_name
#-------------------------------------------------------------------------
for file_num in `seq 1 $num_pages`
do
convert ./$file_num.bmp -threshold $bw_threshold \
./$file_num.tif
done
#-------------------------------------------------------------------------
input_files=""
for file_num in `seq 1 $num_pages`
do
input_files+="./$file_num.tif "
done
img2pdf -o ./$output_pdf_name --dpi $dpi_res $input_files
#-------------------------------------------------------------------------
# clean up bmp and tif files used in conversion
for file_num in `seq 1 $num_pages`
do
rm ./$file_num.bmp
rm ./$file_num.tif
done
scantailor