একাধিক চিত্র ফাইলগুলিকে জেপিগ থেকে পিডিএফ ফর্ম্যাটে রূপান্তর করা


50

আমি জেপিগ থেকে কিছু ফাইল পিডিএফ রূপান্তর করতে চাই। আমি নিম্নলিখিত কমান্ড ব্যবহার করছি।

$ convert image1.jpg image1.pdf 

তবে আমার 100 টি চিত্র রয়েছে। আমি কীভাবে তাদের সমস্তকে পিডিএফ-তে রূপান্তর করব?

আমি চেষ্টা করেছিলাম

$ convert image*.jpg image*.pdf 

এটি কাজ করে না।


উত্তর:


62

ব্যাশে:

for f in *.jpg; do
  convert ./"$f" ./"${f%.jpg}.pdf"
done

1
কোনও ধরণের বিশেষ কারণ আপনি কেন "./" রূপান্তরিত করতে চান? এটি কি একটি সাধারণ ভাল অনুশীলন?
রাহমু

4
@ রহমু: হ্যাঁ, এটি একটি ভাল অনুশীলন, কারণ ফাইল নাম দিয়ে -সমস্যার শুরু হয় , অন্যথায়।
enzotib

3
এটি কাজ করে তবে mogrifyটাইপিং অনেক কম। আমার উত্তর দেখুন।
সিজেএম

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

@ অ্যাকলিচ: আপনার ডাউনটোটের জন্য আপনাকে ধন্যবাদ, তবে আপনি একটি ভুল বিবেচনা করেছেন, দেখুন কেন লুপের জন্য " তর্কটি খুব দীর্ঘ" ত্রুটি বাড়ায় না?
এনজোটিব

56

আপনি এর mogrifyজন্য কমান্ডটি ব্যবহার করতে পারেন । সাধারণত এটি ফাইলগুলিকে স্থানে পরিবর্তন করে তবে ফর্ম্যাট রূপান্তর করার সময় এটি একটি নতুন ফাইল লেখায় (নতুন ফর্ম্যাটের সাথে মেলে কেবলমাত্র এক্সটেনশন পরিবর্তন করে)। এভাবে:

mogrify -format pdf -- *.jpg

(এনজোটিবের মতো ./*.jpg, --কোনও অদ্ভুত ফাইলের নামগুলি সুইচ হিসাবে ব্যাখ্যা করা থেকে বাধা দেয় Most বেশিরভাগ কমান্ডগুলি --"এই মুহুর্তে বিকল্পগুলির সন্ধান বন্ধ করা" বোঝাতে স্বীকৃতি দেয়))


+1, আমার উত্তরটি কেবল বাশ সম্পর্কে ছিল, ইমেজম্যাগিক ভাল জানেন না।
enzotib

mogrifyপরিবর্তে ব্যবহার করার জন্য ভাল ধারণা convert। এটি 100 টি ফাইলের জন্য কাজ করবে তবে গ্লোববিং ব্যবহার *.jpgকরে হাজার হাজার ফাইল স্কেল হয় না; এটি একটি সাধারণ ও লাইনারের সাথেfind কমান্ডটি একত্রিত করে করা যেতে পারে ।
অ্যাকুলিচ

কীভাবে উভয় *.jpg এবং *.pngফাইলকে একক রূপান্তর করতে *.pdf? নোট করুন যে এগুলি নাম্বারযুক্ত ফাইল (যেমন, 1.jpg 2.png 3.png 4.jpg) এবং সেই আদেশটি পিডিএফ আউটপুটটিতে বজায় রাখা / সংরক্ষণ করা উচিত।
বাদামি

কর্মপরিকল্পনা হিসাবে: সকলকে এক ধাপে রূপান্তর *.jpgকরা *.png, এবং আপনার উত্তরের সমপরিমাণটি দ্বিতীয় ধাপে সম্পাদন করা ...
বাদামি


24

দ্রুত তবে অস্বাভাবিক বাক্য গঠন:

parallel convert '{} {.}.pdf' ::: *.jpg

সমান্তরালভাবে চলে ( https://www.gnu.org/software/parallel/ ব্যবহার করে )। আমি convertএখনও কোনও মাল্টি-থ্রেডিং লক্ষ্য করিনি, যা কার্যকর সমান্তরালাকে সীমাবদ্ধ করে। যদি এটি আপনার উদ্বেগ হয় তবে কোনও মাল্টি-থ্রেডিং না ঘটে তা নিশ্চিত করার জন্য কোনও পদ্ধতির জন্য নীচের মন্তব্যে দেখুন।


1
এই ভাবে জয় পূর্ণ। এটি স্বয়ংক্রিয়ভাবে মূল গণনা মূল্যায়ন করে এবং এটি অনেকগুলি কাজ চালায়!
meawoppl

1
এই পদ্ধতিটি সবচেয়ে দ্রুততম।
shivams

1
সমান্তরাল শক্তি, চিত্রাবলিকের সাথে সমান্তরাল একত্রিত করা পরাশক্তি। আমি পরাশক্তি পছন্দ করি
কাজিনকোকেইন

2
এখানে পার্টিতে কিছুটা দেরি হয়েছে তবে ইমেজম্যাগিকের নতুন (সম্ভবত এই উত্তরটি কখন লেখা হয়েছিল) সংস্করণগুলি বহু-থ্রেডযুক্ত, এবং সমান্তরালে চালিত হলে খারাপভাবে ইন্টারঅ্যাক্ট করবে। parallelপরিবেশের ভেরিয়েবল সেট করে এটি (যদি অ্যাপ্লিকেশন-স্তরের সমান্তরাল যেমন GNU এর সাথে ব্যবহার করে) অক্ষম করা যায় MAGICK_THREAD_LIMIT=1
zedediah49

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

16

https://gitlab.mister-muffin.de/josch/img2pdf

ইমেজম্যাগিক সম্পর্কিত সমস্ত প্রস্তাবিত সমাধানগুলিতে, জেপিজি ডেটা পুরোপুরি ডিকোড হয়ে যায় এবং পুনরায় এনকোড হয়। এর ফলে প্রজন্মের ক্ষতির পাশাপাশি কর্মক্ষমতা "দশ থেকে একশ" বারের চেয়েও খারাপ img2pdf

pip img2pdfআপনার নির্ভরতা (যেমন apt-get install python python-pil python-setuptools libjpeg-devবা yum install python python-pillow python-setuptools) থাকলে তা ইনস্টল করা যেতে পারে ।


3
সঠিক. আপনি পরীক্ষা করতে পারেন যে কোনও রাউন্ডট্রিপ যেমন জেপিইজি ফাইলকে পছন্দ মতো আদেশ দিয়ে পরিবর্তন করে convert some.jpg -format pdf -compress jpeg generated.pdf ; pdfimages -j generated.pdf generated.pdf ; diff -sq some.jpg generated.pdf-000.jpg। এই উত্তরটি আরও উচ্চতর দাবিদার। প্রকৃতপক্ষে, convertএখানে ব্যর্থ হয়, এ img2pdfজাতীয় পরীক্ষা পাস করে এমনকি আপনার প্রয়োজনীয়তার জন্য উত্পন্ন পিডিএফ ফাইনাইউন করার জন্য চিত্রের আকার, পৃষ্ঠার আকার ইত্যাদি সেট করার জন্য অনেকগুলি বিকল্প রয়েছে।
স্টাফেন গৌরিচন

3
img2pdfউবুন্টু 16.04 নিয়মিত সংগ্রহস্থলগুলিতে উপলব্ধ, pipসেখানে ম্যানুয়াল অপারেশনগুলির প্রয়োজন নেই এবং আপনি আপডেটের সুবিধা রাখেন।
স্টাফেন গরিখন

1
সেই সময় প্রশ্নটি জিজ্ঞাসা করা হয়েছিল (এবং উত্তর গৃহীত হয়েছে) img2pdf বিদ্যমান ছিল না। তবে আজকাল img2pdf স্পষ্টতই আরও ভাল উত্তর।
কি.মি.ক্যাপ্লান

13

এখানে একটি উপায় যা উপরোক্ত পরামর্শগুলির সেরাটিকে একটি সাধারণ, দক্ষ, শক্তিশালী কমান্ড লাইনে একত্রিত করেছে:

find /path/to/files -iname '*.jpg' -exec mogrify -format pdf {} +

এটি ফাইল নামগুলির সাথে সূক্ষ্মভাবে কাজ করে যা একটিতে শুরু হয় -বা স্পেস থাকে। -inameএর ক্ষেত্রে কেস-সংবেদনশীল সংস্করণ ব্যবহারটি নোট করুন -nameযাতে এটি .JPGঠিক পাশাপাশি কাজ করবে .jpg

এটি ওয়াইল্ডকার্ডের findসাথে শেল গ্লোবিংয়ের পরিবর্তে ফাইল তালিকা পেতে ব্যবহার করে *.jpgযার ফলে কিছু সিস্টেমে 'আর্গুমেন্টের তালিকা খুব দীর্ঘ' ত্রুটি হতে পারে । @ এনজোটিব একটি মন্তব্যে যেমন উল্লেখ করেছেন, তবুও লুপের জন্য গ্লোববিং ব্যবহারের আচরণ কমান্ডের যুক্তিগুলির চেয়ে আলাদা

এছাড়াও, findসাব-ডিরেক্টরিগুলি পরিচালনা করবে, যদিও শেল গ্লোববিং আপনার কাছে **/*jpgzsh এ পুনরাবৃত্ত গ্লোবিং সিনট্যাক্সের মতো শেল-নির্দিষ্ট বৈশিষ্ট্যগুলি না ঘটলে না হয়।

সম্পাদনা: আমি ভেবেছিলাম যে আমি আরও একটি দরকারী বৈশিষ্ট্য যুক্ত findকরব যা আমি প্রথমে রানের পরে পরিবর্তিত ফাইলগুলি রূপান্তর করার বিষয়ে @ ইলমারি কারনেনের একটি মন্তব্য পড়ে এবং কেবল প্রথম রানের পরে পরিবর্তিত ফাইলগুলিকে রূপান্তর করার বিষয়ে ভেবেছিলাম ।

প্রথম পাসে আপনি touchরূপান্তর শেষ হওয়ার পরে টাইমস্ট্যাম্প ফাইল করতে পারেন ।

find /path/to/files -iname '*.jpg' -exec mogrify -format pdf {} +; touch timestamp

তারপরে ফাইলগুলির সাবসেটটিতে পরিচালনা -newer timestampকরার জন্য findএক্সপ্রেশনটিতে যুক্ত করুন যার শেষ-সংশোধিত সময়টি টাইমস্ট্যাম্প ফাইলের চেয়ে নতুন। প্রতিটি রান করার পরে টাইমস্ট্যাম্প ফাইল আপডেট করা চালিয়ে যান।

find /path/to/files -iname '*.jpg' -newer timestamp -exec mogrify -format pdf {} +; touch timestamp

এটি কোনও মেকফাইলে অবলম্বন না করা সহজ উপায় (যদি না আপনি ইতিমধ্যে একটি ব্যবহার করছেন) এবং এটি findযখনই সম্ভব হয় তখন এটি কেন মূল্যবান তা অন্য একটি ভাল কারণ ... সংক্ষিপ্ত থাকা অবস্থায় এর বহুমুখী অভিব্যক্তি রয়েছে।


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

8

আপনি convertসরাসরি সঙ্গে এটি করতে পারেন । এটি কমান্ড লাইন প্রক্রিয়াজাতকরণ সম্পর্কে চিত্রম্যাগিক্স সাইটের নীচে পাওয়া যাবে ।

convert *.jpg +adjoin page-%d.pdf

4
বা convert *.jpg -adjoin output.pdfসম্মিলিত পিডিএফের জন্য
নিনজাগেকো

2
ইমেজম্যাগিক ব্যবহারের ফলে ফলাফল প্রজন্মের ক্ষতি এবং দুর্বল পারফরম্যান্সে আসে। এই পৃষ্ঠার অন্য কোথাও img2pdf এই সমস্যাগুলি এড়িয়ে চলে।
রবার্ট ফ্লেমিং

7

আমি অনুরূপ কিছু জন্য নিম্নলিখিত মেকফাইল ব্যবহার করেছি:

SVG = $(wildcard origs/*.svg)
PNG = $(patsubst origs/%.svg,%.png,$(SVG))

all: $(PNG)

%.png: origs/%.svg
    convert -resize "64x" $< $@


clean: 
    rm $(PNG)

এখন আমি কেবল চালাতে পারি makeএবং আমি আশেপাশে থাকা প্রতিটি এসভিজি ফাইলের জন্য পিএনজি ফাইল পাই।

সম্পাদন করা

অনুরোধ হিসাবে:

  • ওয়াইল্ডকার্ডস মূল / এস / এম / এস-এর সমস্ত এস-জি-এস-এর একটি তালিকা তৈরি করে
  • প্যাথসুবস্ট এই তালিকাটি নেয় এবং পিএনজি ফাইলের নামের একটি তালিকা তৈরি করে (বিভিন্ন ফোল্ডার এবং এক্সটেনশান। উদাহরণ: origs/foo.svgহয়ে ওঠে foo.png)
  • বিধি 1: all: $(PNG)সংজ্ঞা দেয়, লক্ষ্য "সমস্ত" সমস্ত পিএনজির উপর নির্ভর করে
  • বিধি 2: %.png: origs/%.svgসংজ্ঞায়িত করে the X.png ফাইলটি মূল / $ X.svg এর উপর নির্ভর করে এবং কল করে জেনারেট করা যায় convert ... $< $@
    • $< নির্ভরতা এবং এবং
    • $@ লক্ষ্য নাম
  • RUle 3: কেবল পরিষ্কার করার জন্য

2
এক-কর্মের জন্য, মেকফিল তৈরি করা সম্ভবত অতিমাত্রার চেয়ে বেশি, তবে আপনি যদি কখনও পিডিএফ কিছু পরিবর্তন করার পরিকল্পনা করেন makeতবে পুনরায় টাইপ করলে সেগুলি এবং কেবল সেগুলি, পিডিএফগুলি পরিবর্তিত হবে।
ইলমারি করোনেন

আপনার কি ওয়াইল্ডকার্ড, উত্স, প্যাটসবস্ট কী, কীভাবে $ এবং% এর ব্যাখ্যা এবং $ <? @ ব্যাখ্যা করা যায় তা বোঝাতে আপত্তি করবেন? বাকিগুলি বোঝা সহজ। :)
ব্যবহারকারী অজানা

makeযখন একটি সাধারণ ওয়ান-লাইনার কৌশলটি করবে তখন এটিকে একটু অতিরিক্ত জটিল বলে মনে হচ্ছে ।
অ্যাকুলিচ

@ ইলমারি কারোনেন আমি একমত যে একটি মেকফিল অতিমাত্রায় কাটছে, তবে পরবর্তী রানগুলিতে কেবলমাত্র পরিবর্তিত ফাইলগুলির উপসেটটি পুনরায় সরিয়ে নেওয়ার উপায় আছে তা ভাল। আমি আমার উত্তরটি এমনভাবে করার সাথে সাথে আপডেট করেছি findযাতে আপনাকে কোনও মেকফাইলে নিয়ে যেতে হবে না।
অ্যাকুলিচ

0

একটি ছোট স্ক্রিপ্ট কৌতুক করতে হবে। (সোলারিস 10 তে ksh88 দিয়ে পরীক্ষা করা)

script.ksh

#!/bin/ksh

[[ $# != 1 ]] && exit 255 # test for nr of args

pdfname=$(sed -e 's/\(.*\)\.jpg/\1\.pdf/' <(echo $"1")) #replace *.jpg with *.pdf
convert "$1" $pdfname

তারপরে আপনি findস্ক্রিপ্টটি কার্যকর করতে চালাতে পারেন :

find dir -name image\*.jpg -exec /bin/ksh script.ksh {} \;

মনে রাখবেন যে আমি script.kshএবং findকমান্ডটি আপনাকে দিয়েছিলাম , উভয়ই ওএস এবং শেল আপনি ব্যবহার করছেন তাতে আলাদা সিনট্যাক্স থাকতে পারে।


pdfname=${1%.*}.pdfফাইলটির এক্সটেনশনটি এর সাথে প্রতিস্থাপন করে pdf। এই পদ্ধতিটি অনেক সহজ এবং ফাইলের নামটিতে বিশেষ অক্ষর থাকা সত্ত্বেও কাজ করে। সম্পর্কিত নোটে, চলক বিকল্পের চারপাশে ডাবল উদ্ধৃতি যুক্ত করুন।
গিলস'স'-দুষ্ট হওয়া বন্ধ করুন '

একটি সরল একক কমান্ড লাইনের সাহায্যে যখন এটি সব করা যায় তখন আলাদা স্ক্রিপ্ট লেখার কোনও কারণ নেই ।
অ্যাকুলিচ

0

ম্যাকোস ইউটিলিটিSIPS   ম্যাকওএস (সিয়েরা) এর অধীনে, অ্যাপলের অন্তর্নির্মিত কমান্ড-লাইন ইউটিলিটি sipsঅ্যাপলের সমস্ত রেস্টার-ইমেজ ইউটিলিটিগুলিতে ব্যাপক অ্যাক্সেস সরবরাহ করে; এই সক্রিয় আউট রূপান্তর অন্তর্ভুক্ত করা jpgথেকে pdf

উদাহরণস্বরূপ, বিদ্যমান নিম্ন-রেজোলিউশন / ছোট আকারের jpgচিত্র 'cat.jpg'(আকার 8401 বাইট) থেকে, নিম্নলিখিত কমান্ড-লাইনটি 'cat.pdf'রাস্টার-রেজোলিউশন এবং ফাইলের আকারের নূন্যতম প্রসারণের কোনও পরিবর্তন ছাড়াই তৈরি করে :

$ sips -s format pdf cat.jpg --out 'cat.pdf' 1>/dev/null 2>&1
$ ls -l cat.*
-rw-r--r--@ 1 <user redacted> <group redacted>  8401 Jun 18 07:06 cat.jpg
-rw-r--r--+ 1 <user redacted> <group redacted> 10193 Jun 18 07:22 cat.pdf

অ্যাডোবের PSDরাস্টার-চিত্র বিন্যাসে রূপান্তর   একটি অনুরূপ প্রতিমাsips অ্যাডোব-সামঞ্জস্যপূর্ণ *.psdফাইল তৈরি করে

$ sips -s format psd cat.jpg --out 'cat.psd' 1>/dev/null 2>&1
$ ls -l cat.jpg cat.psd
-rw-r--r--@ 1 Administration  staff    8401 Jun 18 07:06 cat.jpg
-rw-r--r--+ 1 Administration  staff  350252 Jun 18 07:37 cat.psd

অ্যাডোপ psdরাস্টার-ফর্ম্যাটটি ব্যবহারের জন্য উপস্থিত 30-গুণ ফাইল-আকারের প্রসারণটি লক্ষ্য করুন ।

বুক প্রোডাকশন   একাধিক ফর্ম্যাটগুলিতে সরবরাহ করা শত শত চিত্রের সাথে জড়িত বড় আকারের বইয়ের উত্পাদন করার ক্ষেত্রে, আমার জন্য একটি সুবিধাজনক কমান্ড-লাইন আইডিয়মটি বিন্যাসে ImageMagickখাঁটি রাস্টার-চিত্র ফাইলগুলি তৈরি করতে ইউটিলিটিগুলি ব্যবহার করা হয়েছে png(সমস্ত মেটা-ডেটা সহ এবং রঙ প্রোফাইলের ছিনতাই-আউট), তারপর ব্যবহার sipsরঙ প্রোফাইলের এবং / অথবা মন্তব্যের একটি অভিন্ন সেট পুনঃস্থাপন, এবং ব্যবহার sipsএছাড়াও হিসেবে সবচেয়ে বেশি যে চূড়ান্ত আউটপুট ফাইল জেনারেট করতে ( *.png, *.psd, অথবা *.pdfফাইল)।


0

দুর্ভাগ্যক্রমে convertচিত্রটি পরিবর্তন করে এর আগে jpgআপনার যে মূল ব্যবহার করা উচিত তার গুণগত মান ন্যূনতম হ্রাস পেতে img2pdfআমি এই আদেশগুলি ব্যবহার করি:

1) রেজোলিউশন বা গুণমানের ক্ষতি ছাড়াই pdfপ্রতিটি jpgচিত্রের বাইরে ফাইল তৈরি করতে :

ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {}.pdf

2) এটি pdfপৃষ্ঠাগুলি একটিকে সংযুক্ত করার জন্য:

pdftk *.pdf cat output combined.pdf

3) এবং সর্বশেষে আমি একটি ওসিআরড পাঠ্য স্তর যুক্ত করেছি যা পিডিএফগুলিতে স্ক্যানের মান পরিবর্তন করে না যাতে তারা অনুসন্ধানযোগ্য হতে পারে:

pypdfocr combined.pdf  

0

রূপান্তরকরণের জন্য আমি চিত্রগ্রাহক এবং আমার রূপান্তর প্রক্রিয়াটিকে ত্বরান্বিত করার জন্য সমান্তরালে সমাধান করেছি:

ls *.JPEG |parallel convert -density 200 -resize 496X646 -quality 100 {}  ../{.}.PDF

0

একাধিক ফাইল রূপান্তর করার একটি সহজ উপায় লিনাক্স টার্মিনালে ফাইল ডিরেক্টরিতে গিয়ে টাইপ করুন:

$ convert *.png mypdf.pdf

-1

আপনি যদি কেবলমাত্র চিত্র ফাইলগুলি ব্যবহার করেন তবে আপনি কমিক বুক সংরক্ষণাগার (.cbr, .cbz, .cbt, .cba, .cb7) ব্যবহার করতে চান

  • যদি আপনি 7 জেড ব্যবহার করেন তবে ফাইল এক্সটেনশনের (প্রত্যয়) নামটি .cb7 এ নামকরণ করুন
  • আপনি যদি ACE ব্যবহার করেন তবে ফাইল এক্সটেনশনের (প্রত্যয়) .cba নামকরণ করুন
  • আপনি যদি আরআর ব্যবহার করেন তবে ফাইল এক্সটেনশনের (প্রত্যয়) নামটি সিবিআর নামকরণ করুন
  • আপনি যদি টিআর ব্যবহার করেন তবে ফাইল এক্সটেনশনের (প্রত্যয়) .cbt নামকরণ করুন
  • আপনি যদি জিপ ব্যবহার করেন তবে ফাইল এক্সটেনশনের (প্রত্যয়) .cbz নামকরণ করুন

এটি পিডিএফ থেকে অনেক বেশি নমনীয়।

Under Linux you can use software like Comix, Evince, Okular and QComicBook.

https://secure.wikimedia.org/wikipedia/en/wiki/Comic_book_archive


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