মানের ক্ষতি ছাড়াই পিডিএফ থেকে জেপিজি; gscan2pdf


51

যখন আমি একটি পিডিএফ ফাইলকে গুচ্ছ JPG ফাইলগুলিতে রূপান্তর করি

convert -quality 100 file.pdf page_%04d.jpg

আমি প্রশংসনীয় মানের ক্ষতি আছে।

তবে আমি যদি নিম্নলিখিতটি করি তবে মান (কোনও লক্ষণীয়) ক্ষতি হারাবে না:

Gscan2pdf শুরু করুন, ফাইল-> আমদানি চয়ন করুন (এবং file.pdf চয়ন করুন)। তারপরে gscan2pdf এর অস্থায়ী ডিরেক্টরিতে যান। অনেকগুলি পিএনএম ফাইল রয়েছে (পিডিএফ-ফাইলের প্রতিটি পৃষ্ঠার জন্য একটি)। এখন আমি করি

  for file in *.pnm; do            
  convert $file $file.jpg done

ফলাফলের jpg- ফাইলগুলি মূল পিডিএফ (যা আমি চাই) হিসাবে একই মানের (মোটামুটি)।

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


আপনার প্রশ্নগুলিতে যা স্পষ্ট নয় তা হ'ল আপনি নিজের পিডিএফ-তে পাঠ্য এবং ভেক্টর গ্রাফিক্স সম্পর্কে কথা বলছেন বা আপনার এমবেডেড চিত্রগুলি নিষ্ক্রিয় করতে চাইছেন কিনা।
asoundmove

উত্তর:


92

আপনি "মানের ক্ষতি" বলতে কী বোঝায় তা পরিষ্কার নয়। এর অর্থ অনেকগুলি আলাদা জিনিস হতে পারে। আপনি উদাহরণস্বরূপ কিছু নমুনা পোস্ট করতে পারেন? সম্ভবত নিম্ন মানের এবং ভাল মানের সংস্করণগুলির বাইরে একই বিভাগটি কেটে নিন (আরও গুণমানের ক্ষতি এড়াতে পিএনজি হিসাবে)।

সম্ভবত আপনাকে -densityউচ্চতর ডিপিআইতে রূপান্তরটি ব্যবহার করতে হবে:

convert -density 300 file.pdf page_%04d.jpg

(আপনি প্রেন্ডেন্ড করতে পারেন -units PixelsPerInchবা -units PixelsPerCentimeterপ্রয়োজনে পড়তে পারেন। আমার কপি পিপিআই-তে ডিফল্ট।

আপডেট: আপনি উল্লেখ করেছেন যে, gscan2pdf(আপনি যেভাবে এটি ব্যবহার করছেন) এটি pdfimages( পপলার থেকে ) কেবল একটি মোড়ক । ইনপুট হিসাবে পিডিএফ pdfimagesদেওয়ার সময় একই কাজ করে না convert

convert পিডিএফ গ্রহণ করে, এটি কিছু রেজোলিউশনে উপস্থাপন করে এবং ফলাফলটি বিটম্যাপটিকে উত্স চিত্র হিসাবে ব্যবহার করে।

pdfimagesএম্বেড বিটম্যাপ চিত্রগুলির জন্য পিডিএফটি দেখে এবং প্রতিটি ফাইলকে রফতানি করে। এটি পিডিএফে কোনও পাঠ্য বা ভেক্টর অঙ্কন কমান্ডকে কেবল উপেক্ষা করে।

ফলস্বরূপ, যদি আপনার কাছে যা পিডিএফ থাকে যা বিটম্যাপগুলির একটি সিরিজ জুড়ে কেবল একটি মোড়ক, pdfimagesসেগুলি বের করার আরও ভাল কাজ করবে, কারণ এটি আপনাকে আসল আকারে কাঁচা তথ্য দেয়। আপনি সম্ভবত এই -jবিকল্পটিও ব্যবহার করতে চান pdfimages, কারণ একটি পিডিএফে কাঁচা জেপিজি ডেটা থাকতে পারে। ডিফল্টরূপে, pdfimagesসমস্ত কিছুই পিএনএম ফর্ম্যাটে রূপান্তর করে এবং জেপিজি> পিপিএম> জেপিগকে রূপান্তর করা একটি ক্ষয়ক্ষতিজনক প্রক্রিয়া।

সুতরাং চেষ্টা কর

pdfimages -j file.pdf page

convertআপনাকে .jpgপদক্ষেপ নিতে (পিডিএফটি কী বিটম্যাপের ফর্ম্যাটটি ব্যবহার করছিল তার উপর নির্ভর করে) আপনার এটি অনুসরণ করতে হবে বা নাও হতে পারে ।

আমি এই পিডিএফটিতে এই কমান্ডটি চেষ্টা করেছি যা আমি নিজেকে জেপিইজি চিত্রগুলির ক্রম থেকে তৈরি করেছিলাম। নিষ্কাশিত জেপিইজিগুলি উত্স চিত্রগুলির মতো বাইট-বাই-বাইট ছিল। আপনি এর চেয়ে উচ্চ মানের পাবেন না।


+1 আমি খুব আনন্দিত যে আমি আপনার দ্বারা অনুপ্রাণিত হয়ে আপনার একটি বাক্য ভুলভাবে ছড়িয়ে পড়া স্নোববারির কাছে জমা দিতে পারি নি এবং আসলে পিডিফাইমেসের চেষ্টা করেছি - সম্ভবত কয়েক মাসের মধ্যে আমি সবচেয়ে কার্যকর প্রোগ্রামটি ব্যবহার করেছি! আমি সবাইকে এটি চেষ্টা করতে উত্সাহিত করব!
ixtmixilix

@ixtmixilix, আমি কৌতুহলী। আপনি কী ভুল লিখেছেন, এবং কীভাবে?
সিজেএম

অপূর্ব সুন্দর! আমার দিন সমাধান। ধন্যবাদ!
Geppettvs D'Constanzo

convertবড় পিডিএফগুলির জন্যও অযৌক্তিক। উদাহরণস্বরূপ, 700 6-মেগাপিক্সেল পৃষ্ঠাগুলির একটি বই প্রক্রিয়া করতে 45 ​​গিগাবাইট মেমরি লাগল। এটি এর চেয়ে প্রায় হাজার গুণ বেশি সময় নিয়েছিল pdfimages
ক্যামিল গৌডেসুন

অন্যভাবে রাউন্ডের জন্য, চিত্রগুলিকে পিডিএফ রূপান্তর করুন বা আরও ভাল, চিত্রগুলি একটি পিডিএফ-তে আবরণ করুন, img2pdf ব্যবহার করুন, এখানে: gitlab.mister-muffin.de/josch/img2pdf (jpg এবং jpg2000 মোড়কে পিডিএফ) করুন।
এরিক

4

যেহেতু শিক্ষার্থীদের উত্তর বলেছে pdfimagesএটি একটি ভাল বিকল্প। আমার অভিজ্ঞতা থেকে gsএবং দুজনেই convertনিম্নমানের রফতানি করুন যদি আপনি সঠিক ডিপিআই নির্দিষ্ট করে থাকেন।

তবে পিডিএফের প্রতি পৃষ্ঠায় একাধিক স্তর যদি pdfimagesকাজ করে না এবং পৃথক চিত্র হিসাবে স্তরগুলি বের করে, সেক্ষেত্রে পৃষ্ঠাগুলি inskcapeরফতানি করার জন্য সবচেয়ে ভাল ব্যবহার করা।

এটি আমি ব্যবহার করি:

pdftk combined_to_do.pdf burst output pg_%04d.pdf
ls ./pg*.pdf | xargs -L1 -I {}  inkscape {} -z --export-dpi=300 --export-area-drawing --export-png={}.png

প্রথম কমান্ড সমস্ত পৃষ্ঠাগুলি বিভক্ত করে দ্বিতীয় কমান্ড পৃষ্ঠায় পিএনজি রূপান্তর করে। আপনি এগুলি পিএনজি রাখতে পারেন বা কেবল এটিকে জেপিগে রূপান্তর করতে পারেন

ls ./p*.png | xargs -L1 -I {} convert {}  -quality 100 -density 300 {}.jpg

তুলনায় pdfimages, gsএবং করে ImageMagick এর convertআমি খুঁজে inkscapeএর মানের সেরা রপ্তানি করুন।


3

@ সিজেএম থেকে প্রাপ্ত প্রতিক্রিয়াটি সঠিক, তবে আপনি যদি জিইউআই পছন্দ করেন এবং সমস্ত পিডিএফ পৃষ্ঠাগুলি রেন্ডার করতে না চান তবে কিছু চিত্র পেতে গিম্প ব্যবহার করুন।

জিম্প একটি পিডিএফ খুলুন আপনি সমস্ত পৃষ্ঠার রেন্ডার সহ একটি আমদানি উইন্ডো পাবেন। আপনি যে পৃষ্ঠাটি চান তা চয়ন করুন এবং রেজোলিউশন 600 পিক্স / ইঞ্চি সেট করুন (আমি অনেক ক্ষেত্রে 300 খুব বেশি তীক্ষ্ণ পেয়েছি)। "ফাইল / এক্সপোর্ট" দিয়ে আপনি যে ফর্ম্যাটটি চান সেটি সংরক্ষণ করুন

যাইহোক, কমান্ড লাইন থেকে কাঙ্ক্ষিত পৃষ্ঠাগুলি নির্বাচন করতে একটি পতাকা থাকতে হবে।



2

আপনার পিডিএফটিতে পাঠ্য এবং ভেক্টর গ্রাফিক্স সম্পর্কে কথা বলছেন কিনা বা আপনার পিডিএফ এমবেডেড চিত্র রয়েছে কিনা তা আপনার প্রশ্নের মধ্যে পরিষ্কার নয়।

Gscan2pdf কী সম্পর্কে পড়েছি, আমার অনুমান যে আপনার পিডিএফ ফাইলগুলিতে (কেবল) এমবেডেড গ্রাফিক্স রয়েছে।

convertমূলত বিষয়বস্তুগুলি কী তা বিবেচনা করে আপনার পিডিএফকে "মুদ্রণ" করে। @ সিজেএমের পরামর্শ মতো, আপনি মুদ্রণের ঘনত্ব পরিবর্তন করতে চাইতে পারেন। এটি ভেক্টর গ্রাফিক্সের জন্য গুণমান বাড়ানোর একমাত্র উপায়।

পরিবর্তে, আপনি যা করতে চান তা এমবেড করা চিত্রগুলি বের করা (অনেকটা gscan2pdf এর মত মনে হচ্ছে), ঘনত্ব অনুমান করা সাধারণত মানের তুলনায় সাধারণত প্রয়োজনের তুলনায় গুণমান হ্রাস বা উচ্চতর মানের দিকে নিয়ে যায় (এবং ডিস্কের জায়গার অপচয়)। তারপরে উত্তরটি হ'ল পিডিএফ প্রিন্ট করার চেয়ে চিত্রটি বের করা। এই নিবন্ধটি দেখুন যা মূলত pdfimagesমানের ক্ষতি ছাড়াই চিত্রগুলি আহরণের জন্য ব্যবহারের পক্ষে সমর্থন করে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.