def gerarpdf(request, u_printer, u_filename, raiz): '''Extrai texto das imagem do pdf e as adiciona em uma camada trasparente sobre a imagem original''' try: # passa o local do arquivo que será convertido pegando a raiz do banco de dados e concatenando com a impressora e nome do arquivo arquivo_original = os.path.join(raiz + '/' + u_printer, u_filename) arquivo_destino = os.path.join(raiz + '/temp/' + u_filename) pasta_temp = os.path.join(raiz + '/temp/') # copiando arquivo para pasta temporária shutil.copy2(arquivo_original, pasta_temp) # Iniciando classe OCR ocr = OCR.PyPDFOCR() # adiciona um sufixo ao nome do arquivo out_filename = arquivo_destino.replace(".pdf", "_ocr.pdf") # caso já exista um arquivo com o nome do que será gerado, ele é excluido antes da conversão if os.path.exists(out_filename): os.remove(out_filename) # removendo arquivo opts = [str(arquivo_destino), '-l por'] # convertendo ocr.go(opts) print('\nTerminado\n') except: messages.error(request, sys.exc_info()) return redirect( r('digitalizacoes', u_printer=u_printer, u_filename='*file*', u_action='*action*'))
def test_file_by_filename(self, mock_move): """ Test filing of single pdf based on filename. """ # Mock the move function so we don't actually end up filing p = P.PyPDFOCR() cwd = os.getcwd() filename = os.path.join("pdfs", "test_super_long_keyword.pdf") out_filename = filename.replace(".pdf", "_ocr.pdf") if os.path.exists(out_filename): os.remove(out_filename) print("Current directory: %s" % os.getcwd()) #opts = [filename, "--config=test_pypdfocr_config.yaml", "-f"] opts = [ filename, "--config=test_pypdfocr_config_filename.yaml", "-f", "-n" ] p.go(opts) assert (os.path.exists(out_filename)) os.remove(out_filename) calls = [ call( out_filename, os.path.abspath( os.path.join('temp', 'target', 'recipe', os.path.basename(out_filename)))) ] mock_move.assert_has_calls(calls)
def getTextWithOCR( path, temporary_file_directory = '/tmp' ): tmp_file_path = temporary_file_directory + '/stripped.pdf' stripFirstAndLast10Pages( path, tmp_file_path ) ocr = pypdfocr.PyPDFOCR() ocr.go( [tmp_file_path] ) os.remove(tmp_file_path) tmp_ocr_path = emporary_file_directory + '/stripped_ocr.pdf' cnt = getTextFromMetadata( tmp_ocr_path ) os.remove( tmp_ocr_path ) return cnt
def setup(self): self.p = P.PyPDFOCR()
def pdfocr(self): """Return a PyPDFOCR instance""" return pypdfocr.PyPDFOCR()
def pdfocr(self): return pypdfocr.PyPDFOCR()