Jak scalić pdf: s za pomocą Imagemagick (problem z rozdzielczością)


43

Kiedy próbuję scalić dwa pliki .pdf za pomocą Imagemagick

convert pdf1.pdf pdf2.pdf temp.pdf

wynikowy plik temp.pdf wydaje się mieć bardzo niską rozdzielczość. Jak mogę zachować rozdzielczość taką samą jak w plikach źródłowych?

Odpowiedzi:


53

Barns ma rację, ale jeśli pdftk nie działa, wypróbuj ghostscript.

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf pdf1.pdf pdf2.pdf

Działa idealnie i zbyt szybko - znacznie szybciej niż użycie ImageMagick z flagą -density.
Brionius

To powinna być poprawna odpowiedź. Nie to, że ImageMagick nie działa; to też działa. Ale jak zauważył @Brionius, gs jest znacznie szybszy, a jakość wynikowego pliku PDF jest na najwyższym poziomie.
Jagtesh Chadha,

Zauważ, że możesz użyć * .pdf zamiast listy pdf1.pdf i pdf2.pdf na końcu tego polecenia, aby przekonwertować wszystkie pdf w folderze na pojedynczy pdf.
Colin D

Miałem pewne problemy z czcionką, niektóre strony gubią czcionkę. Czy mogę to wybrać?
Zloy Smiertniy

20

Polecenie konwersji Imagemagick jest zwykle używane do konwertowania plików obrazów z jednego formatu na inny, w takim przypadku możliwe jest, że faktycznie wykonuje wewnętrzną konwersję, zanim wyśle ​​dwa „obrazy” (PDF) do jednego pliku.

Proponuję rozważyć użycie zestawu narzędzi PDF (pdftk) zamiast http://www.accesspdf.com/pdftk/

Z przykładów na stronie internetowej powinno to być tak proste, jak:

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf

Korzystam z systemu OS X 10.6.1 i próbowałem zainstalować pdftk za pośrednictwem Macports. Wygląda na to, że pdftk jest przestarzałe na Macu, instalacja się nie zakończy. Próbowałem to zrobić za pomocą Imagemagick.

Na Ubuntu pdftk nie miał problemu z zainstalowaniem z apt, i zrobił to wspaniale. Użyłem ImageMagick do łączenia plików PDF z dużym sukcesem, ale ponieważ najpierw rasteryzuje pliki PDF (co zrozumiałe - nie działa z wektorami), nie wygląda tak dobrze dla większości dokumentów tekstowych. Ale pdftk działał świetnie - dzięki za sugestię.
Iguananaut

Świetnie ... dziękuję
Dan Ortega

Głosujmy teraz, pdftk działa o wiele lepiej niż robiąc to ghostcript.
Dan Ortega

18

Jeśli każdy plik, który chcesz scalić, znajduje się w tym samym folderze:

convert -density 150 $(ls -rt *pdf) output.pdf

argument -density 150utrzymuje jakość scalonych plików PDF.


5
Uwaga dodatkowa na temat całej składni pliku PDF, możesz pominąć polecenie sub-ls:convert -density 150 *.pdf output.pdf
Josh

„* .pdf” i „$ (ls -rt * pdf)” mogą powodować różne wyniki.
shantanoo



0

Nie mogłem znaleźć żadnego sposobu na połączenie dwóch plików pdf razem przy zachowaniu dobrej rozdzielczości i nienaruszonego tekstu, ale wymyśliłem sposób, aby przekonwertować go na plik png w wysokiej rozdzielczości.

pdftoppm -f 1 -l 1 -aa yes -aaVector yes -png -r 300 page.pdf > tmp1.png
pdftoppm -f 2 -l 2 -aa yes -aaVector yes -png -r 300 page.pdf > tmp2.png
convert tmp1.png tmp2.png +append -quality 100 page.png

To prowadzi do pierwszych dwóch stron page.pdf i łączy je w plik png o wysokiej rozdzielczości obok siebie.

Zmiana ostatniej linii na

convert tmp1.png tmp2.png +append -quality 100 page.pdf

zaowocuje wydrukiem dokumentu pdf, jak później zorientowałem się po bałaganie w pngtopnm, pnmtops, ps2pdf.


2
-1 za sugerowanie rasteryzacji (możliwego) obrazu wektorowego. To nie jest droga.
Marco
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.