Scalanie obrazów png w jeden plik pdf [zamknięte]

Odpowiedzi:

151

Od przejrzenia dokumentacji na ImageMagick, może to być tak proste, jak:

convert 1.png 2.png myfile.pdf

Jeśli to nie zadziała, PDFjam twierdzi, że jest w stanie rozwiązać Twój problem.

Jeremiah Willcock
źródło
6
To jest wspaniałe. Tak łatwo. Automatycznie dopasowuje rozmiar obrazów i wszystko. Uwielbiam open-source.
Nathan Wallace,
Czy istnieje sposób, aby kontrolować jakość dokumentu lub rozmiar pliku wynikowego PDF? Muszę przesłać dokumenty o maksymalnym rozmiarze pliku 2,5 MiB. Próbowałem z tą -qualityopcją, ale rozmiar pliku wynosi zawsze ~ 9,5 MB.
arielnmz
Czy można dołączyć pliki graficzne do istniejącego pliku PDF?
Kiran Reddy
3
Przekonwertuj wszystkie pliki w folderze określonego typu za pomocąconvert *.jpg file.pdf
haakym
2
@arielnmz, możesz skompresować plik, używając parametrów -compress jpeg -quality 50. Zobacz moją odpowiedź
Michael Schmid
37

Jeśli chcę scalić niektóre skany w jeden plik PDF, robię to:

pdfjoin --a4paper --fitpaper false --rotateoversize false scan01.png scan02.png

Daje to dokument PDF o rozmiarze strony DIN-A4, w którym każdy pngplik jest wyśrodkowany na własnej stronie. Obrazy, które są zbyt duże dla jednej strony DIN-A4, są proporcjonalnie zmieniane, aby zmieściły się na jednej stronie. Mniejsze obrazy nie są zmieniane (nie powiększane).

Musisz nazwać wszystkie pngpliki w linii poleceń, ale możesz też użyć symboli wieloznacznych, aby np. Scalić wszystkie pliki png w bieżącym katalogu:

pdfjoin --a4paper --fitpaper false --rotateoversize false *.png

pdfjoinKomenda jest częścią PDFjam jak wspomniano w odpowiedzi Jeremiah Willcock. Najprawdopodobniej będziesz musiał zainstalować pakiet o nazwie pdfjamlub za texlive-extra-utilspomocą menedżera pakietów dystrybucji. PDFjam może używać pngplików jako danych wejściowych od wersji 2.07, wydanej 13.11.2010 .

Pascal Rosin
źródło
wygląda na to, że pdfjoin zniknął i jest teraz tylko inne narzędzie o nazwie pdfunite, które łączy tylko kilka plików PDF w jeden ...
Gregor
1
@Gregor Dlaczego twierdzisz, że pdfjoin zniknął?
Pascal Rosin
@Pascal_Rosin nie mógł go znaleźć ani w Debianie, ani w repozytoriach Arch ...
Gregor
2
pdfjoinjest dostępny w texlive-extra-utilspakiecie na niektórych platformach. Zawsze możesz zainstalować go również ze źródła.
Mahmoud Al-Qudsi
11

ImageMagick „s konwersji narzędzie jest moje preferencje.

Program do konwersji jest członkiem zestawu narzędzi ImageMagick. Użyj go do konwersji między formatami obrazu, a także zmiany rozmiaru obrazu, rozmycia, przycinania, usuwania, ditheringu, rysowania, odwracania, łączenia, ponownego próbkowania i wielu innych.

convert [input-option] input-file [output-option] output-file`

Jeśli chcesz, aby pliki graficzne (a tym samym ich jakość i rozmiar) były niezmienione, i po prostu umieść wokół nich kontener PDF:

convert In.png In-2.png Someother-*.png Result.pdf

Jeśli chcesz mieć mniejszy rozmiar pliku i nie przeszkadza Ci utrata jakości, możesz najpierw przekonwertować je na format JPEG. (ImageMagick obsługuje również zmianę poziomu kompresji PNG, ale zwykle pliki wejściowe używają już najwyższego poziomu).

convert 1.png 2.png -compress jpeg -quality 50 Result.pdf

Użyj wartości od 0 do 100 dla qualityopcji.

Alternatywnie można osiągnąć mniejszy rozmiar pliku (i jakość), próbkując ponownie obrazy do określonej rozdzielczości.

convert *.png 2.png -resample 300 Result.pdf

Wartość resampleodnosi się do liczby pikseli na cal. ImageMagick odczytuje oryginalną gęstość z części EXIF ​​obrazów wejściowych, zmniejszając się do 72 dpi. Możesz użyć tego densityparametru, aby ustawić niestandardową rozdzielczość dla obrazów wejściowych.

Można oczywiście również połączyć compress, qualityi resampleparametry.

Michael Schmid
źródło
Czy ktoś tutaj wie, jak cofnąć operację?
Andrei Cioara
Pliki obrazów nie są usuwane, ale możesz je skopiować dla spokoju ducha. Miałem też problem ze stackoverflow.com/questions/42928765/… do rozwiązania, zanim zadziałał.
Audrius Meskauskas
Każdy, kto napotka problem z konwersją obrazów do formatu
Tuhin
Ostatnio imagemagick domyślnie odrzuca konwersję PDF. Zobacz to pytanie, jeśli napotkasz to, aby wiedzieć, jak zmienić tę politykę. stackoverflow.com/questions/52998331/ ...
user2565010
5

Ukradłem to, ale jest to rozwiązanie, którego użyłem od Jeremiah Willcock i innej witryny z odpowiedziami. W tej chwili nie grzebię w historii. Skłamałem, tak. (Tully @ https://askubuntu.com/a/626301 )
Potrzebowałem pliku wystarczająco małego, aby wysłać e-mail.

Aby połączyć obrazy w plik PDF (z katalogu roboczego użyj wiersza poleceń:

user@box:/home/user/scans/:$ 
convert 1.png 2.png convertoutput.pdf

Aby zmniejszyć za pomocą ghostscript po połączeniu (użyłem prawie domyślnego systemu kde):

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
   -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true \
   -r150 -sOutputFile=output.pdf convertoutput.pdf

Mój plik miał 14 zdjęć (19MB po konwersji, gs dało 1,6MB, jakość wciąż była świetna). Plik wyjściowy nosi nazwę output.pdf.

pctech101
źródło
Możesz skompresować plik bezpośrednio za pomocą konwersji , używając parametrów -compress jpeg -quality 50. Zobacz moją odpowiedź
Michael Schmid
@MichaelSchmid Kompresja z konwersją nie jest tak skuteczna. Zmniejsza tylko jakość jpeg, podczas gdy rozwiązanie gs zmienia rozdzielczość. Jeśli spróbujesz tego z obrazem o wysokiej rozdzielczości, zobaczysz, jak duża jest różnica w rozmiarze, nawet jeśli wybierzesz ekstremalnie niską jakość jpg.
mak
Tak, ponowne próbkowanie może rzeczywiście być bardziej efektywne niż kompresja JPEG. ImageMagick również to obsługuje. Dodałem tę opcję w mojej odpowiedzi.
Michael Schmid