Criando pdf para impressão de livros
Publicado por albert guedes 08/01/2008
[ Hits: 10.060 ]
Homepage: https://teko.net.br
Para aqueles que estavam desesperados por um modo de imprimir seus livros sem gastar toneladas de papel e piscinas inteiras de tinta para impressão, publico agora um script para criar um arquivo pdf prontinho para imprimir.
Só é preciso abrir o leitor de pdf e mandar imprimir frente e verso, mais nada.
O script era para minha própria nescessidade, mas muitos scripts que eu li na net não eram completos o que me fez meter a mão na massa e criar este script graças ao pacote de programas pdfjam.
# # Script para imprimir 4 páginas em uma folha de papel, # com duas páginas em cada lado da folha. # Ideal para impressão de livro e economizar. # # Críticas e sugestões, escreva para: arcguede@gmail.com # # # NOTA: É nescessário os seguintes programas instalados no seu sistema: # pacote pdfjam: pdfnup, pdf90 e pdfjoin. # pacote tex: latex, dvipdf # pacote xpdf: pdfinfo # #!/bin/bash # Pega o nome do arquivo. FILE=$1 # Pega o nome do diretório atual. DIR=$(pwd) # Pega o número de páginas do arquivo. PAGES=$( pdfinfo $FILE | grep Pages | cut -d' ' -f11- ) # Separa as páginas do arquivo uma por uma. for((i=1;i<=$PAGES;i++)) do pdfnup --nup 1x1 --pages $i --outfile /tmp/page$i.pdf $FILE done cd /tmp # Calcula a página do meio. MEAN=$(($PAGES/2)) # 'FLAG' é para indicar o sentido de rotação das páginas. FLAG=0 for((i=1;i<=$MEAN;i++)) do # 'i' é pagina que fica a direita da folha, e 'j' a da esquerda. j=$((2*$MEAN-$i+1)) if [ $FLAG -eq 0 ] then # Junta duas páginas em um arquivo. pdfjoin page$j.pdf page$i.pdf --outfile page$i+$j.pdf rm page$i.pdf page$j.pdf # Junta duas páginas em uma só folha. pdfnup page$i+$j.pdf --outfile pagen$i+$j.pdf rm page$i+$j.pdf # Como a 'FLAG' é 0, a rotação é em sentido horário. pdf90 pagen$i+$j.pdf --outfile A.pdf pdf90 A.pdf --outfile B.pdf pdf90 B.pdf --outfile pager$i+$j.pdf rm pagen$i+$j.pdf A.pdf B.pdf FLAG=1 else # Junta duas páginas em um arquivo. pdfjoin page$i.pdf page$j.pdf --outfile page$i+$j.pdf rm page$i.pdf page$j.pdf # Junta duas páginas em uma só folha. pdfnup page$i+$j.pdf --outfile pagen$i+$j.pdf rm page$i+$j.pdf # Como a 'FLAG' é 1, a rotação é em sentido anti-horário. pdf90 pagen$i+$j.pdf --outfile pager$i+$j.pdf rm pagen$i+$j.pdf FLAG=0 fi done # Caso o número de páginas seja impar, vai sobrar uma última página. [ $(($PAGES-2*$MEAN)) -eq 1 ] && { # Nesta parte, caso exista um número impar de páginas, irá sobrar uma no final. # Por isso, é criado uma folha de PDF em branco e juntado a pagina que sobrou. echo "\documentclass[12pt,a4paper]{article}\begin{document}\end{document}" > blank.tex latex blank.tex dvipdf blank.dvi blank.pdf pdfjoin blank.pdf page$PAGES.pdf --outfile pagej$PAGES.pdf rm blank* # # # # Junta as duas páginas, a branca e o resto, em uma folha só. pdfnup --nup 2x1 pagej$PAGES.pdf --outfile pagen$PAGES.pdf rm page$PAGES.pdf blank*.pdf # Rotaciona em sentido anti-horário. pdf90 pagen$PAGES.pdf --outfile pager$PAGES.pdf rm pagen$PAGES.pdf } # Junta tudo num arquivo só. pdfjoin --outfile A.pdf pager*+*.pdf pdfjoin --outfile $DIR/output.pdf A.pdf pager$PAGES.pdf rm A.pdf pager$PAGES.pdf pager*+*.pdf echo -e "\n\n Pronto !\n\n"
cpufreq-selector em Dialog - Centrino frequencia
audsw - trocar configurações do ALSA de forma fácil
Teste de velocidade de conexão via FTP e registro em log
Script de backup para MySQL - JonMyBackup
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Erro ao converter string para inteiro (4)
Não consigo acessar os modos de desempenho no mint 2.3 (6)
Criar uma base de reconhecimento de HW no VOL (8)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba