Use convert para capturar uma página específica de um arquivo PDF?

17

Eu sei que já fiz isso antes, então tenho certeza que é possível, apenas esqueço como fazer isso. Há uma maneira de dizer ao converso para pegar uma página específica de um PDF e gostaria de manter o formato dessa página como PDF.

    
por ixtmixilix 09.06.2011 / 02:43

2 respostas

20

O ImageMagick é uma ferramenta para imagens de bitmap, que a maioria dos PDFs não é. Se você usá-lo, ele irá rasterizar os dados, o que muitas vezes não é desejável.

O Pdftk pode extrair uma ou mais páginas de um arquivo PDF.

pdftk A=input.pdf cat A42 A43 output pages_42_43.pdf

Se você tem uma instalação do LaTeX com PDFLaTeX, você pode usar pdfpages . Há um invólucro para páginas em pdf, pdfjam .

pdfjam -o pages_42_43.pdf input.pdf 42,43

Outra possibilidade (um exagero aqui, mas útil para requisitos mais complexos que uma página) é o Python com a biblioteca PyPdf .

#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for i in [42, 43]:
    output.addPage(input.getPage(i))
output.write(sys.stdout)
    
por 10.06.2011 / 01:45
20

Você pode usar a notação de subscrito com convert(1) para "indexar" em um PDF:

$ convert source.pdf[1] dest.pdf 

O valor do índice depende de como o exportador de PDF numerou as páginas. Em testes em arquivos aqui, os números parecem ser baseados em zero, então o exemplo acima mostra a página segundo no documento. Já vi exemplos on-line em que mostram índices de letras, já que aparentemente o criador de PDF "numerou" as páginas desse documento dessa maneira.

Infelizmente, isso não traz resultados muito bons, porque o ImageMagick assume que tudo é baseado em pixels e, portanto, rasteriza imagens vetoriais, como a tipografia em um PDF típico.

Uma ferramenta melhor para o trabalho é o Ghostscript , que você provavelmente já instalou:

$ gs -dNOPAUSE -dBATCH -dFirstPage=2 -dLastPage=2 -sDEVICE=pdfwrite \
    -sOutputFile=dest.pdf -f src.pdf

Isso passa os dados do PDF inalterados, já que o Ghostscript entende o PDF (um derivado do PostScript) em um nível muito mais profundo do que o ImageMagick faz.

    
por 09.06.2011 / 03:54