Como faço o batch extrair a primeira página de vários pdfs

0

Eu sei que há outro tópico com muitas respostas para essa pergunta; No entanto, eu sou um novato e muito disso foi rabugento para mim. Eu estou tentando aprender embora:)

Enfim, eu instalei o ghostscript e tentei executá-lo algumas vezes usando este script

for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
         -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ;

Eu obtive esse script de aqui .

Eu realmente não sabia onde colocar o nome do diretório que eu queria que o programa extraísse em lote nem o nome do arquivo de saída e nem o diretor de saída. Eu percebo que isso é algo básico para a maioria de vocês, mas se alguém puder me ajudar, você estará me poupando provavelmente de anos de trabalho.

Obrigado!

    
por Emily Ward 23.03.2018 / 21:48

1 resposta

0

O diretório em que residem os arquivos PDF é o diretório atual, pois for files in *.pdf ; ... não especifica um caminho de diretório para os arquivos correspondentes.

O arquivo de saída é formado de "$file" com bash expansion "${file%.pdf}-page1.pdf" , que exclui .pdf do final do nome do arquivo e o substitui por -page1.pdf , de modo que, por exemplo, report.pdf gera o arquivo de saída report-page1.pdf no mesmo diretório.

Você pode preceder um caminho de diretório na cláusula for , por exemplo, for files in SourceDir/*.pdf ; ...

Você pode alterar a string de substituição; ou você pode preceder um diretório, embora a substituição se torne mais complexa se você usar um caminho de diretório na cláusula for .

Você deve ler em Expansão de Parâmetros no manual bash .

    
por 23.03.2018 / 23:04