Có thể loại bỏ chữ ghép từ văn bản sao chép?


10

Tôi có một vài tệp PDF có chứa chữ ghép trong văn bản (ví dụ: ffđược kết hợp thành một ký tự duy nhất ).

Có cách nào dễ dàng để loại bỏ chúng khi sao chép văn bản từ PDF không? (tức là khi tôi dán, tôi muốn dán vào ff).

Tôi sao chép rất nhiều văn bản từ các tệp PDF này vào câu trả lời trên Stack Overflow và tôi thấy các chữ ghép ở mức đáng ghét nhất (ok, tôi thừa nhận, tôi thực sự rất kén chọn :-P); các chữ ghép cũng không hiển thị chính xác khi được sao chép vào các vị trí khác (ví dụ: nếu tôi sao chép chúng vào Notepad, chúng sẽ hiển thị dưới dạng các khối).

Tôi không thể sửa đổi các tệp PDF.

Tôi sử dụng cả Adobe Acrobat Reader và Foxit Reader, nhưng tôi sẵn sàng thử một trình đọc PDF mới.

Câu trả lời:


3

Trong python điều này sẽ là:

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

Bạn có thể kết hợp điều này với pyPdf để đọc các tệp pdf.


2

Người đọc chứng tỏ dường như giải mã được chữ ghép khi tôi kiểm tra điều này.

Btw. đối với tài liệu pdflatex, bạn có thể sử dụng phần này trong phần mở đầu để hiển thị chữ ghép trong tài liệu PDF nhưng sao chép từng ký tự:

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

1

Một khả năng sẽ là sử dụng trình soạn thảo văn bản yêu thích của bạn và chỉ cần thay thế chúng.

Một cách khác là viết một kịch bản sử dụng sed. ..nhưng đó chỉ là * NIX-Systems, tôi sợ.


GnuWin32 và bạn có sed trên windows.
mbq

@mbq: Nó cũng được bao gồm trong đó? rất tốt. Cám ơn.
Bobby

0

Tôi đã trả lời một câu hỏi tương tự sâu hơn - Tại sao văn bản `fi` bị cắt khi tôi sao chép từ PDF hoặc in tài liệu?

Bạn có thể thay thế các từ "bị hỏng" trong văn bản được sao chép nếu bạn có ánh xạ từ các từ bị hỏng sang các từ gốc. Tôi đã viết một tập lệnh để tạo ánh xạ này bằng cách xóa chữ ghép từ các từ và kiểm tra xem từ kết quả có phải là duy nhất không. Đối với từ điển của tôi từ tiếng Anh, 99,5% của tất cả các từ có thể bị phá vỡ có thể thay thế, và 92,3% các từ có chứa một chuỗi dấu gạch nối ( ff, fi, fl, ffi, hoặc ffl) có thể được phục hồi. Sự khác biệt giữa hai tỷ lệ này là do số lượng đáng ngạc nhiên lớn từ hợp pháp được tạo ra bằng cách loại bỏ dây chằng từ từ hợp pháp khác (như butterfly --> buttery, fluffs --> usmisfits --> mists).

Đây là một CSV các từ "bị hỏng" được bảo đảm có thể thay thế (và các từ họ đã từng sử dụng): http://www.filedropper.com/brokenligaturewordfixes


Thật tuyệt khi bạn đang cung cấp tệp. Trên thực tế, mặc dù, không ai có ý thức chung sẽ tải xuống một tệp không xác định (đặc biệt là từ một người dùng hoàn toàn mới). Đừng mang nó theo cách cá nhân nếu tệp không nhận được nhiều lưu lượng. Điều đó không có nghĩa là những nỗ lực của bạn không được đánh giá cao.
fixer1234

Vâng, tôi hiểu. Tôi ước có một cách đơn giản để xác minh các liên kết như vậy, hoặc thậm chí chỉ để đảm bảo loại tệp. Cảm ơn!
Jan Van Bruggen

0

Cách của tôi chỉ đơn giản là sao chép và dán từ PDF sang notepad (để xóa mọi định dạng) và sau đó từ notepad sang Microsoft Word.

Trong Word, tất cả các chữ ghép được thay đổi với các phông chữ định dạng khác.

Tôi sử dụng find và thay thế cho từng trong số chúng (như ^ l cho gián đoạn dòng thủ công và ^ m cho gián đoạn trang thủ công, v.v., bạn có thể tìm thấy tất cả dễ dàng trực tuyến) và tôi thay thế bằng hình thức chính xác.

Trong 4 hoặc 5 bước tôi bao gồm tất cả các khả năng khá nhanh chóng. Nó cũng hữu ích để loại bỏ các đoạn gián đoạn bổ sung (^ P)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.