Tem cerca de 500 PDFs para percorrer e extrair a primeira página de. Eles então precisam passar por um processo de conversão demorado, na esperança de tentar economizar algum tempo com um processo em lote para extrair apenas a primeira página dos 500 pdfs e colocá-la em um novo pdf. Eles deram uma olhada no Acrobat, mas não conseguem encontrar um método real de fazer isso para vários arquivos. Alguém conhece outros programas ou métodos que isso possa ser alcançado? Código aberto e gratuito são obviamente mais favoráveis :)
EDIT: Na verdade, obtivemos algum sucesso usando o GhostScript para extrair apenas uma página. Agora estou olhando como agrupar isso e pegar a lista de arquivos e usá-los.
pdf
open-source
Tim Alexander
fonte
fonte
Respostas:
Usando pdftk ...
No mac e linux a partir da linha de comando.
for file in *.pdf ; do pdftk "$file" cat 1 output "${file%.pdf}-page1.pdf" ; done
No Windows, você pode criar um arquivo em lotes. Abra o bloco de notas e cole-o dentro:
for %%I in (*.pdf) do "pdftk.exe" "%%I" cat 1 output "%%~nI-page1.pdf"
Pode ser necessário substituir "pdftk.exe" pelo caminho completo para pdftk, por exemplo,
"C:\Program Files\pdftk\pdftk.exe
ou seja o que for. (Eu não uso o Windows, então não sei.)Salve-o com uma extensão que termina em .bat, solte-o na pasta com os PDFs e clique duas vezes.
Você pode fazer o mesmo com o Ghostscript, sim.
Vamos ver. Para Mac e Linux (todos em uma linha):
for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ; done
Não sei exatamente qual seria o comando correspondente para um arquivo em lotes do Windows. Meu melhor palpite (- não tenho janelas, por isso não posso testar--):
for %%I in (*.pdf) do "C:\Program Files\gs\gs9.00\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutPutFile#"%%~nI-page1.pdf" -dFirstPage#1 -dLastPage#1 "%%I"
Verifique se o caminho do executável do script fantasma está correto e, bem, não testei isso desde que não uso o Windows.
EDIT: OK, acabei de perceber que você provavelmente não quer 500 PDFs de uma página, mas um único PDF que combina todos eles. Basta executar o procedimento acima e isso deixará 500 PDFs de uma página. Para combiná-los usando o pdftk ... no mac e linux:
pdftk *-page1.pdf cat output combined.pdf
Eu acho que é provavelmente o mesmo no Windows, exceto, talvez, precisando do caminho completo para o pdftk, como acima. Você pode adicionar essa linha após a linha acima no seu arquivo em lotes.
Com o Ghostscript ... no mac e linux:
gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="combined.pdf" *-page1.pdf
E provavelmente é o mesmo no Windows, exceto a substituição de "gs" no início pelo caminho completo para o gswin32c.exe, como acima.
Pode haver uma maneira de o ghostscript fazer as duas coisas em uma única etapa, mas estou com preguiça de descobrir agora.
Se a ordem na qual combiná-los for importante, precisaremos de mais informações.
fonte
Hoje tive que fazer hoje no Linux. Também deve funcionar para Mac. Execute o seguinte comando no seu terminal.
O lpr envia trabalhos para a impressora.
Observe o uso de caracteres * no comando. Isso executaria o comando para todos os seus arquivos PDF no diretório
fonte
Eu acho que você poderia usar uma impressora virtual em PDF, como o pdf-forge.
Você apenas "imprime" a primeira página, eu estou no Mac agora e não posso experimentá-lo, mas tenho certeza de que você pode fazê-lo mais do que um por vez.
Boa sorte!!
Trufa
fonte
quanto ao comando do arquivo em lotes do Windows (.bat) (%% é para variáveis em um arquivo bat)
extração da primeira página do pdf como jpg com tamanho / resolução reduzida
for %%I in (*.pdf) do "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#jpeg -r20 -sOutputFile#"%%~nI.jpg" -dFirstPage#1 -dLastPage#1 "%%I"
(no post acima, o sOutputFile foi escrito errado .. e com o caminho atual da instalação padrão do gs x86)
(veja também Como usar o Ghostscript para converter PDF de várias páginas em um único JPG? )
fonte
No Linux
Eu escrevi esta linha de comando
Mas faz o trabalho, eu testei, também funciona com o maior número de pastas que você possui. Apenas certifique-se de executá-lo na raiz da estrutura de pastas. Cada pasta terá para cada arquivo pdf um pdf adicional que termina com
.firstpage.pdf
Você precisa
pdftk
etree
para isso e no Ubuntu Linux você pode instalá-lo com o apt:fonte
Ou use cpdf https://www.coherentpdf.com/ocaml-libraries.html :
fonte