Manipulando arquivos PDF no terminal

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

[ Hits: 23.364 ]

 


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

Pérolas do desconhecido, comandos não tão conhecidos que podem ser úteis

Como falar bem de Linux sem falar mal de Windows

Configuração do Bind no Fedora 10

FBReader - Leitor de e-books simples e rápido

Sites para baixar libs e pacotes para sua distribuição

  

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