Ferramenta de linha de comando para cortar arquivos PDF

82

Estou procurando uma ferramenta de linha de comando de código-fonte aberto para cortar o arquivo PDF, assim como podemos fazer no Adobe Acrobat Pro. Eu tentei PdfTk, ImageMagick, PyPDF e GhostScript - todos sem sucesso até agora.

    
por Rakesh 24.04.2012 / 10:47

7 respostas

104

Eu sugiro que você dê uma olhada em PDFcrop .

Se você deseja cortar um pdf com margens esquerda, superior, direita e inferior de 5, 10, 20 e 30 pt (pontos), execute

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

no terminal. Para realmente cortar algo, use valores negativos no argumento para o recorte. Por exemplo,

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

colhe 50 pts da esquerda, superior, direita, inferior (nesta ordem).

Se você executar apenas o comando pdfcrop input , ele exibirá um arquivo intitulado input-crop.pdf com margens zero. Acho isso muito útil ao incluir ilustrações em pdf em documentos.

Recorte de vários arquivos

Infelizmente, o pdfcrop não pode cortar vários arquivos no momento. No entanto, é fácil escrever um script que cortará todos os PDFs na pasta em que o script está localizado.

Crie um novo arquivo vazio e chame-o de something.sh . Abra-o com um editor de texto e insira o seguinte:

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

Salve e feche. Em seguida, clique com o botão direito no arquivo, vá para Propriedades > Permissões e verifique o campo Permitir a execução do arquivo como programa . Agora feche a caixa de diálogo. Execute o script clicando duas vezes nele e escolhendo Executar no Terminal . E a nova versão recortada de margem zero de todos os pdfs com sufixo -crop será agora impressa na pasta. Se você quer margens ou outras coisas, pode simplesmente abrir o script e adicionar argumentos depois de pdfcrop .

    
por Rasmus 23.08.2012 / 15:43
28

Obrigado pelo Rasmus, você pode instalar o pdfcrop do pacote texlive-extra-utils:

sudo apt-get install texlive-extra-utils

Em seguida, corte os arquivos pdf usando o comando pdf crop como:

pdfcrop input.pdf output.pdf

use --help para ver mais parâmetros incríveis como --margins

pdfcrop --margins 5 input.pdf output.pdf

qual crop pdf com 5 bp de cada lado da página

    
por sarigalin 13.04.2014 / 14:22
15

Você também pode cortar arquivos PDF simplesmente usando o Ghostscript. Escrevi um pequeno script para simplificar o processo (inspirado por esta resposta ):

#!/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

Para determinar as coordenadas do corte, eu uso gv , que imprime as coordenadas do cursor do mouse usando as mesmas unidades do Ghostscript. Por exemplo, aqui eu determino as coordenadas mínimas para x / y (os valores no canto superior esquerdo):

Agoraascoordenadasmáximas:

E, finalmente, eu corro o script pdf_crop_by_coordinates.sh test.pdf 45 429 38 419 produzindo um test_cropped.pdf que se parece com isso:

Eu não tenho ideia, porém, como a solução Ghostscript se compara a pdfcrop em termos de qualidade e correção.

    
por bluenote10 03.03.2015 / 13:38
13

Quando não consigo fazer algo com o pdftk, o próximo lugar que viro é PDFjam , que é um comando wrapper de linha para o pacote pdfpages LaTeX (portanto, você também precisa disso e de uma distribuição do TeX instalada). Para obter ajuda sobre como usá-lo, recomendo a tela de ajuda normal:

pdfjam --help

como a página man é esparsa e a página da Web se concentra em exemplos.

Para cortar um PDF, o comando de que você precisa é algo assim:

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

Isso gerará um arquivo chamado input-cropped.pdf . A ordem dos cortes deve ser: esquerda, inferior, direita, superior, como por \includegraphics de graphicx .

Para ter uma ideia de como se compara com o PDFcrop, tive motivos para recortar um PDF bastante sofisticado recentemente. Meu original era de 675 kB, minha versão cortada via PDFjam era de 1,2 MB, enquanto uma versão cortada via PDFcrop era de 4,5 MB. Embora tanto PDFjam quanto PDFcrop tenham eliminado os hiperlinks e marcadores incorporados, o PDFjam com a opção --keepinfo preservou as propriedades do documento (por exemplo, título, autor, assunto).

    
por Alex Ball 21.07.2015 / 17:29
3

Se uma ferramenta gráfica também estiver bem, recomendo krop : link

    
por Sunday 18.05.2016 / 15:52
3

Isso pode ajudá-lo.
Isso está de acordo com a versão mais recente do Ubuntu e da vida. Isso é Editor mestre de PDF . Você pode usar o crop, adicionar algumas coisas, etc.

Exemplo:
Isso é antes Issoédepoisdectrl+k

    
por Shamina 14.03.2017 / 19:36
2

Você pode usar um script pypdf desta página . Mas na resposta a esta questão do stackexchange , parece haver muitos opções também.

    
por xubuntix 24.04.2012 / 11:04