pdftotxt seletor de número de página

2

Como posso converter uma página de arquivo pdf para o arquivo txt separadamente?

Meu código de exemplo;

pdftotext test.pdf x.txt

Meu código de exemplo do php;

 for($i=1; $i<4; $i++){
    if(shell_exec("pdftotext -f $i test.pdf test/t$i.txt")){
        echo 'selam';
    }
 }

Mas isso não funciona!

    
por Tahir Hasan 22.08.2016 / 16:28

1 resposta

2

O programa pdftotext inserirá um caractere de feed de formulário ( \f ) após cada página do PDF. Você pode usar isso para dividir seu arquivo de texto em vários arquivos, um por página. Primeiro, execute o comando que você normalmente executa:

pdftotext test.pdf x.txt

Depois, divida:

awk -vk=1 '/\f/{k++}{print >> k".txt"}' x.txt 

O comando awk primeiro definirá a variável k para 1 ( -vk=1 ) e, em seguida, incrementará a variável em 1 sempre que um caractere de feed de formulário for encontrado em uma linha ( /\f/{k++} ). Em seguida, ele imprimirá cada linha em um arquivo cujo nome é o valor atual de k , além da string .txt ( print >> k".txt" ). Portanto, a execução do script acima em um arquivo de texto contendo um arquivo PDF convertido de 5 páginas resultará em 1.txt , 2.txt , 3.txt , 4.txt e 5.txt .

Note que o script irá anexar a cada arquivo de texto, então executá-lo duas vezes apenas adicionará aos arquivos existentes (se houver). Para evitar isso, remova os arquivos antes de tentar executar novamente.

Para integrá-lo em seu código php, use:

for($i=1; $i<4; $i++){
    if(shell_exec("pdftotext -f $i test.pdf test/t$i.txt")){
        echo 'selam';
    }
    if(shell_exec("awk -vk=1 -vi="$i" '/\f/{k++}{print >> i"."k".txt"}' t$i.txt")){
        echo 'selam';
    }

}
    
por terdon 22.08.2016 / 16:44