Eu tenho um arquivo pdf digitalizado que digitalizou duas páginas em uma página virtual (página em arquivo pdf).
A resolução é de boa qualidade. O problema é que tenho que aumentar o zoom ao ler e arrastar da esquerda para a direita.
Existe algum comando ( convert
, pdftk
...) ou script que pode converter este arquivo pdf com páginas normais (uma página do livro = uma página no arquivo pdf)?
pdfnup
, dopdfjam
conjunto.Respostas:
Aqui está um pequeno script Python usando a biblioteca PyPdf que faz o trabalho perfeitamente. Salve-o em um script chamado
un2up
(ou o que você quiser), torne-o executável (chmod +x un2up
) e execute-o como um filtro (un2up <2up.pdf >1up.pdf
).Ignore todos os avisos de descontinuação; somente os mantenedores do PyPdf precisam se preocupar com isso.
Se a entrada for orientada de maneira incomum, talvez seja necessário usar coordenadas diferentes ao truncar as páginas. Consulte Por que meu código não divide corretamente todas as páginas em um pdf digitalizado?
Para o caso de ser útil, aqui está minha resposta anterior, que usa uma combinação de duas ferramentas mais alguma intervenção manual:
Ambas as ferramentas são necessárias porque, até onde sei, as páginas em pdf não conseguem aplicar duas transformações diferentes à mesma página em um fluxo. Na chamada para
pdftk
, substitua 42 pelo número de páginas no documento de entrada (2up.pdf
).Caso você não possua o pdfjam 2.0, basta instalar o PDFLaTeX com o pacote pdfpages (no Ubuntu: você precisa do texlive-latex-recommended e talvez (no Ubuntu: texlive-fonts-recommended ) e use o seguinte driver arquivo
driver.tex
:Em seguida, execute os seguintes comandos, substituindo 42 pelo número de páginas no arquivo de entrada (que deve ser chamado
2up.pdf
):fonte
pdfjam
comando.q.mediaBox.lowerRight = (w, h/2)
Apenas uma adição, já que tive problemas com o script python (e várias outras soluções): para mim
mutool
funcionou muito bem. É uma adição simples e pequena, fornecida com o elegantemupdf
leitor. Então você pode tentar:Para divisões horizontais, substitua
y
porx
. E você pode, é claro, combinar os dois para soluções mais complexas.Realmente feliz por ter encontrado isso (depois de anos de uso diário de mupdf :)
mutool
vem com mupdf a partir da versão 1.4: http://www.mupdf.com/newsInstalando
mupdf
emutool
de origem:Ou vá para a página de downloads para encontrar uma versão mais recente.
fonte
mutool
foi feito para isso. Além disso, cuidado-y
, acho que na maioria dos casos o que você quer é-x
.O Imagemagick pode fazer isso em uma etapa:
fonte
-density 400
parâmetro, ele tem uma qualidade ainda melhor.O comando Convert do ImageMagick pode ajudá-lo a cortar seu arquivo em 2 partes. Consulte http://www.imagemagick.org/Usage/crop/
Se eu fosse você, escreveria um script (shell) como este:
Para cada página, corte a primeira metade e coloque-a em um arquivo chamado $ {PageNumber} A
Corte a segunda metade e coloque-a em um arquivo chamado $ {PageNumber} B.
Você obtém 1A.pdf, 1B.pdf, 2A.pdf, 2B.pdf, etc.
fonte
Com base nas respostas de Gilles e em como encontrar a contagem de páginas em PDF que escrevi
Para que eu possa correr
onde 50 para ajustar margem e 1,2 para escala.
fonte
Aqui está uma variação do código PyPDF publicado por Gilles. Esta função funcionará independentemente da orientação da página:
fonte
A melhor solução foi o mutool, veja acima:
o separamento:
mas você precisa girar as páginas restantes:
fonte
Com base na resposta de Benjamin no AskUbuntu, eu recomendaria o uso da ferramenta GUI chamada gscan2pdf .
Importe o arquivo de digitalização de PDF para gscan2pdf. Observe que arquivos PDF sem imagem podem não funcionar. As digitalizações são boas, assim você não precisa se preocupar.
Pode demorar um pouco, dependendo do tamanho do documento. Espere até carregar.
Pressione Ctrl + A para selecionar todas as páginas e, em seguida, gire (Ctrl + Shift + C), se necessário.
Vá para Ferramentas >> Limpeza . Selecione Layout como páginas duplas e # saída = 2 .
Clique em OK e aguarde até o trabalho terminar.
Salve o arquivo PDF. Feito.
fonte
Moraes solução não funcionou para mim. O principal problema foi o cálculo de x5 e x6. Aqui um deslocamento deve ser considerado, ou seja, se lowerLeft não estiver em (0,0)
Então, aqui está outra variação, com adaptações adicionais para usar PyPDF2 e python 3:
fonte