Jak mogę połączyć kilka .png
plików w jeden plik PDF w systemie Unix?
Odpowiedzi:
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.
-quality
opcją, ale rozmiar pliku wynosi zawsze ~ 9,5 MB.
convert *.jpg file.pdf
-compress jpeg -quality 50
. Zobacz moją odpowiedź
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 png
plik 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 png
pliki 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
pdfjoin
Komenda jest częścią PDFjam jak wspomniano w odpowiedzi Jeremiah Willcock. Najprawdopodobniej będziesz musiał zainstalować pakiet o nazwie pdfjam
lub za texlive-extra-utils
pomocą menedżera pakietów dystrybucji. PDFjam może używać png
plików jako danych wejściowych od wersji 2.07, wydanej 13.11.2010 .
pdfjoin
jest dostępny w texlive-extra-utils
pakiecie na niektórych platformach. Zawsze możesz zainstalować go również ze źródła.
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 quality
opcji.
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ść resample
odnosi 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 density
parametru, aby ustawić niestandardową rozdzielczość dla obrazów wejściowych.
Można oczywiście również połączyć compress
, quality
i resample
parametry.
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
.
-compress jpeg -quality 50
. Zobacz moją odpowiedź