Apakah mungkin untuk menghapus ligatur dari teks yang disalin?


10

Saya punya beberapa PDF yang berisi ligatur dalam teks (misalnya, ffdigabungkan menjadi satu karakter, ).

Apakah ada cara mudah untuk menghapusnya saat menyalin teks dari PDF? (yaitu, ketika saya tempel, saya ingin disisipkan sebagai ff).

Saya menyalin banyak teks dari PDF ini ke dalam jawaban di Stack Overflow dan saya menemukan ligatur paling menjengkelkan (ok, saya akui, saya benar-benar pilih-pilih :-P); ligatur juga tidak muncul dengan benar ketika disalin ke tempat lain (misalnya, jika saya menyalinnya ke Notepad, mereka muncul sebagai blok).

Saya tidak dapat memodifikasi PDF.

Saya menggunakan Adobe Acrobat Reader dan Foxit Reader, tetapi saya akan terbuka untuk mencoba pembaca PDF baru.

Jawaban:


3

Dengan python ini akan menjadi:

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

Anda dapat menggabungkan ini dengan pyPdf untuk membaca file pdf.


2

Pembaca evince tampaknya ligatures decode ketika saya diuji ini.

Btw. untuk dokumen pdflatex Anda dapat menggunakan ini di pembukaan untuk menampilkan ligatures dalam dokumen PDF tetapi menyalin karakter individu:

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

1

Satu kemungkinan adalah menggunakan editor teks favorit Anda dan cukup menggantinya.

Cara lain adalah dengan menulis skrip yang memanfaatkan sed. ..tapi itu akan menjadi * NIX-Systems saja, saya khawatir.


GnuWin32 dan Anda memiliki Windows.
mbq

@ mbq: Ini juga termasuk di dalamnya? Baik sekali. Terima kasih.
Bobby

0

Saya menjawab pertanyaan serupa secara lebih mendalam - Mengapa teks `fi` terpotong saat saya menyalin dari PDF atau mencetak dokumen?

Anda dapat mengganti kata-kata "patah" dalam teks yang disalin jika Anda memiliki pemetaan dari kata-kata yang rusak ke kata-kata asli. Saya menulis sebuah skrip untuk menghasilkan pemetaan ini dengan menghapus ligatur dari kata-kata dan memeriksa apakah kata yang dihasilkan unik. Untuk kamus saya kata-kata bahasa Inggris, 99,5% dari semua kemungkinan kata rusak yang diganti, dan 92,3% dari kata-kata yang mengandung urutan ligatur ( ff, fi, fl, ffi, atau ffl) dapat dipulihkan. Perbedaan antara kedua persentase ini adalah karena jumlah mengejutkan besar kata-kata yang sah yang dibuat dengan menghapus ligamen dari kata yang sah lainnya (seperti butterfly --> buttery, fluffs --> us, dan misfits --> mists).

Berikut ini adalah CSV kata-kata "rusak" yang dapat diganti-ganti (dan kata-kata yang semula): http://www.filedropper.com/brokenligaturewordfixes


Sangat bagus bahwa Anda menawarkan file. Namun, secara realistis, tidak ada orang dengan akal sehat yang akan mengunduh file yang tidak dikenal (terutama dari pengguna baru). Jangan tersinggung jika file tidak mendapatkan banyak lalu lintas. Itu tidak berarti usaha Anda tidak dihargai.
fixer1234

Ya saya mengerti. Saya berharap ada cara sederhana untuk memverifikasi tautan seperti itu, atau bahkan hanya untuk menjamin jenis file. Terima kasih!
Jan Van Bruggen

0

Cara saya hanyalah menyalin dan menempel dari PDF ke notepad (untuk menghapus format apa pun) dan kemudian dari notepad ke Microsoft Word.

Di Word semua ligatur diubah dengan font pemformatan lainnya.

Saya menggunakan find dan ganti untuk masing-masing (seperti ^ l untuk interupsi baris manual dan ^ m untuk interupsi halaman manual dan sebagainya, Anda dapat menemukan semuanya dengan mudah secara online) dan saya ganti dengan formulir yang benar.

Dalam 4 atau 5 langkah saya menutup semua kemungkinan dengan cukup cepat. Berguna juga untuk menghilangkan interupsi paragraf tambahan (^ P)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.