2009-08-08 29 views
9

Có thể truy cập vào liên kết "nội bộ" trong tài liệu PDF bằng cách sử dụng CGPDFDocument hoặc các phương tiện khác không? Tôi đang xây dựng một ứng dụng đọc đơn giản và muốn phân phối nội dung của mình dưới dạng PDF, nhưng nếu tôi không thể hỗ trợ liên kết giữa các trang trong tài liệu, điều này có thể sẽ không hoạt động.Cách truy cập siêu liên kết trong tài liệu PDF (iPhone)?

This question tương tự, nhưng không giải quyết được vấn đề về cách hỗ trợ siêu liên kết.

+0

Chính xác những gì bạn có ý nghĩa bởi các liên kết giữa các trang? Bạn đang nói về một liên kết trên trang 1, mà đi đến trang 4, hoặc bạn đang nói về trang một được theo sau bởi trang 2 trong người đọc của bạn? Nhân tiện, nếu bạn đang nói về các liên kết có thể nhấp giữa các trang, hãy nhớ rằng các siêu liên kết trong tài liệu PDF chỉ là các hình chữ nhật hotspot có thể nhấp trên một trang và không có mối quan hệ trực tiếp với văn bản xuất hiện liên kết. Một tài liệu PDF không giống như một tài liệu HTML theo nghĩa đó. – Rowan

+0

Tôi có nghĩa là hỗ trợ liên kết từ một trang đến một số trang tùy ý khác trong tài liệu. Tôi sẽ sử dụng điều này cho một Mục lục, cũng như để tham khảo các trang khác ở những nơi ngẫu nhiên. Vì vậy, có, những gì tôi thực sự tìm kiếm là một cách giống HTML để điều hướng tài liệu PDF. Tôi có thể xử lý các trường hợp đơn giản của "tiếp theo/prev/home" chuyển hướng mà không có điều này, nhưng lý tưởng tôi cũng muốn hỗ trợ điều hướng tùy ý. Cảm ơn. –

+0

Dưới đây là một số mã mẫu, từ câu hỏi của riêng tôi: http://stackoverflow.com/questions/4080373/get-pdf-hyperlinks-on-ios-with-quartz – pt2ph8

Trả lời

0

Nếu bạn đang sử dụng Quartz to open and view a PDF, thì có, có vẻ như bạn sẽ có quyền truy cập vào các liên kết nội bộ. Quartz cũng sẽ cho phép bạn add new links vào các tệp PDF. Tôi không có bất kỳ kinh nghiệm tay đầu tiên với iPhone/Mac phát triển, nhưng nó sẽ là khá lạ cho họ để cho phép bạn thêm siêu liên kết, nhưng không sử dụng chúng.

+2

Các liên kết này đều trỏ đến thư viện tham khảo Mac OS X, chứ không phải Hệ điều hành iPhone. PDFKit không tồn tại trên điện thoại. –

+0

Có trên cả hai liên kết chỉ là mở danh sách các thư viện tham khảo osx. Nó không đưa ra bất kỳ thông tin thích hợp nào. Làm thế nào nó được chấp nhận? -1 –

+0

Xin lỗi, tôi không làm iPhone dev nữa, vì vậy đây là một câu hỏi bị bỏ rơi. Tôi không thể xác minh xem đây có phải là câu trả lời có chấp nhận được hay không, vì vậy tôi đã "không chấp nhận" câu trả lời đó. –

2

Xem câu trả lời của tôi here. Về cơ bản, bạn sẽ cần làm quen với chú thích liên kết PDF.

0

Bạn cần thực hiện theo hai bước.

Thứ nhất: Phân tích pdf của bạn để xác định vị trí nhà khai thác nội dung rõ rệt

Đó là một dụ của một mã phân tích cú pháp:

-(void)parseContent() { 
    CGPDFOperatorTableRef myTable; 
    myTable = CGPDFOperatorTableCreate(); 
    CGPDFOperatorTableSetCallback(myTable, "BMC", &myOperator_BMC); 
    CGPDFContentStreamRef myContentStream = CGPDFContentStreamCreateWithPage(page); 
    CGPDFScannerRef myScanner = CGPDFScannerCreate(myContentStream, myTable, autoZoomAreas); 
    CGPDFScannerScan(myScanner); 
    CGPDFScannerRelease(myScanner); 
    CGPDFContentStreamRelease(myContentStream); 
} 

void myOperator_BMC(CGPDFScannerRef s, void *info) 
{ 
    const char *name; 
    CGPDFScannerPopName(s, &name); 
} 

(Bạn cần phải hoàn thành và điều chỉnh mã này để phù hợp với yêu cầu của bạn)

Thứ hai: trả lời tin nhắn toucheEnded để xử lý nhấn vào các khu vực đó và làm cho giao diện người dùng phản hồi tương ứng.

Các vấn đề liên quan