È possibile rimuovere le legature dal testo copiato?


10

Ho alcuni PDF che contengono legature nel testo (ad esempio, ffè combinato in un singolo carattere, ).

C'è un modo semplice per rimuoverli quando si copia il testo dal PDF? (ad esempio, quando incollo, vorrei che fosse incollato come ff).

Copio molto testo da questi PDF in risposte su Stack Overflow e trovo le legature nella migliore delle ipotesi fastidiose (ok, lo ammetto, sono davvero schizzinoso :-P); anche le legature non vengono visualizzate correttamente quando vengono copiate in altri luoghi (ad esempio, se le copio nel Blocco note, vengono visualizzate come blocchi).

Non riesco a modificare i PDF.

Uso sia Adobe Acrobat Reader che Foxit Reader, ma sarei aperto a provare un nuovo lettore PDF.

Risposte:


3

In Python questo sarebbe:

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

Puoi combinarlo con pyPdf per leggere i file pdf.


2

Il lettore evince sembra decodificare le legature quando l'ho provato.

Btw. per i documenti pdflatex è possibile utilizzarlo nel preambolo per visualizzare le legature nel documento PDF ma copiare singoli caratteri:

\ Input {} glyphtounicode.tex
\ pdfgentounicode = 1%

1

Una possibilità sarebbe quella di utilizzare il tuo editor di testo preferito e semplicemente sostituirlo.

Un altro modo sarebbe quello di scrivere una sceneggiatura che utilizza sed. ..ma temo solo * Sistemi NIX.


GnuWin32 e hai sed su windows.
mbq,

@mbq: è incluso anche in quello? molto bene. Grazie.
Bobby,

0

Ho risposto a una domanda simile in modo più approfondito: perché il testo `fi` viene tagliato quando copio da un PDF o stampo un documento?

Puoi sostituire le parole "rotte" nel testo copiato se hai una mappatura da parole spezzate a parole originali. Ho scritto uno script per generare questa mappatura rimuovendo le legature dalle parole e controllando se la parola risultante è unica. Per il mio dizionario di parole inglesi, 99,5% di tutte le possibili parole rotte sono sostituibili, e 92,3% di parole che contengono una sequenza di legatura ( ff, fi, fl, ffio ffl) può essere recuperato. La differenza tra queste due percentuali è dovuto al sorprendentemente elevato numero di parole legittimi creati rimuovendo legamenti di altre parole legittimi (come butterfly --> buttery, fluffs --> us, e misfits --> mists).

Ecco un CSV di parole "rotte" sostituibili garantite (e le parole che erano in passato): http://www.filedropper.com/brokenligaturewordfixes


È fantastico che tu offra il file. Realisticamente, tuttavia, nessuno con buon senso scarica un file sconosciuto (specialmente da un nuovo utente). Non prenderlo sul personale se il file non riceve molto traffico. Ciò non significa che i tuoi sforzi non siano apprezzati.
fixer1234,

Si Capisco. Vorrei che ci fosse un modo semplice per verificare collegamenti del genere, o anche solo per garantire il tipo di file. Grazie!
Jan Van Bruggen,

0

Il mio modo era semplicemente di copiare e incollare dal PDF al blocco note (per rimuovere qualsiasi formattazione) e quindi dal blocco note a Microsoft Word.

In Word tutte le legature vengono modificate con altri caratteri di formattazione.

Uso trovare e sostituire per ciascuno di essi (come ^ l per l'interruzione manuale della linea e ^ m per l'interruzione manuale della pagina e così via, è possibile trovare tutto facilmente online) e lo sostituisco con il modulo corretto.

In 4 o 5 passaggi copro tutte le possibilità abbastanza rapidamente. È utile rimuovere anche ulteriori interruzioni di paragrafo (^ P)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.