Juntando páginas separadas num único PDF

Publicado por Marcelo 23/03/2006

[ Hits: 8.118 ]

Download epomerge.sh




Este shell script combina páginas de patentes gravadas do
European Patent Office, separadas em vários arquivos pdf,
num único arquivo pdf. (limitado em 26 páginas)

É necessário ter o programa PDFTK (http://www.pdfhacks.com/pdftk/)
instalado para que este script funcione.
A interface padrão com o usuário é o KDE. Se vc quiser modo texto mude os comentários na primeira e na última linha de comando.

Mais detalhes no cabeçalho do script.

  



Esconder código-fonte

#!/bin/sh

#########################################################################
# Este shell script combina páginas de patentes gravadas do
# European Patent Office, separadas em vários arquivos pdf, 
# num único arquivo pdf.
#
# É necessário ter o programa PDFTK (http://www.pdfhacks.com/pdftk/)
# instalado para que este script funcione.
# A interface padrão com o usuário é o KDE. Se vc quiser modo texto mude os
# comentários na primeira e na última linha de comando.
#
#  Atenção!
#
# Quando gravar os arquivos pdf, referentes às páginas das patentes, 
# usar NECESSARIAMENTE o formato 'nome'_'número'.pdf
#
# onde 'nome' é o nome do arquivo e 'número' é um número inteiro 
# que corresponde ao número da página (não use zeros à esquerda), use
# necessariamente o _ (underline) para separar o nome do número.
#
# Este script combina no máximo 26 arquivos pdf num único arquivo pdf.
#
# Autor: Marcelo Falcão de Oliveira
# Instituição: EESC-USP 
#
# Versão 1.1 
# julho/2005
#
# Você pode distribuir ou modificar esse script sempre fazendo referência ao original.
# O uso desse script é de sua total responsabilidade. O autor não se responsabiliza
# por danos causados ao seus arquivos ou à sua máquina.
###########################################################################

# Início do script

# Primeira linha de comando
# Solicita um dos arquivos que serão combinados e armazena na variável nome (interface KDE)
nome=`kdialog --getopenfilename "Escolha um dos aquivos que serão combinados" "*.pdf"`
# Se você quer modo texto "comente" a linha acima e "descomente" as 2 linhas abaixo
#echo "Digite o caminho e o nome de um dos arquivos que serão combinados"
#read nome 

#exclui o trecho final do string armazenado na variável nome, que corresponde a "_'número'.pdf"
nome=`echo $nome | sed 's/_[0-9]*\.pdf//'`

# Verifica o número de arquivos e portanto o número de páginas, armazenando o valor na variável num
for ((i=1; i<=26; i++))
do
  busca=$nome'_'$i
  busca=$busca'.pdf' 
  if [ -e "$busca" ]
  then
    num=$i
  fi
done

# Corpo principal. Define os "handles" que serão usados com o PDFTK através da variável entrada
# Os "handles" são adicionados um a um conforme a variável i cresce até o número total de páginas
# Também define as páginas que serão passadas ao cat do PDFTK, de acordo com os "handles", através da variável saida

for ((i=1; i<=$num; i++))
do

 # Define o "handle" a ser usado de acordo com o número da página
 case $i in
   1) letra='A';;
   2) letra='B';;
   3) letra='C';;
   4) letra='D';;
   5) letra='E';;
   6) letra='F';;
   7) letra='G';;
   8) letra='H';;
   9) letra='I';;
   10) letra='J';;
   11) letra='K';;
   12) letra='L';;
   13) letra='M';;
   14) letra='N';;
   15) letra='O';;
   16) letra='P';;
   17) letra='Q';;
   18) letra='R';;
   19) letra='S';;
   20) letra='T';;
   21) letra='U';;
   22) letra='V';;
   23) letra='W';;
   24) letra='X';;
   25) letra='Y';;
   26) letra='Z';;
esac 

 #define os arquivos de entrada juntamente com os respectivos "handles" 
 entrada="$entrada $letra="
 entrada="$entrada$nome"
 entrada=$entrada'_'$i
 entrada=$entrada'.pdf'

 #define as páginas dos "handles" que serão passadas para o cat do PDFTK 
 saida="$saida $letra$i"

done

# Define o nome do arquivo final
nome=$nome'.pdf'

# Executa o PDFTK
pdftk $entrada cat $saida output $nome

# Última linha de comando
# Avisa que terminou (interface KDE)
kdialog --msgbox "Pronto!"
# Se você quer modo texto "comente" a linha acima e "descomente" a de baixo
#echo "Pronto!"

Scripts recomendados

Backup Subversion

Solução para bloquear totalmente o Facebook em sua rede

Manipular serviços no Runit (Void Linux)

Remover e-mails com MX inexistente e status deferred em servidores Postfix

Script para monitorar os 10 processos que mais consomem CPU e Memória


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts