É possível remover ligaduras do texto copiado?

10

Tenho alguns PDFs que contêm ligaduras no texto (por exemplo, ffsão combinados em um único caractere ).

Existe uma maneira fácil de removê-los ao copiar o texto do PDF? (ou seja, quando colar, gostaria que o texto fosse colado como ff).

Copio muito texto desses PDFs para as respostas no Stack Overflow e acho as ligaduras no máximo desagradáveis ​​(ok, admito, sou muito exigente :-P); as ligaduras também não aparecem corretamente quando copiadas para outros lugares (por exemplo, se eu copiá-las no bloco de notas, elas aparecem como blocos).

Não consigo modificar os PDFs.

Uso o Adobe Acrobat Reader e o Foxit Reader, mas estou aberto a experimentar um novo leitor de PDF.

James McNellis
fonte

Respostas:

3

Em python, isso seria:

import unicodedata
# \uFB00 is the ff ligature.
unicodedata.normalize('NFKD',u'\uFB00').encode('ascii','ignore')

Você pode combinar isso com pyPdf para ler os arquivos pdf.

SiggyF
fonte
2

O leitor evince parece decodificar ligaduras quando eu testei isso.

Btw. para documentos pdflatex, você pode usá-lo no preâmbulo para exibir ligaduras no documento PDF, mas copiar caracteres individuais:

\ input {glyphtounicode.tex}
\ pdfgentounicode = 1%
até
fonte
1

Uma possibilidade seria usar o seu editor de texto favorito e simplesmente substituí-lo.

Outra maneira seria escrever um script que utiliza sed. ..mas isso seria apenas * Sistemas NIX, eu temo.

Bobby
fonte
GnuWin32 e você parou no Windows.
MBq
@mbq: Também está incluído nisso? muito bom. Valeu.
Bobby
0

Respondi a uma pergunta semelhante com mais profundidade - Por que o texto `fi` é cortado quando copio de um PDF ou imprimo um documento?

Você pode substituir as palavras "quebradas" no texto copiado se tiver um mapeamento de palavras quebradas para palavras originais. Eu escrevi um script para gerar esse mapeamento removendo ligaduras de palavras e verificando se a palavra resultante é única. Para o meu dicionário de palavras em Inglês, 99,5% de todas as palavras possíveis quebradas são substituíveis, e 92,3% de palavras que contêm uma sequência de ligadura ( ff, fi, fl, ffi, ou ffl) pode ser recuperado. A diferença entre estas duas percentagens é devido ao número surpreendentemente grande de palavras legítimos que são criados por remoção de ligamentos a partir de outras palavras legais (como butterfly --> buttery, fluffs --> use misfits --> mists).

Aqui está um CSV de palavras "quebradas" substituíveis garantidas (e as que costumavam ser): http://www.filedropper.com/brokenligaturewordfixes

Jan Van Bruggen
fonte
É ótimo que você esteja oferecendo o arquivo. Realisticamente, porém, ninguém com senso comum baixaria um arquivo desconhecido (especialmente de um usuário novo). Não leve para o lado pessoal se o arquivo não receber muito tráfego. Isso não significa que seus esforços não são apreciados.
fixer1234
Sim eu entendo. Eu gostaria que houvesse uma maneira simples de verificar links como esse, ou mesmo apenas para garantir o tipo de arquivo. Obrigado!
Jan Van Bruggen
0

Meu jeito era simplesmente copiar e colar do PDF para o bloco de notas (para remover qualquer formatação) e depois do bloco de notas para o Microsoft Word.

No Word, todas as ligaduras são alteradas com outras fontes de formatação.

Uso localizar e substituir para cada um deles (como ^ l para interrupção manual da linha e ^ m para interrupção manual da página e assim por diante, você pode encontrar tudo facilmente online) e substituo pela forma correta.

Em 4 ou 5 etapas, abordo todas as possibilidades rapidamente. Também é útil remover interrupções adicionais de parágrafos (^ P)

Gentili Giuliano
fonte