কীভাবে প্রোগ্রামে পিডিএফ ফাইলে চিত্রের ডিপিআই নির্ধারণ করবেন?


13

আমার কিছু পিডিএফ ফাইল রয়েছে যা আমি টিআইএফএফ ফাইলগুলিতে convert(ওসিআরের মাধ্যমে tesseract) ব্যবহার করে আলাদা করতে চাই । এটি এখন পর্যন্ত দুর্দান্ত কাজ করছে - পুরো প্রক্রিয়াটি স্বয়ংক্রিয় করার জন্য, আমাকে convertআউটপুটটির ডিপিআই সেট করতে হবে । এই মুহূর্তে, আমি এটির মতো একটি কমান্ড ব্যবহার করছি:

convert -density 300 myFile.pdf -depth 8 -background white output-%04d.tiff

... যা পিডিএফ ফাইলগুলিকে 300 ডিপিআইতে আউটপুট করে। তবে কিছু পিডিএফ ফাইলের নিম্ন ডিপিআই রয়েছে (যেমন 150 ডিপিআই) যার অর্থ আমি 300 ডিপিআই এর মাধ্যমে সেগুলি আউটপুট দিতে চাই না convert- এটি কোনও অতিরিক্ত তথ্য ছাড়াই অতিরিক্ত বড় টিআইএফএফ ফাইল তৈরি করে।

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

উত্তর:


9

প্রধান উত্তর

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

আরও অনেক গবেষণার পরে, আমি দেখতে পেলাম যে আপনি নীচের মতো pdfimages(প্যাকেজ পপলার-ব্যবহারগুলি থেকে ) ব্যবহার করতে পারেন :

$ pdfimages -list deptest.pdf
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image     100   100  gray    1   1  image  no         9  0    53    53  169B  14%
   2     1 image     100   100  gray    1   1  ccitt  no   [inline]      53    53  698B  56%

উপরের তালিকাতে x-ppiএবং লক্ষ্য করুন y-ppi। এটি পিডিএফে চিত্রগুলি সংরক্ষণ করা ফর্ম্যাটটিও তালিকাভুক্ত করে, যা শীতল (কখনও কখনও এটি জেবিআইজি 2, কখনও কখনও জেপিইজি 2000 ইত্যাদি))

দ্রষ্টব্য: deptest.pdfউপরে ব্যবহৃত ফাইলটি সংগ্রহস্থল থেকেpdfsizeopt পাওয়া যায়

আসল কর্ম

এর পরে, আপনি কেবল pdfimagesনিজের সাথে চিত্রগুলি বের করতে পারেন বা আপনার পছন্দ মতো অনেকগুলি ফর্ম্যাটে পুরো পৃষ্ঠাগুলি রেন্ডার করতে pdftoppm(এছাড়াও থেকে poppler-utils) ব্যবহার করতে পারেন (উদাহরণস্বরূপ, টিফ, সাথে স্ক্যান করার জন্য tesseract)।

আপনি নিম্নলিখিতগুলির মতো কিছু ব্যবহার করতে পারেন (ধরে নিবেন যে আপনি একটি ডিরেক্টরি তৈরি করেছেন imgsযেখানে আপনি নিজের চিত্রগুলি রাখবেন):

pdfimages -png Faraway-PRA.pdf imgs/prefix

ফাইলগুলি ডিরেক্টরিতে imgsনামের সাথে শুরু করে তৈরি করা হবে prefix, যেমন:

$ ls 
prefix-000.png  prefix-047.png  prefix-094.png  prefix-141.png
prefix-001.png  prefix-048.png  prefix-095.png  prefix-142.png
prefix-002.png  prefix-049.png  prefix-096.png  prefix-143.png
prefix-003.png  prefix-050.png  prefix-097.png  prefix-144.png
(...)

তারপরে আপনি যে কোনও শল্য চিকিত্সা করতে পারেন যা আপনি দেখতে পছন্দ করেন এমন সরঞ্জামগুলির সাথে উপযুক্ত scantailorবা যা পছন্দ করতে পারেন।

আরও সরাসরি উত্তর

আপনি যদি কেবল একটি পিডিএফ ফাইলকে ওসিআর করতে চান তবে আপনি এমন একটি প্রোগ্রাম ব্যবহার করতে পারেন যা ভালভাবে বজায় রাখা এবং ইতিমধ্যে প্যাকেজযুক্ত, ocrmypdf


মনে রাখবেন যে x-ppi(ডিপিআই-তে এক্স রেজোলিউশন) এবং y-ppi(ডিপিআই-তে রেজাল্ট রেজোলিউশন) pdfimagesউদাহরণস্বরূপ উবুন্টু 14.04 এর সাথে আসা পুরানো সংস্করণগুলিতে প্রদর্শিত হয়নি । উবুন্টু 18.04 এ যা পাওয়া যায় তার মধ্যে এই মানগুলি অন্তর্ভুক্ত থাকে। pdfimages -vআমার উবুন্টু 18.04 মেশিন শো আমি সংস্করণ 0.62.0, যা আছে না এই বৈশিষ্ট্যগুলি আছে।
গ্যাব্রিয়েল স্ট্যাপলস

@ গ্যাব্রিয়েল স্ট্যাপলস, এটি নির্দেশ করার জন্য ধন্যবাদ। আমি ভেবেছিলাম যে উবুন্টু 14.04 ইতিমধ্যে EOL'ed ছিল, তবে এটি "কেবল" এর স্ট্যান্ডার্ড সাপোর্টটি
রিলিজেস

4

আমার এই তথ্যের প্রয়োজন ছিল এবং সবেমাত্র এটি এখানে পেয়েছি:

http://www.wizards-toolkit.org/discourse-server/viewtopic.php?t=16110

এই কৌশলটি ইমেজম্যাগিকও ব্যবহার করে:

identify -format "%w x %h %x x %y" DAT_1.tif

আউটপুটটি চিত্রের আকার এবং ডিপিআই:

2480 x 3507 300 x 300

ডিরেক্টরিতে সমস্ত পিডিএফ প্রসেস করতে আপনি * .pdf করতে চান ক্ষেত্রে আমি বিন্যাসের শেষে একটি নতুন লাইন যুক্ত করব। "% wx% h% xx% y \ n"
হেটোরু হ্যানসৌ

2

আমি নিম্নলিখিত কমান্ডটি ব্যবহার করি:

convert MyPDF.pdf -print "Size: %wx%h\n" /dev/null

এবং এটি ফিরে আসে:

Size: 380x380

ধন্যবাদ - এটি পিডিএফ চিত্রগুলির আকার পায় (আপনার ক্ষেত্রে, এটি একটি বর্গক্ষেত্র হিসাবে 380x380)। ডিপিআই আলাদা। আমার ফাইলে যে আমি এই কমান্ডটি সবে চালিয়েছি, আমি পেয়েছি Size: 595x842যদিও ডিপিআই (অ্যাক্রোব্যাট চেক করা) প্রায় 130 এর কাছাকাছি রয়েছে
জেসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.