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';
}
}