Existem várias bibliotecas para manipular arquivos PDF, incluindo pyPdf e é derivativo PyPDF2 . Você pode processar um arquivo, página por página, extrair o texto e copiar as páginas cujo texto é adequado. Código não testado:
#!/usr/bin/env python
import re, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
text = p.extractText()
if not re.search(r'for\s+office\s+use\s+only', text, re.I):
output.addPage(p)
output.write(sys.stdout)
Tenha em atenção que o texto pode não aparecer no documento exactamente como pretende. Em um documento PDF, linhas, palavras ou até mesmo caracteres podem aparecer fora de ordem: em vez de um fluxo de texto, o documento pode ser construído com partes que aparecem em determinadas coordenadas. Mesmo se o texto estiver em ordem, o que geralmente é o caso, o texto que abrange várias páginas terá um rodapé e um cabeçalho no meio. O texto que abrange várias linhas pode ter espaços extras ao redor das quebras de linha. Mesmo texto nas mesmas linhas pode ter vários espaços entre as palavras, devido à justificação do texto (é por isso que usei \s+
em vez de um espaço simples na expressão regular acima). As ferramentas que extraem texto do PDF tentam reconstruir a página como texto, mas nem sempre fazem um trabalho perfeito. Se pyPdf não funcionar bem com seus documentos, você pode tentar outras bibliotecas para extração de texto; veja este e este tópico para alguns exemplos.