কীভাবে ব্যাচ কোনও চিত্রকে পিডিএফে কনভার্ট করবেন?


10

আমি ব্যাচ রূপান্তর ইমেজ (jpg, png, ইত্যাদি) পিডিএফ করতে চান। এগুলি সরাসরি পিডিএফ এ রূপান্তর করা এর সাথে সহজ:

convert in.jpg out.pdf

তবে আমার আরও কিছু বিকল্পের দরকার যেমন আউটপুট পৃষ্ঠার আকার নির্ধারণ করা, মার্জিন এবং ল্যান্ডস্কেপ এবং প্রতিকৃতি বিন্যাসের মধ্যে ঘূর্ণন। কিছু পরীক্ষা এবং ত্রুটির পরে আমি এনেছি:

convert -rotate "90>" -page A4+0+0  -gravity center in.jpg  out.pdf

এটি চিত্রটি A4 পৃষ্ঠায় কেন্দ্র করে এবং স্বয়ংক্রিয়ভাবে ল্যান্ডস্কেপ এবং প্রতিকৃতির মধ্যে ঘুরবে, তবে এটি কেবল 595x842 এর নীচে ছোট চিত্রগুলির সাথে কাজ করে। 595x842 টি বড় আকারের চিত্রগুলি পিক্সেলের রেজোলিউশন বলে মনে হচ্ছে যা কোনও A4 পৃষ্ঠায় নির্ধারিত হয়েছে। নেট এ চারপাশে পড়া, -densityবিকল্পটি কোনও A4 পৃষ্ঠায় পিক্সেল সংখ্যা বাড়ানোর সম্ভাব্য সমাধান হতে পারে, তবে আমি এটি কার্যকর করতে পারিনি।

ইমেজম্যাগিকের বাইরের সমাধানগুলি অবশ্যই স্বাগত।

উত্তর:


8

একটি কাজের ভিত্তিটি হ'ল চিত্র উত্পাদন এবং পিডিএফ রূপান্তরকে বিভক্ত করা। প্রথমে চিত্রগুলিকে convertA4 @ 300dpi (অর্থাৎ 3508x2479) এ রূপান্তর করুন, তারপরে তাদের পিডিএমে রূপান্তর করতে sam2p ব্যবহার করুন এবং তারপরে এটিকে 4 এ রূপান্তর করতে sam2p_pdf_scale ব্যবহার করুন।

convert -rotate "90>" -scale 3508x2479 -border 64x64 -bordercolor white in.png out.png
sam2p out.png out.pdf
sam2p_pdf_scale 595 842 out.pdf

সম্পাদনা করুন: আরও একটি সম্পূর্ণ স্ক্রিপ্ট:

#!/bin/sh

A4_WIDTH=2479
A4_HEIGHT=3508

H_MARGIN=64
V_MARGIN=64
WIDTH=$((${A4_WIDTH} - ${H_MARGIN} * 2))
HEIGHT=$((${A4_HEIGHT} - ${V_MARGIN} * 2))

for i in "$@"; do
    TMP="/tmp/$(uuidgen).png"
    echo "$i"
    convert \
        -rotate "90>" \
        -scale "${WIDTH}x${HEIGHT}" \
        -border "${H_MARGIN}x${V_MARGIN}" -bordercolor white \
        -gravity center \
        -extent "${A4_WIDTH}x${A4_HEIGHT}" \
        -gravity center \
        -font helvetica -pointsize 80 \
        -fill white -draw \
        "push graphic-context
         translate $((${A4_WIDTH}/2 - 160)), 0
         rotate 90
         text -2,-2 '$i'
         text -2,2 '$i'
         text 2,-2 '$i'
         text 2,2 '$i'
         pop graphic-context
    " \
        -fill black -draw \
        "push graphic-context
         translate $((${A4_WIDTH}/2 - 160)), 0
         rotate 90
         text 0,0 '$i'
         pop graphic-context
    " \
        "$i" "$TMP"
    sam2p "$TMP" "${i}.pdf"
    sam2p_pdf_scale 595 842 "${i}.pdf"
done

# EOF #

2

অন্যান্য উত্তরের চেয়ে কিছুটা পরিষ্কার :

ls *.jpg | sed -r 's/(.*)\.(\w{3,4})/\1.\2 \1.pdf/' | xargs -n2 sam2p 2>&1 | grep OutputFile | perl -pe 's/.*: //' | xargs pdfjoin --outfile out.pdf

এটি http://convertjpgpdf.net এ কর্মে দেখুন ।


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