É possível remover ligaduras de texto copiado?

9

Eu tenho alguns PDFs que contêm ligaduras no texto (por exemplo, ff é combinado em um único caractere, ).

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

Eu copio um monte de texto desses PDFs em respostas no Stack Overflow e eu encontro as ligaduras na melhor das hipóteses desagradáveis (ok, eu admito, eu sou muito exigente :-P); as ligaduras também não aparecem corretamente quando copiadas para outros locais (por exemplo, se eu copiá-las no bloco de notas, elas aparecem como blocos).

Não consigo modificar os PDFs.

Eu uso o Adobe Acrobat Reader e o Foxit Reader, mas estaria aberto a experimentar um novo leitor de PDF.

    
por James McNellis 18.07.2010 / 21:54

5 respostas

2

O leitor evince parece decodificar as ligaduras quando eu testei isso.

Entre. para documentos do pdflatex, você pode usar isso no preâmbulo para exibir ligaturas no documento PDF, mas copiar caracteres individuais:

\input{glyphtounicode.tex}
\pdfgentounicode=1 %
    
por 19.08.2011 / 21:35
1

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

Outra forma seria escrever um script que utilizasse sed . .. mas isso seria apenas * NIX-Systems, receio.

    
por 18.07.2010 / 22:49
1

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 em pdf.

    
por 19.07.2010 / 00:10
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 este 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 quebradas possíveis são substituíveis e 92,3% de palavras que contêm uma seqüência de ligaduras ( ff , fi , fl , ffi ou ffl ) podem ser recuperados. A diferença entre essas duas porcentagens é devida ao número surpreendentemente grande de palavras legítimas criadas pela remoção de ligamentos de outras palavras legítimas (como butterfly --> buttery , fluffs --> us e misfits --> mists ).

Veja um CSV de palavras "quebradas" com substituição garantida (e as palavras que costumavam ser): link

    
por 28.08.2015 / 09:52
0

Meu caminho era simplesmente copiar e colar do PDF para o bloco de notas (para remover qualquer formatação) e, em seguida, do bloco de notas para o Microsoft Word.

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

Eu uso encontrar e substituir para cada um deles (como ^ l para interrupção de linha manual e ^ m para interrupção de página manual e assim por diante, você pode encontrar todos facilmente on-line) e substituo com o formulário correto.

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

    
por 19.01.2016 / 12:23