Çok sayfalı PDF'yi tek JPG'ye dönüştürmek için Ghostscript mi ​​kullanıyorsunuz?


15

Ghostscript'in PDF'leri JPG'lere dönüştürebileceğini biliyorum ve çok sayfalı PDF durumunda her sayfayı ayrı bir JPG'ye kopyalayabilir. Ancak sayfaların birbirinin altına yapıştırılması için bunları bir JPG'ye kopyalamak mümkün mü, örneğin JPG'nin üst yarısı sayfa 1, alt yarısı sayfa 2 mi? Yoksa JPG sayfalarını tek bir görüntüde birleştirmek için başka bir program kullanmam gerekiyor mu (ve ImageMagick bunu yapabilir mi?).

Yanıtlar:


17

Evet, her PDF sayfasını tek bir JPG dosyasına dönüştürmeniz gerekir (Ghostscript bunu yapabilir).

Sonra başka bir program kullanarak elde edilen JPG dosyalarını birleştirin ( ImageMagick veya GraphicsMagic bunu montagealt komutlarını kullanarak yapabilir ).

Bunu bir seferde yapabilen hiçbir yazılımın farkında değilim.

PDF'den JPG'ye dönüştürme (Ghostscript ile): Mümkün olan en iyi sonucu aldığınızdan emin olmak istersiniz. Bu nedenle, komut satırı seçeneklerini değiştirerek sizin için çalışmasını sağlayın. Bununla başlıyorum:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

Bu, şu adresteki JPG'leri oluşturur: pdffile-001.jpeg , pdffile-002.jpg vb. Adındaki JPG'leri oluşturur . * -DJPEGQ = 95 "parametresi" JPEG Kalitesini "% 95 olarak ayarlar." 600x600 dpi "çözünürlüğü kullanır. Ghostscript'inizin varsayılanının ihtiyaçlarınızı karşılamaması durumunda ortaya çıkan JPG'lerin sayfa boyutunu denetleyin:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -dDEVICEWIDTHPOINTS=800 ^
    -dDEVICEHEIGHTPOINTS=600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

veya

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

montage(ImageMagick veya GraphicsMagick) ile çoklu-tek-JPG dikişi :montage komutu (Bu örnekte kullanılan ImageMagick iken) fayans düzenini kontrol etmek için izin verir. Örneğin kullanırsanız, -tile 4x3bu sıralama düzenini alırsınız:

1  2  3  4    
5  6  7  8    
9 10 11 12    

12 ayrı JPG'yi bir araya getirmek için bu komutu kullanabilirsiniz:

montage ^
    -border 0  ^
    -tile 4x3  ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg  ^
    c:/path/to/final.jpg

Elbette, montage giriş ve sonuç olarak ortaya çıkan JPG için arka plan, aralık, ofset, dekorasyon, etiketler, döndürme, kırpma, resim yazısı vb.


DÜZENLEME: (Bu ipucunu zaten orijinalmontagecevabımdavermek istedim, ancak unuttum.)Varsayılan olarak 120x120 piksel döşeme boyutlarını kullanacaktır. Her döşemenin orijinal sayfa boyutlarını korumak istiyorsanız-geometry, komut satırınaeklemenizgerekir. PDF'nizde A4 (= 595x852 pt) sayfalarınız olduğunu ve bunu korumak istediğinizivarsayarsak, aynı zamanda döşemenin yatay yönüne 11 pt ve dikey döşemenin 22 pt aralığını (artı 4 pt güçlü gri kenarlık / çerçeve çizgileri) ekleyin. her karonun etrafında), bunu yapın:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

DÜZENLEME 2: (Yine önemli bir ipucu daha kaçırdı.) PDF'den JPG'ye dönüşümünüzün oluşturduğu dikiş / montaj işlemi sırasında iyi görüntü kalitesini kaybetmek istemiyorsanız,-quality 100parametreyi komut satırınıza bunun gibiekleyin:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

Cevabınız için teşekkür ederim. ImageMagick 6.9.9'da geometri parametresini görmüyorum. Ayrıca, kombine görüntünün görüntü kalitesi hala berbat, kelimenin tam anlamıyla bir kelime okuyamıyorum.
Geek

2

ImageMagick'in yerleşik GhostScript desteği olduğundan, her şeyi tek seferde yapabilirsiniz:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

her sayfayı alır ve bir uçtan uca uzun bir jpeg oluşturur.


1
Ama bu olacak DEĞİL onun varsayılan ayarlarla Ghostscript kullanacaktır (ve bu JPG çıkışı için oldukça shi..y olan), çünkü size kaliteli JPG verin. Bunu 2 adımda yapmak (ve önce JPG sayfalarınızı kontrol etmek) size optimum kontrol sağlar ve ayrıca oldukça iyi JPG çıktısı verir).
Kurt Pfeifle

PDF için ImageMagick'in -density ayarını kullanarak Ghostscript ayarlarını değiştirebilir ve iyi sonuçlar alabilirsiniz. Seçeneklerinin nasıl kullanılacağını bilmiyorsanız IM'yi çalmayın.
erjiang

1
k .: Hey, ImageMagick'i vurmadım. Ve ICC renk profillerini uygulayarak bile seçeneklerini nasıl kullanacağımı biliyorum ... Ancak tüm Ghostscript seçeneklerini montaja geçiremezsiniz . Yorumum gerçekleştirmeyen önerilen komuta, sevk değil söz -density.
Kurt Pfeifle

Bu arada, başka bir yerde, ImageMagick'in bu şekilde çağırdığınızda dahili olarak PDF'den PS'ye ve daha sonra PS'den PNG'ye dönüştüğü başka bir yerde okudum, bu yüzden bu şekilde yapmamanın başka bir nedeni (iki dönüşüm => daha düşük kalite ve daha yavaş).
İbrahim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.