Como posso extrair um intervalo de páginas / uma parte de um PDF?

321

Você tem alguma idéia de como extrair uma parte de um documento PDF e salvá-lo como PDF? No OS X, é absolutamente trivial usando o Preview. Eu tentei editor de PDF e outros programas, mas sem sucesso.

Eu gostaria de um programa onde eu selecionasse a parte que eu queria e então salvá-lo como pdf com um comando simples como CMD + N no OS X. Eu quero a parte extraída a ser salva em formato PDF e não jpeg etc.

    
por user72469 26.11.2012 / 03:06

14 respostas

367

pdftk é uma ferramenta multiplataforma útil para o trabalho ( página inicial do pdftk ).

pdftk full-pdf.pdf cat 12-15 output outfile_p12-15.pdf

você passa o nome do arquivo do pdf principal e diz para ele incluir apenas algumas páginas (12-15 neste exemplo) e enviá-lo para um novo arquivo.

    
por Martin H 17.04.2013 / 17:21
199

muito simples, use o leitor de PDF padrão:

imprime como arquivo. é isso!

então

    
por Abdennour TOUMI 14.11.2013 / 11:25
66

Intervalo de páginas - script do Nautilus

Visão geral

Eu criei um script um pouco mais avançado baseado no tutorial @ThiagoPonte vinculado a. Suas principais características são

  • que é baseado em GUI,
  • compatível com espaços em nomes de arquivos,
  • e com base em três diferentes backends capazes de preservar todos os atributos do arquivo original

Screenshot

Código

#!/bin/bash # # TITLE: PDFextract # # AUTHOR: (c) 2013-2015 Glutanimate (https://github.com/Glutanimate) # # VERSION: 0.2 # # LICENSE: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html) # # OVERVIEW: PDFextract is a simple PDF extraction script based on Ghostscript/qpdf/cpdf. # It provides a simple way to extract a page range from a PDF document and is meant # to be used as a file manager script/addon (e.g. Nautilus script). # # FEATURES: - simple GUI based on YAD, an advanced Zenity fork. # - preserves _all_ attributes of your original PDF file and does not compress # embedded images further than they are. # - can choose from three different backends: ghostscript, qpdf, cpdf # # DEPENDENCIES: ghostscript/qpdf/cpdf poppler-utils yad libnotify-bin # # You need to install at least one of the three backends supported by this script. # # - ghostscript, qpdf, poppler-utils, and libnotify-bin are available via # the standard Ubuntu repositories # - cpdf is a commercial CLI PDF toolkit that is free for personal use. # It can be downloaded here: https://github.com/coherentgraphics/cpdf-binaries # - yad can be installed from the webupd8 PPA with the following command: # sudo add-apt-repository ppa:webupd8team/y-ppa-manager && apt-get update && apt-get install yad # # NOTES: Here is a quick comparison of the advantages and disadvantages of each backend: # # speed metadata preservation content preservation license # ghostscript: -- ++ ++ open-source # cpdf: - ++ ++ proprietary # qpdf: ++ + ++ open-source # # Results might vary depending on the document and the version of the tool in question. # # INSTALLATION: https://askubuntu.com/a/236415 # # This script was inspired by Kurt Pfeifle's PDF extraction script # (http://www.linuxjournal.com/content/tech-tip-extract-pages-pdf) # # Originally posted on askubuntu # (https://askubuntu.com/a/282453) # Variables DOCUMENT="$1" BACKENDSELECTION="^qpdf!ghostscript!cpdf" # Functions check_input(){ if [[ -z "$1" ]]; then notify "Error: No input file selected." exit 1 elif [[ ! "$(file -ib "$1")" == *application/pdf* ]]; then notify "Error: Not a valid PDF file." exit 1 fi } check_deps () { for i in "$@"; do type "$i" > /dev/null 2>&1 if [[ "$?" != "0" ]]; then MissingDeps+="$i" fi done } ghostscriptextract(){ gs -dFirstPage="$STARTPAGE "-dLastPage="$STOPPAGE" -sOutputFile="$OUTFILE" -dSAFER -dNOPAUSE -dBATCH -dPDFSETTING=/default -sDEVICE=pdfwrite -dCompressFonts=true -c \ ".setpdfwrite << /EncodeColorImages true /DownsampleMonoImages false /SubsetFonts true /ASCII85EncodePages false /DefaultRenderingIntent /Default /ColorConversionStrategy \ /LeaveColorUnchanged /MonoImageDownsampleThreshold 1.5 /ColorACSImageDict << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /GrayACSImageDict \ << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /PreserveOverprintSettings false /MonoImageResolution 300 /MonoImageFilter /FlateEncode \ /GrayImageResolution 300 /LockDistillerParams false /EncodeGrayImages true /MaxSubsetPCT 100 /GrayImageDict << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor \ 0.4 /Blend 1 >> /ColorImageFilter /FlateEncode /EmbedAllFonts true /UCRandBGInfo /Remove /AutoRotatePages /PageByPage /ColorImageResolution 300 /ColorImageDict << \ /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /CompatibilityLevel 1.7 /EncodeMonoImages true /GrayImageDownsampleThreshold 1.5 \ /AutoFilterGrayImages false /GrayImageFilter /FlateEncode /DownsampleGrayImages false /AutoFilterColorImages false /DownsampleColorImages false /CompressPages true \ /ColorImageDownsampleThreshold 1.5 /PreserveHalftoneInfo false >> setdistillerparams" -f "$DOCUMENT" } cpdfextract(){ cpdf "$DOCUMENT" "$STARTPAGE-$STOPPAGE" -o "$OUTFILE" } qpdfextract(){ qpdf --linearize "$DOCUMENT" --pages "$DOCUMENT" "$STARTPAGE-$STOPPAGE" -- "$OUTFILE" echo "$OUTFILE" return 0 # even benign qpdf warnings produce error codes, so we suppress them } notify(){ echo "$1" notify-send -i application-pdf "PDFextract" "$1" } dialog_warning(){ echo "$1" yad --center --image dialog-warning \ --title "PDFExtract Warning" \ --text "$1" \ --button="Try again:0" \ --button="Exit:1" [[ "$?" != "0" ]] && exit 0 } dialog_settings(){ PAGECOUNT=$(pdfinfo "$DOCUMENT" | grep Pages | sed 's/[^0-9]*//') #determine page count SETTINGS=($(\ yad --form --width 300 --center \ --window-icon application-pdf --image application-pdf \ --separator=" " --title="PDFextract"\ --text "Please choose the page range and backend"\ --field="Start:NUM" 1[!1..$PAGECOUNT[!1]] --field="End:NUM" $PAGECOUNT[!1..$PAGECOUNT[!1]] \ --field="Backend":CB "$BACKENDSELECTION" \ --button="gtk-ok:0" --button="gtk-cancel:1"\ )) SETTINGSRET="$?" [[ "$SETTINGSRET" != "0" ]] && exit 1 STARTPAGE=$(printf %.0f ${SETTINGS[0]}) #round numbers and store array in variables STOPPAGE=$(printf %.0f ${SETTINGS[1]}) BACKEND="${SETTINGS[2]}" EXTRACTOR="${BACKEND}extract" check_deps "$BACKEND" if [[ -n "$MissingDeps" ]]; then dialog_warning "Error, missing dependency: $MissingDeps" unset MissingDeps dialog_settings return fi if [[ "$STARTPAGE" -gt "$STOPPAGE" ]]; then dialog_warning "<b> Start page higher than stop page. </b>" dialog_settings return fi OUTFILE="${DOCUMENT%.pdf} (p${STARTPAGE}-p${STOPPAGE}).pdf" } extract_pages(){ $EXTRACTOR EXTRACTORRET="$?" if [[ "$EXTRACTORRET" = "0" ]]; then notify "Pages $STARTPAGE to $STOPPAGE succesfully extracted." else notify "There has been an error. Please check the CLI output." fi } # Main check_input "$1" dialog_settings extract_pages

Instalação

Siga as instruções genéricas de instalação dos scripts do Nautilus . Certifique-se de ler o cabeçalho do script com cuidado, pois isso ajudará a esclarecer a instalação e o uso do script.

Páginas parciais - PDF Shuffler

Visão geral

% bl0ck_qu0te%

Instalação

sudo apt-get install pdfshuffler

Uso

O PDF-Shuffler pode cortar e excluir páginas de um único PDF. Você pode usá-lo para extrair um intervalo de páginas de um documento ou mesmo páginas parciais usando a função de corte:

Elementosdapágina-Inkscape

Visãogeral

OInkscapeéumpoderosoeditordegráficosvetoriaisdecódigoaberto.Suportaumaamplagamadediferentesformatos,incluindoarquivosPDF.Vocêpodeusá-loparaextrair,modificaresalvarelementosdepáginadeumarquivoPDF.

Instalação

sudoapt-getinstallinkscape

Uso

1.)AbraoarquivoPDFdesuaescolhacomoInkscape.Umacaixadediálogodeimportaçãoseráexibida.Escolhaapáginadaqualvocêdesejaextrairelementos.Deixeasoutrasconfiguraçõescomoestão:

2.) No Inkscape, clique e arraste para selecionar o (s) elemento (s) que você deseja extrair:

3.)Invertaaseleçãocom!eapagueoobjetoselecionadocomDELETE:

4.) Corte o documento para os demais objetos acessando a caixa de diálogo Document Properties com CTRL + SHIFT + D e selecionando "ajustar documento à imagem":

5.)SalveodocumentocomoumarquivoPDFdoArquivo->DiálogoSalvarcomo:

6.) Se houver imagens de bitmap / raster em seu documento cortado, você poderá definir seu DPI na caixa de diálogo que aparece a seguir:

7.)Sevocêseguiutodasasetapas,vocêteráproduzidoumarquivoPDFverdadeiroqueconsisteapenasdosobjetosdesuaescolha:

    
por Glutanimate 17.04.2013 / 17:11
32

Salve isso como um script de shell, como pdfextractor.sh:

#!/bin/bash
# this function uses 3 arguments:
#     $1 is the first page of the range to extract
#     $2 is the last page of the range to extract
#     $3 is the input file
#     output file will be named "inputfile_pXX-pYY.pdf"
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
   -dFirstPage=${1} \
   -dLastPage=${2} \
   -sOutputFile=${3%.pdf}_p${1}-p${2}.pdf \
   ${3}

Para executar o tipo:

./pdfextractor.sh 4 20 myfile.pdf

1) 4 refere-se à página que irá iniciar o novo pdf.

2) 20 refere-se à página com a qual terminará o pdf.

3) myfile.pdf é o arquivo em pdf que você quer extrair partes.

A saída seria myfile_p4_p20.pdf no mesmo diretório do arquivo pdf original.

Tudo isso e mais informações aqui: Dica técnica

    
por ThiagoPonte 16.04.2013 / 19:40
29

O QPDF é ótimo. Use desta forma para extrair as páginas 1-10 de input.pdf e salve-as como output.pdf .

qpdf --pages input.pdf 1-10 -- input.pdf output.pdf

Por favor, note que input.pdf é escrito duas vezes.

Você pode instalá-lo invocando:

apt-get install qpdf

Ou, indo para o diretório de aplicativos do Ubuntu:

ÉumaótimaferramentaparamanipulaçãodePDF,queémuitorápida,tempoucasdependências."Ele pode criptografar e linearizar arquivos, expor os componentes internos de um arquivo PDF e fazer muitas outras operações úteis para usuários finais e desenvolvedores de PDF."

link

    
por Ho1 09.09.2015 / 09:10
21

Existe um utilitário de linha de comando chamado pdfseparate .

Nos documentos:

pdfseparate sample.pdf sample-%d.pdf

extracts  all pages from sample.pdf, if i.e. sample.pdf has 3 pages, it
   produces

sample-1.pdf, sample-2.pdf, sample-3.pdf

Ou, para selecionar uma única página (neste caso, a primeira página) do arquivo sample.pdf:

pdfseparate -f 1 -l 1 sample.pdf sample-1.pdf
    
por jdmcbr 29.10.2014 / 19:17
17

pdftk ( sudo apt-get install pdftk ) é uma excelente linha de comando também para manipulação de PDF. Aqui estão alguns exemplos do que o pdftk pode fazer:

   Collate scanned pages
     pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf
     or if odd.pdf is in reverse order:
     pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf

   Join in1.pdf and in2.pdf into a new PDF, out1.pdf
     pdftk in1.pdf in2.pdf cat output out1.pdf
     or (using handles):
     pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
     or (using wildcards):
     pdftk *.pdf cat output combined.pdf

   Remove page 13 from in1.pdf to create out1.pdf
     pdftk in.pdf cat 1-12 14-end output out1.pdf
     or:
     pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf

   Burst a single PDF document into pages and dump its data to
   doc_data.txt
     pdftk in.pdf burst

   Rotate the first PDF page to 90 degrees clockwise
     pdftk in.pdf cat 1east 2-end output out.pdf

   Rotate an entire PDF document to 180 degrees
     pdftk in.pdf cat 1-endsouth output out.pdf

No seu caso, eu faria:

     pdftk A=input.pdf cat A<page_range> output output.pdf
    
por Andrzej Pronobis 29.10.2014 / 19:23
10

Em qualquer sistema que uma distribuição TeX esteja instalada:

pdfjam <input file> <page ranges> -o <output file>

Por exemplo:

pdfjam original.pdf 5-10 -o out.pdf

Veja link

    
por Ioannis Filippidis 01.09.2017 / 22:18
7

Já experimentou o PDF Mod?

Você pode, por exemplo, extrair páginas e salvá-las como pdf.

Descrição:

PDF Mod é uma ferramenta simples para modificar documentos PDF. Ele pode girar, extrair, remover e reordenar páginas através de arrastar e soltar. Vários documentos podem ser combinados via arrastar e soltar. Você também pode editar o título, assunto, autor e palavras-chave de um documento PDF usando o PDF Mod.

Espero que isso seja útil.

Regars.

    
por Roman Raguet 26.11.2012 / 03:17
6

Por acaso, posso fazer isso com imagemagick . Se você não tem, instale simplesmente com:

sudo apt-get install imagemagick

Nota 1 : Eu tentei isso com um pdf de uma página (estou aprendendo a usar imagemagick , então eu não queria mais problemas do que o necessário). Não sei se / como funcionará com várias páginas, mas você pode extrair uma página de interesse com pdftk :

pdftk A=myfile.pdf cat A1 output page1.pdf

onde você indica o número da página a ser dividida (no exemplo acima, A1 seleciona a primeira página).

Nota 2 : A imagem resultante usando este procedimento será uma varredura.

Abra o pdf com o comando display , que faz parte do pacote imagemagick :

display file.pdf

Meu parecido com isto:


Cliquenaimagemparaverumaversãoemresoluçãocompleta

Agoravocêclicanajanelaeummenuapareceaolado.Lá,selecioneTransform|Recorte.

De volta à janela principal, você pode selecionar a área que deseja cortar, simplesmente arrastando o ponteiro (seleção clássica de canto a canto).


Observeoponteiroemformademãoaoredordaimagemenquantoseleciona

Estaseleçãopodeserrefinadaantesdeprosseguirparaapróximaetapa.

Quandoterminar,observeopequenoretânguloqueaparecenocantosuperioresquerdo(vejaaimagemacima).Elamostraasdimensõesdaáreaselecionadaprimeiro(porexemplo,281x218)eassegundascoordenadasdoprimeirocanto(porexemplo,+256+215).

Anoteasdimensõesdaáreaselecionada;vocêprecisarádissonomomentodesalvaraimagemcortada.

Agora,devoltaaomenupop(queagoraéomenu"crop" específico), clique no botão Crop .

Finalmente,quandoestiversatisfeitocomosresultadosdocorte,cliquenomenuFile|Salvar

Navegueatéapastaondedesejasalvaropdfrecortado,digiteumnome,cliquenobotãoFormato,najanela"Selecione o tipo de formato de imagem", selecione PDF e clique no botão Selecionar . De volta à janela "Procurar e selecionar um arquivo", clique no botão Salvar .

Antesdesalvar,imagemagickpedirápara"selecionar a geometria da página". Aqui, você digita as dimensões de sua imagem recortada, usando uma simples letra "x" para separar largura e altura.

Agora,vocêpodefazertudoissoperfeitamenteapartirdalinhadecomando(ocomandoéconvertcomaopção-crop)-certamenteémaisrápido,masvocêprecisasaberdeantemãoascoordenadasdaimagemquedesejaextrair.Verifiqueomanconverteo um exemplo na página da Web .

    
por carnendil 19.04.2013 / 02:54
6

Eu estava tentando fazer o mesmo. Tudo o que você precisa fazer é:

  1. instale pdftk :

    sudo apt-get install pdftk
    
  2. se você quiser extrair páginas aleatórias:

    pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf
    
  3. se você quiser extrair um intervalo:

    pdftk myoldfile.pdf cat 1-2 4-5 output mynewfile.pdf
    

Por favor, verifique a fonte para mais informações .

    
por theCode 03.05.2016 / 06:00
2

O PDF Split and Merge é bastante útil para esta e outras operações de manipulação de PDF.

Faça download de aqui

    
por To Do 01.06.2013 / 12:45
1

Como o usuário original solicitou uma ferramenta interativa e não uma ferramenta de linha de comando: Uma solução fácil é usar qualquer visualizador de PDF (okular no Kubuntu, evince ou até mesmo o Firefox no Ubuntu) e então usar a caixa de diálogo de impressão padrão, "imprimir em arquivo PDF" e, em seguida, selecione na caixa de diálogo de configurações estendidas, quais páginas "imprimir". Essa variante tem algumas desvantagens, pois alguns truques no PDF original (como páginas giradas, formulários, etc.) podem se perder, mas funciona diretamente na maioria dos PDFs simples.

    
por Kai Petzke 26.03.2018 / 12:36
0

Se você quiser extrair seus PDFs, use o link . É uma ferramenta incrível para extrair notas, destaques e imagens de PDFs. Você também pode assistir a tutoriais no Youtube digitando sumnotes .

Espero que você goste!

    
por James 14.02.2014 / 18:34