Pular para conteúdo

Ações PDF

Ações de PDF são ações para interagir com arquivos PDF durante automações.

Caixa de texto

Para identificar e trabalhar facilmente com arquivos PDF complexos, Marvin usa o conceito de Caixas de Texto.

Uma caixa de texto é um quadrado que arredonda todos os textos em um arquivo PDF, simplificando a obtenção de informações de arquivos PDF, sem a necessidade de realizar manipulações ou pesquisas complexas de texto.

Caixa de texto na prática

Considere que temos um arquivo PDF como mostrado na imagem acima e queremos obter informações de texto dele: Arquivo PDF de amostra

Usando a ferramenta pdfparser.exe que veio com o Marvin, você pode destacar todas as caixas dentro do PDF, tornando simples obter conteúdo PDF.

Agora, o mesmo PDF tem todo o texto realçado nas caixas de texto.

Arquivo PDF de amostra com caixas destacadas

Para obter qualquer uma dessas informações, você só precisa fornecer uma caixa de pesquisa e o Marvin recuperará todos os textos dentro dessa área, sem necessidade de manipulação de texto.

Para obter a posição X,Y você pode usar a imagem PDF com caixas destacadas de pdfparser.exe e obter o X,Y usando seu editor de imagem favorito como MS Paint.

Mais adiante nesta página, você pode obter mais informações sobre cada ação do pdf e como usá-la.

Caixa de pesquisa

Uma Caixa de Pesquisa é um retângulo dentro do arquivo PDF onde Marvin pode pesquisar qualquer texto dentro dele.

A caixa de pesquisa sempre terá 4 coordenadas: X1, Y1, X2 e Y2.

X1 - a posição mais à esquerda da caixa de pesquisa

Y1 - a posição mais alta da caixa de pesquisa

X2 - a posição mais à direita da caixa de pesquisa

Y2 - a posição inferior da caixa de pesquisa

Exemplo de posição X,Y para caixa de pesquisa

Exemplo 1:

Neste exemplo, retornaremos um único valor de caixa de texto. Para fazer isso, precisamos dar a Marvin uma caixa de pesquisa conforme mostrado na imagem acima em vermelho:

Exemplo de caixa de pesquisa em vermelho

Esta caixa de pesquisa retornará o texto "Valor 1".

Exemplo 2:

Neste exemplo, obteremos mais de uma caixa de texto na mesma pesquisa. Para fazer isso, precisamos dar a Marvin uma caixa de pesquisa conforme mostrado na imagem acima em vermelho:

Exemplo de caixa de pesquisa em vermelho

No exemplo dado, a caixa de pesquisa retornará o conteúdo de duas caixas de texto diferentes, separadas pela linha [texto]:

Coluna 1:
[texto]
Valor 1

Ações

pdf.get_text

Obtenha todas as caixas de texto dentro da área da caixa de pesquisa, começando à esquerda/para cima em X1, Y1 e terminando à direita/em baixo em X2, Y2.

Parâmetros:

pdf - pode ser um caminho para um arquivo PDF ou um objeto PDF já aberto por pdf.open_file.

page_num - define o número da página para obter todos os textos. As páginas sempre começam em um.

x1 - posição esquerda da caixa de pesquisa

y1 - posição superior da caixa de pesquisa

x2 - posição direita da caixa de pesquisa

y2 - posição direita da caixa de pesquisa

intersection_mode (opcional) - define como Marvin vai entender se uma caixa de texto está dentro da área de busca ou não. Para obter mais informações, leia a seção modo de interseção.

factor (opcional) - este é o fator usado pelo intersection_mode escolhido. Para obter mais informações, leia a seção modo de interseção.

Retorna:

text - Texto de todas as caixas de texto dentro da área da caixa de pesquisa. Se mais de uma caixa de texto for encontrada, o texto dentro de cada caixa de texto será separado por uma linha [texto].

pdf.get_text_at

Obtenha todas as caixas de texto que cruzam a posição X, Y fornecida. Além de usar uma caixa de pesquisa, esta ação usa a posição X, Y.

Parâmetros:

pdf - pode ser um caminho para um arquivo PDF ou um objeto PDF já aberto por pdf.open_file.

page_num - define o número da página para obter todos os textos. As páginas sempre começam em um.

x - coordenada X para encontrar uma caixa de texto

y - coordenada Y para encontrar uma caixa de texto

Retorna:

text - Texto de todas as caixas de texto que cruzam a posição X,Y especificada. Se mais de uma caixa de texto for encontrada, o texto dentro de cada caixa de texto será separado por uma linha [texto].

pdf.get_text_by_reference

Obtenha todas as caixas de texto dentro da área da caixa de pesquisa. A área da caixa é definida como uma referência da posição relativa do reference_text.

Parâmetros:

pdf - pode ser um caminho para um arquivo PDF ou um objeto PDF já aberto por pdf.open_file.

page_num - define o número da página para obter todos os textos. As páginas sempre começam em um.

reference_text - um texto em que sua caixa deve ser usada como referência para a posição da caixa de pesquisa

x1_offset - quantos pixels a caixa de pesquisa está à esquerda do reference_text (negativo para o lado esquerdo e positivo para o lado direito)

y1_offset - quantos pixels a caixa de pesquisa tem da parte superior do reference_text (negativo para superior e positivo para baixo)

x2_offset - quantos pixels a caixa de pesquisa está à direita do reference_text (negativo para o lado esquerdo e positivo para o lado direito)

y2_offset - quantos pixels a caixa de pesquisa tem da parte inferior do reference_text (negativo para superior e positivo para baixo)

intersection_mode (opcional) - define como Marvin vai entender se uma caixa de texto está dentro da área de busca ou não. Para obter mais informações, leia a seção modo de interseção.

factor (opcional) - este é o fator usado pelo intersection_mode escolhido. Para obter mais informações, leia a seção modo de interseção.

Retorna:

text - Texto de todas as caixas de texto dentro da área da caixa de pesquisa. Se mais de uma caixa de texto for encontrada, o texto dentro de cada caixa de texto será separado por uma linha [texto].

position - Posição de todas as caixas retornadas. Retorna na ordem x.min, y.min, x.max, y.max.

pdf.get_texts

Usado para recuperar mais de uma informação ao mesmo tempo, dado a cada busca um nome da var do processo diferente. Essa ação pesquisa caixas de texto dentro de uma lista de caixas de pesquisa.

Parâmetros:

pdf - pode ser um caminho para um arquivo PDF ou um objeto PDF já aberto por pdf.open_file.

page_num - define o número da página para obter todos os textos. As páginas sempre começam em um.

boxes - uma lista de caixas de pesquisa com cada caixas de pesquisa tendo um nome de var de processo específico, definido como:

[
    {'proc_var1': (X1, Y1, X2, Y2)},
    {'proc_var2': (X1, Y1, X2, Y2)},
]

intersection_mode (opcional) - define como Marvin vai entender se uma caixa de texto está dentro da área de busca ou não. Para obter mais informações, leia a seção modo de interseção.

factor (opcional) - este é o fator usado pelo intersection_mode escolhido. Para obter mais informações, leia a seção modo de interseção.

Retorna:

text - Texto de todas as caixas de texto dentro da área da caixa de pesquisa. Se mais de uma caixa de texto for encontrada, o texto dentro de cada caixa de texto será separado por uma linha [texto].

pdf.open_file

Abre um arquivo PDF e o retorna como objeto para uso futuro em outras ações.

Parâmetros:

pdf - caminho para um arquivo PDF.

Retorna:

pdf - Objeto PDF que representa o arquivo PDF fornecido. page_count - Total de páginas encontradas no PDF