एक छवि को पीडीएफ में कैसे बदलें?


10

मैं छवियों (jpg, पीएनजी, आदि) को पीडीएफ में बदलना चाहता हूं। उन्हें सीधे पीडीएफ में बदलना आसान है:

convert in.jpg out.pdf

हालाँकि मुझे कुछ और विकल्पों की आवश्यकता है, जैसे आउटपुट पृष्ठ का आकार, मार्जिन और परिदृश्य और चित्र प्रारूप के बीच घुमाव। कुछ परीक्षण और त्रुटि के बाद मैं आया हूं:

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

यह एक A4 पेज पर छवि को केंद्र में रखता है और स्वचालित रूप से परिदृश्य और चित्र के बीच घूमता है, हालांकि यह केवल 595x842 से नीचे की छोटी छवियों के साथ काम करता है। 595x842 पिक्सेल में रिज़ॉल्यूशन प्रतीत होता है, जो ए 4 पेज को सौंपा गया है। नेट पर चारों ओर पढ़ना, -densityए 4 पृष्ठ पर पिक्सेल गणना बढ़ाने के लिए एक संभावित समाधान हो सकता है, लेकिन मैं इसे काम नहीं कर सका।

Imagemagick के बाहर के समाधान निश्चित रूप से स्वागत करते हैं।

जवाबों:


8

छवि निर्माण और पीडीएफ रूपांतरण को विभाजित करने के लिए एक समाधान है। पहले छवियों convertको A4 @ 300dpi (अर्थात 3508x2479) के माध्यम से कनवर्ट करें, फिर उन्हें PDF में कनवर्ट करने के लिए sam2p का उपयोग करें और फिर उन्हें A4 में बदलने के लिए 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 पर कार्रवाई में देखें ।


यह खूबसूरती से काम करता है! धन्यवाद! क्या यह "अस्थायी", गैर-कंकरीटेड पीडीएफ को हटाने के लिए भी प्राप्त करना संभव होगा?
रासमस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.