Manipulando arquivos PDF no terminal

Publicado por Pedro César em 12/06/2010

[ Hits: 23.345 ]

 


Manipulando arquivos PDF no terminal



Muitas vezes nos deparamos com uma situação onde é necessário realizar alguma alteração em um arquivo PDF, atividades como concatenar um arquivo, remover uma página e criptografar um arquivo etc tornam-se extremamente complicadas se não houver uma ferramenta correta para manipulação.

A intenção aqui é demonstrar as facilidades de uma ferramenta conhecida como PDFTK (PDF ToolKit), que é uma ferramenta desenvolvida para lidar com tarefas do dia-a-dia.

Dentre todas as funcionalidades do PDFTK, as mais usuais são:
  • Concatenação de arquivos PDF;
  • Cortar páginas de um arquivo PDF;
  • Rotacionar páginas de um documento PDF;
  • Adicionar criptografia a um arquivo PDF;
  • Criar marca d'água em um arquivo PDF;
  • Anexar outras páginas em um arquivo PDF;
  • Separar todas as páginas de um arquivo em vários arquivos PDF;
  • Reparar arquivos PDF (quando possível recuperar).

Instalação:

No link http://www.accesspdf.com/pdftk/ é possível encontrar uma documentação do sistema e também o código fonte do sistema, bem como o software pré-compilado para várias distros, ou até mesmo o ports do arquivo para os usuários de FreeBSD de plantão.

No meu caso estou utilizando Debian Lenny, realizei o download do arquivo: pdftk_1.41-3_i386.deb

Neste caso para realizar a instalação, basta um simples:

# dpkg -i pdftk_1.41-3_i386.deb

Para os amantes do APT, também é possível realizar a instalação com o seguinte comando.

# apt-get install pdftk

Pronto, o software está instalado e pronto para usar!

Exemplos de utilização

Concatenar dois arquivos PDF:

pdftk conca.pdf tenado.pdf cat output concatenado.pdf

Dividir páginas de um arquivo PDF ou mais arquivos e criar um novo arquivo:

pdftk A=vol.pdf B=foo.pdf cat A3 B8-16 A15-20 output dividido.pdf

Girando páginas de um arquivo PDF:

(Girar somente a primeira página, em 90° sentido horário e o restante do arquivo permanecer normal)

pdftk foo.pdf cat 1E 2-end output perfect.pdf

(Girar somente a segunda página do arquivo em sentido anti-horário e o restante do arquivo permanecer normal)

pdftk foo.pdf cat 1 2L 3-end output perfect.pdf

(Girar todas as páginas de um arquivo PDF em 180°)

pdftk foo.pdf cat 1-endS output perfect.pdf

Criptografar um arquivo PDF, com uma chave de 128 bits, retirando todas as permissões:

pdftk arquivo.pdf output arquivo_crypt.pdf owner_pw foopasswd

Adicionar marca d'água a arquivos PDF:

pdftk arquivo.pdf background fundo.pdf output comfundo.pdf

Anexar outros arquivos a um arquivo PDF:

pdftk foo.pdf attach_files anexo1.html anexo2.html to_page 12 output anexado.pdf

Tentando recuperar um documento PDF corrompido (se possível):

pdftk estragado.pdf output novo.pdf

Referências:
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Qual distribuição é melhor?

Configurando a placa wireless RT3090 no fedora 15

PGAdmin 1.8.4 no CentOS Linux 5.2 (i386 / x86_64)

Iniciando neste mundo maravilhoso chamado Linux

Instalando WLan no Compaq Presario C730BR

  

Comentários
[1] Comentário enviado por julio_hoffimann em 12/06/2010 - 10:18h

Muito boa a dica Pedro, não conhecia o pdftk.

Só para adicionar algo que também diz respeito a manipulação de pdf's, um comando pouco conhecido que facilita muito a vida de quem precisa extrair texto desses arquivos é o pdftotext.

$ pdftotext documento.pdf

É gerado um arquivo de texto com o conteúdo do pdf, você pode informar as páginas de início e de fim de extração e inclusive manter algumas formas do documento se for invocado com a opção -layout.

$ pdftotext -f firstPage -l lastPage -layout documento.pdf

Abraço!

[2] Comentário enviado por removido em 13/06/2010 - 00:14h

Cara, gostei da dica, já conhecia esse programa (porém não fiz uso dele), na ocasião precisava passar um pdf protegido para txt no Debian (não lembro se usei o ps2txt, foi alguma coisa do tipo).
Tentei instalá-lo no Arch Linux, mas tem que atualizar o gcc, então vou deixar instalado somente no Debian.

Parabéns!

[3] Comentário enviado por juliaojunior em 13/06/2010 - 14:19h

Parabéns. Boa dica. Eu já conhecia, e já usava. Mas sempre é bom relembrar. Parabéns novamente.

[4] Comentário enviado por nickmarinho em 13/06/2010 - 14:50h

Eu uso muito o pdftk cara.

Uso ainda um Nokia N73 com o PDF+ instalado para ler meus livros.

Só que o celular não aguenta por exemplo abrir livros com mais de 60 ou 70 páginas pois fica muito pesado na memória.

Então eu pego um livro de 300 páginas e faço tipo:
andre-vianco_-_setimo-1.pdf
andre-vianco_-_setimo-2.pdf
andre-vianco_-_setimo-3.pdf
andre-vianco_-_setimo-4.pdf
andre-vianco_-_setimo-5.pdf
andre-vianco_-_setimo-6.pdf

Contendo cada um 40 páginas no máximo, assim ficando suave para a carroça carregar tudo na memória.

Valeu a dica, abraços;

www.lucianomarinho.com.br
www.racaboxer.com.br

[5] Comentário enviado por jaac em 13/02/2015 - 09:18h

Saudações a todos!

É possível separar várias páginas em lote?

Por exemplo, preciso separar um livro por capítulos. Eu coloco a numeração das páginas e salvo cada arquivo em um documento separado?

(arquivo_Full.pdf ===> file01.pdf, file02.pdf, file03.pdf ..... e por aí vai)

Alguém sabe como fazer isso?

[6] Comentário enviado por andreuebe em 15/08/2016 - 15:26h

Pedro

Neste artigo há uma explicação dos comandos apresentados por ti

https://daemoniolabs.wordpress.com/2012/04/14/manipulando-arquivos-pdf-pelo-terminal-usando-o-pdftk/

abs e parabéns

[7] Comentário enviado por andreuebe em 15/08/2016 - 15:49h

Achei confuso no começo, mas agora entendi os comandos. Deve-se discriminar o que o comando fará com cada página. Logo,

pdftk foo.pdf cat 1E 2-end output perfect.pdf

significa:

gira a primeira página 90 graus horários e da segunda ao final (end) nada altere.

Para girar a primeira 180 graus poderia ser:

pdftk foo.pdf cat 1S 2-end output perfect.pdf

ou

pdftk foo.pdf cat 1down 2-end output perfect.pdf

O comando aceita as palavras-chaves: "even" or "odd". Para rodar as páginas podem ser usadas: "north" "south" "east" "west" "left" "right" or "down"

Detalhes em:

https://daemoniolabs.wordpress.com/2012/04/14/manipulando-arquivos-pdf-pelo-terminal-usando-o-pdftk/




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts