Vraag Opdrachtregelprogramma om PDF-bestanden bij te snijden


Ik ben op zoek naar een opensource-opdrachtregelprogramma om PDF-bestanden bij te snijden, net zoals we dat in Adobe Acrobat Pro kunnen doen. Ik heb PdfTk, ImageMagick, PyPDF en GhostScript geprobeerd - alles zonder succes tot nu toe.


80
2018-04-24 08:47


oorsprong


Kunt u beschrijven wat voor soort bijsnijden u kunt doen met Adobe Acrobat Pro? Omdat ik het niet heb en daarom niet kan vertellen waarnaar je op zoek bent. - xubuntix
In Adobe Acrobat Pro kunnen we de margebesturingselementen gebruiken om de PDF bij te snijden. we kunnen de waarden voor boven, onder, rechts en links opgeven om bij te snijden - Rakesh


antwoorden:


Ik zou willen voorstellen dat je ernaar kijkt PDFcrop.

Als u een pdf wilt bijsnijden met de linker-, boven-, rechter- en ondermarge van 5, 10, 20 en 30 pt (punten), voer dan

pdfcrop --margins '5 10 20 30' input.pdf output.pdf

in terminal. Om iets weg te snijden, gebruikt u negatieve waarden in het argument voor bijsnijden. Bijvoorbeeld,

pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf

gewassen 50 punten van links, boven, rechts, onder (in deze volgorde).

Als u alleen de opdracht uitvoert pdfcrop input, wordt een bestand met de naam uitgevoerd input-crop.pdf met nulmarges. Ik vind dit erg handig bij het opnemen van pdf-illustraties in documenten.

Meerdere bestanden bijsnijden

Helaas kan pdfcrop niet tegelijkertijd meerdere bestanden bijsnijden. Het is echter eenvoudig om een ​​script te schrijven dat alle pdf's bijsnijdt in de map waarin het script zich bevindt.

Maak een nieuw leeg bestand en noem het something.sh. Open het met een teksteditor en voeg het volgende in:

#!/bin/bash
for FILE in ./*.pdf; do
  pdfcrop "${FILE}"
done

Bewaar het en sluit. Klik vervolgens met de rechtermuisknop op het bestand, ga naar Eigenschappen> Toestemmingen en controleer het veld Sta het uitvoeren van bestand toe als programma. Sluit nu het dialoogvenster. Voer het script uit door erop te dubbelklikken en te kiezen Run in Terminal. En een nieuwe bijgesneden marge met nulmarges van alle pdf's met achtervoegsel -gewas wordt nu in de map afgedrukt. Als je marges of andere dingen wilt, kun je natuurlijk gewoon het script openen en daarna argumenten toevoegen pdfcrop.


102
2017-08-23 13:43



Merk op dat in plaats van het specificeren van negatieve marges, men ook kan gebruiken --bbox "<left> <bottom> <right> <top>". Dit maakt het mogelijk om de benadering te gebruiken om het bij mij beschreven gewasgebied te bepalen antwoord hieronder. - bluenote10
Is er een mogelijkheid om het paginanummer te vertellen (wat moet worden bijgesneden)? - L.K.
Ik ben bang dat het alles of niets is. pdfcrop --help geeft een lijst met de beschikbare opties. Ik kan daar niets zien dat het specificeren van een reeks pagina's mogelijk zou maken. - Rasmus
Als je de grootte van de uitvoer van PDFCrop vergelijkt met de invoer, lijkt het alsof pdfcrop alleen de selectiekaders wijzigt. Het verwijdert geen gegevens. Deze benadering zou dus ongeschikt zijn om de pdf kleiner te maken of informatie te verbergen. - init_js
Als een charme! zelfs met de marges die de pdf nodig heeft! - jojo


Bedankt voor Rasmus, je kunt pdfcrop installeren vanuit het texlive-extra-utils-pakket:

sudo apt-get install texlive-extra-utils

Bewerk vervolgens pdf-bestanden met de opdracht voor het bijsnijden van pdf's als:

pdfcrop input.pdf output.pdf

gebruik --help om meer verbazingwekkende parameters zoals te zien --margins

pdfcrop --margins 5 input.pdf output.pdf

welke bijsnijden pdf met 5 bp van elke kant van de pagina


27
2018-04-13 12:22



De meting is bp, dat enigszins verschilt van pt. Zien tex.stackexchange.com/questions/8260/.... - koppor
@koppor bedankt, ik heb mijn antwoord bewerkt. - sarigalin
Voor mij heeft pdfcrop de bestandsgrootte opgeblazen van 300x (van 7MB naar 2GB). ik moest het doen gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS="/ebook" -sOutputFile=output2.pdf output.pdf nadien, die de bestandsgrootte heeft vastgesteld. - fiktor


U kunt PDF-bestanden ook eenvoudig bijsnijden met Ghostscript. Ik heb een klein script geschreven om het proces te vereenvoudigen (geïnspireerd door dit antwoord):

#!/bin/bash

if [ $# -lt 5 ]
then
  echo "Usage: `basename $0` <pdf-file> <x_min> <x_max> <y_min> <y_max>"
  echo "Notes:"
  echo " - all coordinates are absolute; no calculation of width/height necessary"
  echo " - use 'gv' to determine the coordinates"
  exit 65
fi

file="$1"
xmin="$2"
xmax="$3"
ymin="$4"
ymax="$5"

base="${file%.*}"
outfile="${base}_cropped.pdf"

echo "writing to: $outfile"

gs \
  -o $outfile \
  -sDEVICE=pdfwrite \
  -c "[/CropBox [$xmin $ymin $xmax $ymax] /PAGES pdfmark" \
  -f $file

Om de coördinaten voor bijsnijden te bepalen, gebruik ik gv, die de coördinaten van de muiscursor afdrukt met dezelfde eenheden als Ghostscript. Hier bepaal ik bijvoorbeeld de minimumcoördinaten voor x / y (de waarden in de linkerbovenhoek):

crop1

Nu de maximale coördinaten:

crop2

En tot slot voer ik het script uit pdf_crop_by_coordinates.sh test.pdf 45 429 38 419 produceren van een test_cropped.pdf wat er zo uitziet:

result

Ik heb echter geen idee hoe de Ghostscript-oplossing zich verhoudt tot pdfcrop in termen van kwaliteit en correctheid.


15
2018-03-03 12:38





Als ik iets niet met pdftk kan doen, is de volgende plaats die ik aan het draaien ben PDFjam, dat is een opdrachtregelwrapper voor de pdfpages LaTeX-pakket (vandaar dat u dat ook nodig hebt en een TeX distro geïnstalleerd). Voor hulp bij het gebruik ervan, raad ik het reguliere helpscherm aan:

pdfjam --help

omdat de man-pagina schaars is en de webpagina zich concentreert op voorbeelden.

Om een ​​PDF bij te snijden, heeft het gewenste commando ongeveer het volgende:

pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf

Hiermee wordt een bestand met de naam. Uitgevoerd input-cropped.pdf. De volgorde van de afwerkingen moet links, onder, rechts, boven, zoals per \includegraphics van graphicx.

Om een ​​idee te krijgen van hoe het zich verhoudt tot PDFcrop, had ik recentelijk een behoorlijk fraaie PDF bijgesneden. Mijn origineel was 675 kB, mijn bijgesneden versie via PDFjam was 1,2 MB, terwijl een versie die werd bijgesneden via PDFcrop 4,5 MB was. Terwijl zowel PDFjam als PDFcrop de ingesloten hyperlinks en bladwijzers weghaalden, PDFjam met de --keepinfo optie bewaarde de documenteigenschappen (bijvoorbeeld titel, auteur, onderwerp).


12
2017-07-21 15:29



Opmerking: hiermee wordt de inhoud die buiten beeld van de PDF komt niet echt verwijderd, maar alleen verborgen. Hetzelfde als waarop @init_js reageert in het best beoordeelde antwoord. - Jan Żankowski


Als een grafische tool ook goed is, zou ik aanraden krop: http://arminstraub.com/software/krop


3
2018-05-18 13:52





Dit kan je misschien helpen.
Dit is in overeenstemming met de nieuwere versie van Ubuntu en het leven. Dit is Master PDF-editor. Je kunt het gebruiken bijsnijden, wat spullen toevoegen, etc.

Voorbeeld:
Dit is eerder This is before Dit is na ctrl + k enter image description here


3
2018-03-14 18:36





Je zou een a kunnen gebruiken pypdf script van deze pagina. Maar in het antwoord op deze stackexchange-vraag, er lijken ook veel opties te zijn.


2
2018-04-24 09:04



Ik ben niet in staat om te krijgen wat de linker boven-rechter bodemparameters zijn. zijn het punten, inches, centimeters? - Rakesh
@Rakesh: zie mijn antwoord voor een uitleg van de parameters en hoe je ze gemakkelijk kunt bepalen. - bluenote10