sexta-feira, 14 de agosto de 2015

PESQUISA DE PALAVRAS EM ARQUIVOS PDF


Uma das atividades mais corriqueiras se você trabalha com a Nfe eletrônica é tentar encontrar itens vendidos para um fornecedor ou mesmo saber quantas vendas foram efetuadas a um fornecedor em determinado ano.

Isso pode se tornar bem simples se você mantêm de maneira organizada as pastas com as DANFE´s enviadas e os registros destas ditas DANFE´s em pdf. Basta criar um aplicativo simples em ASP.NET com alguns comboxes para cada ano, um textbox e um botão.

Aqui vai abaixo um código-fonte em ASP.NET VB.NET que realiza a busca de palavras em PDF´s organizados em pastas anuais. Trata-se de um utilitário que é uma mão na roda para quem necessita de informações rapidamente.

A rotina abaixo foi criada no Visual Studio 2012 Versão 11.0.5 com o Net Framework 4.5

'Aqui estão as referências necessários para o VB.NET ASP.NET
Imports System.Runtime
Imports System.IO

Protected Sub PesquisarPDF_Click(sender As Object, e As EventArgs) Handles Button2.Click

oFileInfoCollection = DirDiretorio.GetFiles("*.pdf")
'### Lista somente os PDFps

Stexto = ""

For i = 0 To oFileInfoCollection.Length() - 1
oFileInfo = oFileInfoCollection.GetValue(i)

'Abrir cada arquivo PDF e extrair o texto do mesmo
Stexto = PesquisanoPDF(oFileInfo.Name)
'Pesquisar a Palavra
Dim index As Integer = Stexto.IndexOf(TxtPesq.Text)
If index >= 0 Then
Dim getTexto As String = Stexto.Substring(index, Stexto.IndexOf(".", index + 85) - index - 5)
' String is in file, starting at character "index"
TxtResposta.Text = TxtResposta.Text + "Texto presente no arquivo: " + oFileInfo.Name + ". Extrato do texto: " + getTexto + "." + vbCrLf

End If
Next
TxtResposta.Enabled = True

TxtResposta.Focus()
End Sub


Public Function PesquisanoPDF(PdfFileName As String) As String
Dim sArquivo As String = ""
'Para tornar a consulta mais rápida, seperam-se os pdf em pastas de anos
If Chk2011.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2011\" + PdfFileName
End If
If Chk2012.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2012\" + PdfFileName
End If
If Chk2013.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2013\" + PdfFileName
End If
If Chk2014.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2014\" + PdfFileName
End If
If Chk2015.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2015\" + PdfFileName
End If
Dim oReader As New iTextSharp.text.pdf.PdfReader(sArquivo)
Dim sOut = ""
For i = 1 To oReader.NumberOfPages
Dim its As New iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy
sOut &= iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(oReader, i, its)
Next
Return sOut

End Function


Sucesso a todos!
By
Leonardo Metelys

Nenhum comentário:

UM APLICATIVO DE VERSÍCULOS PARA CELULARES ANDROID

Olá, pessoal! Esse projeto foi criado em 2017 e aprimorado agora em 2018. Foi também criado com o Visual Studio 2015 em C#.NET com o Xa...