Ejemplo n.º 1
0
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*'))
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
 def setup(self):
     self.p = P.PyPDFOCR()
Ejemplo n.º 5
0
 def pdfocr(self):
     """Return a PyPDFOCR instance"""
     return pypdfocr.PyPDFOCR()
Ejemplo n.º 6
0
 def pdfocr(self):
     return pypdfocr.PyPDFOCR()