লিনাক্সে দ্রুত পিডিএফ থেকে জেপিজি রূপান্তর চেয়েছিল [বন্ধ]


11

আমি বর্তমানে পিডিএফগুলিকে জেপিজি রাস্টার চিত্রগুলিতে রূপান্তর করতে ইমেজম্যাগিক ব্যবহার করছি। এটি বেদনাদায়কভাবে ধীর এবং প্রচুর স্মৃতি ব্যবহার করে।

আমি যে আদেশটি ব্যবহার করেছি তা হ'ল:

convert -geometry 1024x768 -density 200 -colorspace RGB foo.pdf bar%02d.jpg

আমি অনুমান করি যে এটি আস্তে কারণ এটি ঘোস্টস্ক্রিপ্ট ব্যবহার করে। তবে লিনাক্স বাক্সে এটি করার একটি আরও দ্রুত উপায় থাকতে হবে।

কেউ কি আরও ভাল সমাধান খুঁজে পেয়েছে?


কত সময়, কত স্মৃতি?
জোড়াদেচে

উত্তর:


18

ঘোস্টস্ক্রিপ্ট সরাসরি ব্যবহার করা (ইমেজম্যাগিকের convertআদেশের পরিবর্তে , যা ঘোস্টস্ক্রিপ্টকে অপ্রত্যক্ষভাবে ডাকে) ব্যবহার করা সত্যই দ্রুততর is এবং এটি আপনাকে রূপান্তর পরামিতি সম্পর্কে আরও নিয়ন্ত্রণ দেয়। চেষ্টা

gs \
   -sDEVICE=jpeg   \
   -o bar_%03d.jpg \
   -dJPEGQ=95      \
   -r600x600       \
   -g4960x7016     \
   foo.pdf

কোথায়

  • -o: আউটপুট পাথ + ফাইলের নাম নির্ধারণ করে (এবং এর ব্যবহার সংরক্ষণ করে -dBATCH -dNOPAUSE)
  • -dJPEGQ: জেপিজি মানের 95% নির্ধারণ করে
  • -r: রেজোলিউশন 600dpi এ সেট করে
  • -g: 4960x7016px এ চিত্রের আকার সেট করে
  • -sDEVICE: জেপিইজি হিসাবে আউটপুট সেট করে

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

gs \
   -sDEVICE=jpeg   \
   -o bar_%03d_200dpi_q80.jpg \
   -dJPEGQ=80      \
   -r200x200       \
   -g1653x2339     \
   foo.pdf

অথবা এমনকি

gs \
   -sDEVICE=jpeg   \
   -o bar_%03d_default_a4.jpg \
   -sPAPERSIZE=a4 \
   foo.pdf

(যা 72 ডিপিআই রেজোলিউশন দেয়, বেশিরভাগ স্ক্রিন এবং বেশিরভাগ ওয়েব অ্যাপ্লিকেশনগুলির জন্য এটি যথেষ্ট ভাল)।


1
তুমি ঠিক বলছো. আমি সত্যিই কিছু করিনি যে ইমেজম্যাগিক হ'ল বাধা। তবে আমার সম্ভবত চেষ্টা করা উচিত ছিল। মহান উদাহরণের জন্য ধন্যবাদ!
mat3001

10

বিটিডব্লিউ, ইমেজম্যাগিক এত ধীর হওয়ার অন্যতম কারণ হ'ল এটি দু'বার ঘোস্টস্ক্রিপ্ট বলে। এটি একসাথে পিডিএফ => পিএনজি রূপান্তর করে না, তবে ২ টি পৃথক পদক্ষেপ ব্যবহার করে:

  • এটি প্রথমে PDF => PostScriptরূপান্তরকরণের জন্য ঘোস্টস্ক্রিপ্ট ব্যবহার করে;
  • এটি PostScript => PNGরূপান্তরকরণের জন্য ঘোস্টস্ক্রিপ্ট ব্যবহার করে।

আপনি ইমেজম্যাগিকের "প্রতিনিধি" (ইমেজম্যাগিক যেমন ঘোস্টস্ক্রিপ্টের মতো বহিরাগত প্রোগ্রামগুলি) লিখে সেটিংসের মাধ্যমে বিস্তারিত সেটিংস সম্পর্কে জানতে পারেন

convert -list delegate

(আমার সিস্টেমে এটি 32 টি পৃথক কমান্ডের একটি তালিকা)) এখন পিএনজিতে রূপান্তর করতে কোন আদেশগুলি ব্যবহৃত হয় তা দেখার জন্য এটি ব্যবহার করুন:

convert -list delegate | grep -i png

ঠিক আছে, এটি লিনাক্সের জন্য ছিল। আপনি যদি উইন্ডোতে থাকেন তবে এটি ব্যবহার করে দেখুন:

convert -list delegate | findstr /i png

আপনি আবিষ্কার করতে পারবেন যে আইএম কেবল পিএস বা ইপিএস ইনপুট থেকে পিএনজি উত্পাদন করে। আইএম আপনার পিডিএফ থেকে কীভাবে (ই) পিএস পাবেন? সহজ:

convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF

আহ! এটি পিডিএফ => পিএস রূপান্তর করতে ঘোস্টস্ক্রিপ্ট ব্যবহার করে, তারপরে পিএস => পিএনজি রূপান্তর করতে আবার ঘোস্টস্ক্রিপ্ট ব্যবহার করে। কাজ করে তবে সবচেয়ে কার্যকর উপায় নয় যদি আপনি জানেন যে ঘোস্ট স্ক্রিপ্ট একসাথে পিডিএফ => পিএনজি করতে পারে। এবং দ্রুত। এবং অনেক ভাল মানের।

ঘোস্ট স্ক্রিপ্টের প্রতিনিধিটির মাধ্যমে আইএমএল পিডিএফ রূপান্তর পরিচালনা করার বিষয়ে আপনার প্রথমে এবং সর্বাগ্রে দুটি জিনিস জানা উচিত:

  1. ডিফল্টরূপে, আপনি যদি কোনও অতিরিক্ত প্যারামিটার না দেন তবে ঘোস্ট স্ক্রিপ্ট 72dpi রেজোলিউশন সহ চিত্রগুলি আউটপুট দেবে। সে কারণেই কখনও কখনও এখানকার লোকেরা প্যারামিটার -density 600হিসাবে যুক্ত করার পরামর্শ দেয় convertযা ঘোস্টস্ক্রিপ্টকে তার চিত্র আউটপুটটির জন্য 600 ডিপিআই রেজোলিউশন ব্যবহার করতে বলে।
  2. প্রথম রূপান্তর করতে আইএম এর প্রদত্ত দু'বার ঘোস্টস্ক্রিপ্ট কল করা PDF => PSএবং তারপরে PS => PNGএকটি সত্য ভুল। কারণ আপনি কখনই জিতেন না এবং কঠোরভাবে প্রথম পদক্ষেপে গুণমান বজায় রাখেন না তবে বেশিরভাগ ক্ষেত্রে কিছুটা আলগা হন। কারণ:
    • পিডিএফ ট্রান্সপোর্টেরিয়েন্সগুলি পরিচালনা করতে পারে, যা পোস্টস্ক্রিপ্ট করতে পারে না।
    • পিডিএফ ট্রু টাইপ ফন্ট এম্বেড করতে পারে, যা পোস্টস্ক্রিপ্ট করতে পারে না। etc.pp.
      (বিপরীত দিকে রূপান্তর, এর জন্য এটি এতটা PS => PDFসমালোচনামূলক নয় ....)

এ কারণেই আমি আপনাকে সরাসরি ঘোস্টস্ক্রিপ্ট ব্যবহার করে আপনার পিডিএফগুলি পিএনজি (বা জেপিজি) এ রূপান্তরিত করার পরামর্শ দিয়েছিলাম। এবং ঘোস্টস্ক্রিপ্টের সবচেয়ে সাম্প্রতিক সংস্করণ 8.71 (শীঘ্রই প্রকাশ করা হবে: 9.00) ব্যবহার করুন ...


6

pdftoppmপপলার প্যাকেজ থেকে প্রোগ্রামটিও জেপিইজি তৈরি করতে সক্ষম এবং আমার জন্য এটি gsউপরে বর্ণিত হিসাবে প্রায় দ্বিগুণ দ্রুত :

pdftoppm -jpeg -r 300 foo.pdf foo.jpg

কি দুর্দান্ত পরামর্শ। এই উত্তরটির জন্য ধন্যবাদ পিডিফটপপিএম-এ স্যুইচ করা একটি বড়, অ্যাপ-ক্রাশিং বাগটি ঠিক করা হয়েছে - এর আগে কখনই জানত না!
ড্যানম্যাকটো

আপনি, স্যার,
এটির

2
এটি জিএস
hiিলাস বেলহডজে

6

আমার অভিজ্ঞতায়, মুপিডিএফ ঘোস্টসক্রিপ্টের চেয়ে অনেক দ্রুত। জিএসে ক্রুফটটি ছাড়াই এটি অনেক নতুন প্রকল্প। এটি আপনার ইউজকেসগুলির জন্য ফিট করে কিনা চেষ্টা করুন!

mudraw -w 1024 -h 768 -r 200 -c rgb -o bar%d.png foo.pdf

আপনার যদি পুরাতন লিনাক্স বিতরণ এবং সংগ্রহস্থল থেকে এমপিডিএফ-সরঞ্জাম ইনস্টল করা থাকে তবে mudrawএখনও ডাকা হতে পারেpdfdraw

তারপরে আপনাকে উদাহরণস্বরূপ চিত্রম্যাগিক ব্যবহার করে png কে jpeg এ রূপান্তর করতে হবে। তবে এটি ঘোস্টস্ক্রিপ্টের চেয়ে আরও দ্রুত হবে।


2
আমার পরীক্ষায় MuPDF- র পিডিএজে পিএনজি রূপান্তর ঘোস্টস্ক্রিপ্টের চেয়ে প্রায় 5-6 গুণ বেশি গতিযুক্ত। সমাধানের জন্য আপনাকে ধন্যবাদ!
দিমিত্রি আকিনিন

1
এটি অবিশ্বাস্যভাবে দরকারী। এটি কয়েক সেকেন্ড সময় নেয় যেখানে ঘোস্টস্রিপ্ট কয়েক মিনিট সময় নিতে পারে, এবং কমান্ড লাইনটি একটি বাতাস! এটি আমার নজরে আনার জন্য আপনাকে অনেক ধন্যবাদ!
likeitlikeit
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.