Verktyg för att manipulera pdf-filer i linux

Det finns ett antal olika verktyg för att manipulera pdf-filer i linux, både grafiska och sådana som används via terminalen. Jag kommer här att presentera några användbara terminalkommandon. För den som är intresserad av att manipulera pdf-filer via ett grafiskt gränssnitt så finns det en bra presentation av PDFModPåvels blogg.

Ghostscript

Ghostscript är ett mycket användbart program som kan användas för att dela eller slå ihop pdf-filer, klippa ut vissa sidor, rotera och skala om sidor med mera. En nackdel är att man måste ange många kommandoradsflaggsflaggor. Detta kan göra det svårt att komma ihåg från fall till fall. Man måste också tänka på att flaggorna är skiftlägeskänsliga.

För att spara en sidorna 18-22 i filen input.pdf till filen output.pdf anges följande kommando:
gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dFirstPage=18 -dLastPage=22 -sOutputFile=output.pdf input.pdf

Flaggan -sDEVICE=pdfwrite anger att man vill generera en pdf-fil. Flaggorna -dBATCH -dNOPAUSE gör att ghostscript kör det angivna kommandot utan avbrott för att sedan avsluta. -dFirstPage=18 -dLastPage=22 berättar för ghostscript att man vill att den skall behandla sidorna 18-22 i den fil man skickar till programmet. Slutligen så anger flaggan -sOutputFile=output.pdf namnet på den fil där resultatet skall sparas.

För att slå ihop två filerna input1.pdf och input2.pdf:
gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile=output.pdf input1.pdf input2.pdf

Man kan också kombinera ovanstående exempel. Följande kommando sparar sidorna 1-2 i input1.pdf och sidorna 3 och framåt i input2.pdf till filen output.pdf:
gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile=output.pdf -dFirstPage=2 -dLastPage=3 MM4001-2.pdf -dFirstPage=3 input2.pdf

Notera här att flaggorna -dFirstPage och -dLastPage verkar på den fil som anges närmast efter dessa flaggor.

Konvertera en pdf-fil till bilder

Konvertering av en pdf-fil till bilder kan göras på lite olika sätt beroende på vad man vill uppnå.

Convert

Convert är ett program som ingår i programsviten ImageMagick som ingår som standard i de flesta linuxdistributioner. Det används för att konvertera allt innehåll på sidorna i en pdf-fil till bilder. I sin enklaste form anger man kommandot
convert infil.pdf utfil.jpg
Ovanstående kommando genererar en jpg-fil per sida med filnamnen utfil-1.jpg, utfil-2.jpg etc.

En nackdel med ovanstående kommando är att kvaliteten på främst text, och vektorgrafik kan bli lidande. Detta beror på att convert använder en upplösning på 72dpi som standard. Detta kan åtgärdas genom att att ange flaggan -density till convert. Om man ändrar ovanstående kommando till
convert -density 300 infil.pdf utfil.jpg
så får man bilder med högre upplösning.

Pdfimages

Om man istället för att konvertera hela pdf-filen till bilder är ute efter att extrahera bitmapsbilder från pdf-filen så kan man använda programmet pdfimages. I Ubuntu ingår det i paketet poppler-utils. Programmet letar igenom pdf-filen efter bitmapsbilder och extraherar dessa i originalstorlek.
pdfimages -j foo.pdf bar
ger bilderna bar-000.jpg bar-001.jpg etc. (Flaggan -j anger att bilderna skall sparas som jpeg.)

Vektorgrafik

Om man behöver extrahera vektorgrafik ur ett pdf-dokument är det lättaste alternativet att använda programmet Inkscape. Det finns verktyg som kan konvertera pdf-filen till andra vektorformat men för att extrahera önskad grafik så brukar man behöva Inkscape i slutändan ändå. En guide till hur man använder Inscape för detta ändamål finns på Imperfect notes.

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s