2012-09-10 10 views
5

Chúng ta có thể được lựa chọn văn bản từ một cái nhìn web bằng cách sửBắt chọn nội dung của tập tin pdf tải trong UIWebView

- (NSString *)selectedText { 
    return [self stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]; 
} 

Nhưng điều này sẽ không hoạt động nếu tôi tải một tập tin PDF. Vì vậy, những gì tôi nghĩ là để sao chép văn bản được lựa chọn và sau đó dán nó từ UIPasteboard lập trình. Nó hoạt động tốt khi tôi nhấp vào nút sao chép bằng tay, nhưng tôi không muốn nó được như thế. Tôi muốn các bản sao cade để thực hiện programatically. Tôi có thể gọi điện bằng cách nào? Hoặc đơn giản, Làm thế nào tôi có thể nhận được tài liệu tham khảo của văn bản được lựa chọn từ một tập tin PDF được tải trong một lần xem web.

Trả lời

0

Không có câu trả lời đơn giản, sửa tôi nếu tôi sai nhưng tôi nghĩ để tối ưu hóa bộ nhớ UIWebView thực sự vẽ các trang PDF dưới dạng hình ảnh để bạn không có quyền truy cập vào các mục riêng lẻ (văn bản, hình ảnh, v.v.). Bạn có thể làm điều này -

PDF là các từ điển lồng nhau bao gồm nhiều từ điển hơn & mảng. Bạn sẽ phải thâm nhập vào CGPDFDocument

Kể từ UIWebView không lộ nhiều về tùy biến, Reader là một gợi ý thay thế điểm & khởi đầu tốt đẹp cho rendering của PDF. Kể từ khi nguồn mở của nó, bạn có thể thay đổi logic kết xuất để chọn văn bản.

Một giải pháp thay thế khác là PSPDFKit. Tôi đã sử dụng nó trong một trong các dự án của tôi & của nó khá tuyệt vời. Nó bao gồm tìm kiếm toàn văn bản, tạo hình thu nhỏ tự động, chế độ trang đơn hoặc kép, xem đường viền trang, liên kết trang và nhiều hơn nữa

Tôi nghĩ một hoặc một trong các cách tiếp cận trên sẽ giúp bạn đạt được thứ bạn muốn & rồi giải phóng nó như là nguồn mở cho những người khác được hưởng lợi;)

+0

Nhưng sau đó làm cách nào tôi nhận được văn bản khi tôi sao chép văn bản đã chọn theo cách thủ công và sử dụng UIPasteboard để hiển thị nó? – bijesh

+0

bạn có thể đặt một số mã để hiển thị không? –

+1

NSString * myString = [UIPasteboard chungPasteboard] .string; NSLog (@ "Chuỗi sao chép:% @", myString); Sử dụng điều này tôi lấy chuỗi đã sao chép từ tệp PDF – bijesh