OCRs de PDFs no GNU/Linux: Estudando com textos e não prints

Quem nunca foi estudar para a faculdade com um PDF e descobriu que não conseguiria marcar o texto ou copiar e colar seu conteúdo?
Que aquele lindo PDF em vez de ser um agradável texto a ser anotado e copiado mais parecia um print em que somente poderíamos fazer riscos ao redor dignos de uma criança de 7 anos no Paint?

A solução para isso é gerar um novo PDF utilizando alguma tecnologia de reconhecimento óptico de caracteres (OCR: Optical Character Recognition).

Read More

Sobre o livro Sob três bandeiras: Anarquismo e imaginação anticolonial

Deixo aqui um comentário sobre o livro “Sob três bandeiras: anarquismo e imaginação anticolonial” de Benedict Richard O’Gorman Anderson. Gostei bastante do mesmo, é um bom mergulho na apaixonante cena política de finais do século XIX.
Ah, a versão que li é em espanhol (Bajo tres banderas: anarquismo e imaginación anticolonial) e dizem que pode ser encontrada no famoso libgen[ponto]io.

Read More

Criando lindos PDFs a partir de livros ou xerox

(Atualizado em 15/12/2018. Agora temos ferramentas livres para todo o processo, incluindo o OCR.)

Quem nunca foi salvo por um PDF para estudar na universidade?

Quem costuma estudar por PDFs deve estar acostumado a encontrar PDFs de toda qualidade. Desde aqueles que são nada mais que fotos grosseiras e desfocadas de um xerox de 2 páginas lado-a-lado até aqueles que cada página está visível e bem enquadrada (para ler num e-reader) e podemos selecionar/copiar/colar o texto com o mouse.

Veremos aqui como fazer PDFs desse último tipo. E no GNU/Linux, tudo software livre!

0. Pré-requisitos

  1. Computador com GNU/Linux.
  2. Scanner.

1. Escaneando

O aplicativo utilizado será o software livre gscan2pdf.

  1. Após abrir o aplicativo, vá em “Arquivo” → “Digitalizar”.

  2. Utilize as seguintes configurações:

    • Em “Modo de digitalização”:
      • “Modo de digitalização”: “Linhas”
      • “Resolução de digitalização”: “300” dpi (é a resolução recomendada para OCR)
    • Em “Opções de página”:
      • Em “Pós-processamento”, mantenha desmarcada a opção “Imagens digitalizadas com OCR” (faremos isso de forma superior via Android).
      • Em “Pós-processamento”, se desejado, as imagens podem ser automaticamente rotacionadas em “Girar”. (Algo opcional, pois podem ser rotacionadas posteriormente).
      • Se desejado, salve a presente configuração em “Perfis de digitalização” com um nome do tipo “Texto sem OCR”.
  3. Pressione “Digitalizar” e escaneie todas as páginas desejadas.

    Caso tenhas escaneado 2 páginas de cada vez (lado-a-lado) ou, simplesmente, que deseje recortar a página para um tamanho menor … podemos usar a ferramenta “Cortar”. No primeiro caso, é importante recortar para que o OCR analise o conteúdo de texto de cada página sem misturar as páginas. E em ambos os casos, é vantajoso recortar para que o conteúdo caiba em pequenos dispositivos (como leitores de ebook).

  4. [OPCIONAL] Recortando as páginas todas com o mesmo tamanho:

    Há duas situações em que recortar as páginas é extremamente útil.
    A primeira é quando o material escaneado é composto por folhas contendo duas páginas.
    A segunda é quando a página possui grandes margens que tornam a leitura inadequada em e-readers.
    Para ambos os casos, podemos seguir os passos abaixo:

    1. [OPCIONAL] Caso exista mais de uma página por folha escaneada:
      Vá na lista de folhas (coluna da esquerda) e com um “Ctrl + C”/“Ctrl + V” duplique as folhas.
      Isso porque a página recortada substitui a folha escaneada … e se temos mais de uma página por folha, necessitaremos de tantas cópias de folha quanto páginas ela contenha.

    2. Vá em “Visualizar” → “Selecionar” e faça um molde de corte que acomode de forma “justa” a página.
      [DICA] Escolha uma página de texto padrão para usar seu futuro corte como molde para todas as páginas.
      (Normalmente, páginas de capa, sumário, etc., não são bons moldes. Páginas de texto de meio de capítulo são boas pois usam todo o espaço possível e, portanto, não corremos risco de fazer um molde de corte menor que o necessário.)

    3. Vá em “Ferramentas” → “Cortar”:

      1. “Seleção de páginas” → “Selecionado”.
      2. Pressione “Aplicar”. Pronto!
      • Caso o corte seja exatamente o mesmo em diversas folhas:
        basta selecionar todas as folhas desejadas antes de utilizar a ferramenta “Cortar”.
      • Caso o corte algo seja diferente em cada página:
        Pelo menos, cortamos a primeira de nossas páginas e temos um molde!
        Para as próximas páginas:
        1. Clique na próxima página da lista.
        2. Acomode o molde de corte na área desejada.
        3. Repita o passo de ir em “Ferramentas” → “Cortar”, “Aplicar”.
  5. Salvando

    Vá em “Arquivo” → “Salvar”:

    1. “Seleção de páginas” → “Todos”
    2. “Tipo de imagem”: “PDF”
    3. [OPCIONAL] “Document Metadata”: Preencha os dados desejados (útil para uso em e-readers)
    4. Pressione “Salvar”
    • Obs: Em caso de optarmos pelo OCR, os metadados deverão ser definidos depois (pois são perdidos na criação da versão com OCR).

2. OCR

Secção atualizada (agora temos um software livre e muito mais fácil e prático)
A ferramenta é o software livre pdfsandwich. Utilize o passo-a-passo aqui.

3. [OPCIONAL] Últimos ajustes (via GNU/Linux)

Obs: O gscan2pdf também faz todas as funções listadas abaixo mas ele é pesado com grandes PDFs e tem algumas incompatibilidades, por isso cito ferramentas alternativas como um bônus.

3.1. [OPCIONAL] Reorganizando a ordem das páginas

Caso seu texto esteja com as páginas fora de ordem:

Com o PDF Mod

Basta abrir o PDF e ir arrastando as páginas para a ordem desejada.

Com o gscan2pdf

  • para poucas páginas: arrastar e soltar na coluna da esquerda.
  • para muitas páginas (e quando sabemos o número delas): definir o número de cada página.
    Com isso, a página vai automaticamente para sua posição correta.
    Para numerar uma página (ou várias), selecione na coluna da esquerda e com o botão direito do mouse escolha “Re-numerar”:
    1. “Seleção de páginas” → “Selecionado”
    2. “Iniciar”: “Número da página”
    3. “Clique em Renumber”

3.2. [OPCIONAL] Juntando PDFs

Faremos isso através do PDF Mod.

Abra o último PDF (relativo às páginas) no PDF Mod e vá adicionando os PDFs em ordem decrescente. Para adicionar um PDF: “Arquivo” → “Inserir de…”.

Seguir a ordem decrescente é necessário porque cada novo PDF inserido tem suas páginas colocadas no início do PDF final.

Pronto, temos todas as páginas reunidas e prontas para serem salvas num único PDF.

3.3.[OPCIONAL] Recortando as páginas

Obs: Já ensinamos como recortar páginas acima com o gscan2pdf.

Ensinaremos aqui a fazer o mesmo com uma ferramenta alternativa chamada PDF-Shuffler (também é software livre).

A maior motivação para usar essa ferramenta é que ela é muito mais rápida para abrir PDFs com grande quantidades de páginas (casos em que o gscan2pdf demora muito e pode até travar).

O crop é prático especialmente quando todas as páginas tem as mesmas regiões em branco. Pode-se aplicar um mesmo crop a todas as páginas desejadas. É prática para xerox contendo 2 páginas por folha (primeiro aplicamos um crop de “50% à direita” para pegarmos a página da esquerda, depois um crop de “50% à esquerda” para pegarmos a página da direita).

Como fazer:

  1. Abra o arquivo no “PDF-Shuffler”.
  2. A opção está em EditCrop.
    Embora não possua preview antes da operação, podemos ver se o resultado agradou e caso negativo, reaplicar a operação (pois essa não é cumulativa - aka, um crop posterior substitui o anterior).

Obs: Os metadados serão apagados ao salvar. Teremos de usar uma ferramenta como o PDF Mod para adicionar novamente os metadados.

3.4. [OPCIONAL] Definindo metadados (Título, Autor, Assunto, Palavra-chave)

Podemos utilizar o software livre PDF Mod para definir os metadados. Com ele podemos editar os metadados: Título, Autor, Palavras-chave, Assunto.

Isso é muito útil quanto temos um PDF com metadados incorretos e que por isso dificultam seu uso em e-readers.

Para isso, basta:

  1. Abra o arquivo no “PDF Mod”.
  2. A opção está em ArquivoPropriedades.

(Outra alternativa mais flexível e poderosa que o PDF Mod é o utilitário de linha de comando exiftool, mas isso fica para outro post.
Ah, um exemplo rápido: $ exiftool -Title="As estrelas descem à Terra" -Author="Theodor W Adorno" -Subject="Sociology" -Keywords="Sociology, Astrology" Livro_do_Adorno.pdf)

Conclusão

Com o passo-a-passo acima temos os meios para gerar bons PDFs sem gastar nenhum tostão.
Eles são adequados para ler em e-readers e para marcarmos o texto com anotações e destaques.

Qualidade de vida ao desenvolver JavaScript: ESLint + Atom + ES6 + JSX

Nesse post veremos como configurar o linter ESLint (inclusive no Atom) para ganhar alguns anos de vida a mais ao diminuir o stress no desenvolvimento JavaScript. O post segue o formato “receita-de-bolo” e é destinado ao “eu-do-futuro-que-esqueceu-isso”. Mas pode ser útil para terceiros que sabem o que é um linter :D.

Ah, o setup considera minha realidade de trabalho (ES6, JSX). Se você ainda usa ES5 … não sabe a diferença … melhorou muito :D

Read More