Created
February 20, 2019 18:15
-
-
Save fernandobarbalho/aca0784c2894cc42541911e8661a1353 to your computer and use it in GitHub Desktop.
Função para leitura de uma tabela de arquivo pdf e conversão para dataframe
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Função para leitura de uma tabela de arquivo pdf e conversão para dataframe | |
tradutor_pdf_tabela <- function(arquivo_pdf, delimitador_ini,delimitador_fim,rubricas){ | |
library(pdftools) | |
txt <- pdf_text(arquivo_pdf) | |
#Localiza o ponto inicail de tratamento do arquivo | |
pg_encontradas_ini<- which(regexpr(delimitador_ini,txt, ignore.case = TRUE)>0) | |
pg_encontradas_fim<- which(regexpr(delimitador_fim,txt, ignore.case = TRUE)>0) | |
pg_ini<-min(pg_encontradas_ini) | |
pg_fim <- pg_encontradas_fim[min(which(pg_encontradas_fim>=pg_ini))] | |
texto_pesquisa<-"" | |
#monta o novo texto | |
for (i in pg_ini:pg_fim){ | |
texto_pesquisa<-paste0(texto_pesquisa,txt[i]) | |
} | |
texto_pesquisa <-substr(texto_pesquisa,regexpr(delimitador_ini,texto_pesquisa, ignore.case = TRUE),regexpr(delimitador_fim,texto_pesquisa, ignore.case = TRUE)) | |
for (i in 1:(length(rubricas))){ | |
pos_ini<-regexpr(rubricas[i],texto_pesquisa, ignore.case = TRUE)+nchar(rubricas[i]) | |
pos_fim<-pos_ini+regexpr("\r",substr(texto_pesquisa,pos_ini,100000), ignore.case = TRUE)-2 | |
linha <- substr(texto_pesquisa, | |
pos_ini, | |
pos_fim) | |
#(regexpr(rubricas[i+1],texto_pesquisa, ignore.case = TRUE)-5)) | |
valores<-c(strsplit(linha," ")) | |
valores<-valores[[1]] | |
valores<-valores[which(valores!="")] | |
if (i==1){df_linha<-data.frame(rubricas[i],t(valores))} else | |
{df_linha <- rbind(df_linha,data.frame(rubricas[i],t(valores)))} | |
} | |
df_linha | |
} | |
#Exemplo de utilização da função. | |
#Para esse caso foi utilizado como referência o arquivo pdf disponível no seguinte endereço | |
# http://www.planejamento.gov.br/secretarias/upload/Arquivos/servidor/publicacoes/boletim_estatistico_pessoal/2017/bep-dezembro-2017 | |
arquivo_pdf<-"document.pdf" | |
delimitador_ini<-"Tabela 1.5" | |
delimitador_fim<-"Fonte:" | |
rubricas<- c('EMPRESA BRASIL DE COMUNICAÇÃO - EBC', | |
'EMPRESA BRASILEIRA DE PESQUISA AGROPECUÁRIA - EMBRAPA', | |
'COMPANHIA NACIONAL DE ABASTECIMENTO - CONAB', | |
'CENTRO NACIONAL DE TECN ELETRÔNICA AVANÇADA - CEITEC', | |
'HOSPITAL DE CLÍNICAS DE PORTO ALEGRE - HCPA', | |
'EMPRESA BRASILEIRA DE SERVIÇOS HOSPITALARES - EBSERH', | |
'COMPANHIA DE PESQUISA DE RECURSOS MINERAIS - CPRM','EMPRESA DE PESQUISA ENERGÉTICA - EPE', | |
'VALEC-ENGENHARIA, CONSTRUÇÕES E FERROVIAS', | |
'EMPRESA DE PLANEJAMENTO E LOGÍSTICA - EPL', | |
'INDÚSTRIA DE MATERIAL BÉLICO DO BRASIL - IMBEL', | |
'COMPANHIA DE DESENV. DO VALE DO SÃO FRANCISCO - CODEVASF') | |
df_traducao<-tradutor_pdf_tabela(arquivo_pdf, delimitador_ini,delimitador_fim,rubricas) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment